Bläddra i källkod

Merge branch 'test' of jishutao/kede-server into prod

anderx 6 år sedan
förälder
incheckning
f35926b92c
46 ändrade filer med 4164 tillägg och 150 borttagningar
  1. 1 1
      GeneratorConfig.xml
  2. 3 3
      src/main/java/com/goafanti/common/bo/EmailBo.java
  3. 2 0
      src/main/java/com/goafanti/common/constant/AFTConstants.java
  4. 95 0
      src/main/java/com/goafanti/common/dao/TArrearsDunMapper.java
  5. 3 0
      src/main/java/com/goafanti/common/dao/TChangeDunMapper.java
  6. 13 11
      src/main/java/com/goafanti/common/dao/TOrderMidMapper.java
  7. 2 0
      src/main/java/com/goafanti/common/dao/UserLockReleaseMapper.java
  8. 100 0
      src/main/java/com/goafanti/common/dao/UserTransferLogMapper.java
  9. 1 0
      src/main/java/com/goafanti/common/enums/NoticeStatus.java
  10. 12 12
      src/main/java/com/goafanti/common/mapper/NewOrderChangeMapper.xml
  11. 1 1
      src/main/java/com/goafanti/common/mapper/NewOrderDunMapper.xml
  12. 380 0
      src/main/java/com/goafanti/common/mapper/TArrearsDunMapper.xml
  13. 5 0
      src/main/java/com/goafanti/common/mapper/TChangeDunMapper.xml
  14. 60 23
      src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml
  15. 80 6
      src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml
  16. 1 0
      src/main/java/com/goafanti/common/mapper/UserBusinessMapper.xml
  17. 10 0
      src/main/java/com/goafanti/common/mapper/UserLockReleaseMapper.xml
  18. 326 0
      src/main/java/com/goafanti/common/mapper/UserTransferLogMapper.xml
  19. 215 0
      src/main/java/com/goafanti/common/model/TArrearsDun.java
  20. 814 0
      src/main/java/com/goafanti/common/model/TArrearsDunExample.java
  21. 79 33
      src/main/java/com/goafanti/common/model/TOrderMid.java
  22. 136 16
      src/main/java/com/goafanti/common/model/TOrderMidExample.java
  23. 236 0
      src/main/java/com/goafanti/common/model/UserTransferLog.java
  24. 763 0
      src/main/java/com/goafanti/common/model/UserTransferLogExample.java
  25. 137 3
      src/main/java/com/goafanti/common/task/OrderDunTask.java
  26. 1 1
      src/main/java/com/goafanti/common/utils/PasswordUtil.java
  27. 55 0
      src/main/java/com/goafanti/customer/bo/transferListBo.java
  28. 19 1
      src/main/java/com/goafanti/customer/controller/AdminCustomerApiController.java
  29. 4 0
      src/main/java/com/goafanti/customer/service/CustomerService.java
  30. 65 6
      src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java
  31. 79 0
      src/main/java/com/goafanti/order/bo/InputArrearsDunListBo.java
  32. 16 0
      src/main/java/com/goafanti/order/bo/OrderListBo.java
  33. 126 0
      src/main/java/com/goafanti/order/bo/OutArrearsDunListBo.java
  34. 28 0
      src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java
  35. 20 0
      src/main/java/com/goafanti/order/controller/OrderChangeApiController.java
  36. 57 0
      src/main/java/com/goafanti/order/enums/NewDunState.java
  37. 2 0
      src/main/java/com/goafanti/order/service/OrderChangeService.java
  38. 4 0
      src/main/java/com/goafanti/order/service/OrderNewService.java
  39. 7 8
      src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java
  40. 49 3
      src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java
  41. 122 10
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  42. 23 0
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  43. 2 2
      src/main/java/com/goafanti/order/service/impl/OrderReceivablesServiceImpl.java
  44. 2 2
      src/main/resources/props/config_local.properties
  45. 1 1
      src/main/resources/props/config_test.properties
  46. 7 7
      src/main/resources/props/error.properties

+ 1 - 1
GeneratorConfig.xml

@@ -9,7 +9,7 @@
     <javaModelGenerator targetPackage="com.goafanti.common.model" targetProject="kede-server" />
     <sqlMapGenerator targetPackage="com.goafanti.common.mapper" targetProject="kede-server" />
     <javaClientGenerator  targetPackage="com.goafanti.common.dao"  type="XMLMAPPER" targetProject="kede-server"  />
-    <table schema="aft" tableName="new_order_change"/>
+    <table schema="aft" tableName="t_arrears_dun"/>
     <!-- 如果改动 t_order_task表,记得修改修改接口,不然会导致服务器无法启动 -->
   </context>
 </generatorConfiguration>

+ 3 - 3
src/main/java/com/goafanti/common/bo/EmailBo.java

@@ -70,17 +70,17 @@ public class EmailBo {
 	}
 	/**
 	 *  
-	 * @param subject	
+	 * @param subject	标题
 	 * @param address	收件地址
-	 * @param addressee 	收件人邮箱
 	 * @param deptname		部门
 	 * @param sender		发起人
 	 * @param content		内容
 	 * @param orderNo		订单编号
 	 * @param date		时间
+	 * @param adminName		接收人名字
 	 * @param userName		用户名称
-	 * @param AdminName		接收人名字
 	 * @param type		类型 0通用 1催款
+	 * @param approval   null 非特批
 	 * @return 
 	 */
 	public  EmailBo(String subject, String address, String deptname, String sender,

+ 2 - 0
src/main/java/com/goafanti/common/constant/AFTConstants.java

@@ -119,6 +119,8 @@ public class AFTConstants {
 	public static final String	USER_RECEIVE						= "领取";
 
 	public static final String	USER_TRANSFER_TO_OTHER				= "转交客户给制定人";
+	
+	public static final String	PROJECT_TRANSFER_TO_OTHER				= "转交客户给制定人";
 
 	/**组织类型-公司*/
 	public static final String	ORGANIZATION_TYPE_COMPANY			= "0";

+ 95 - 0
src/main/java/com/goafanti/common/dao/TArrearsDunMapper.java

@@ -0,0 +1,95 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TArrearsDun;
+import com.goafanti.common.model.TArrearsDunExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface TArrearsDunMapper {
+    /**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	long countByExample(TArrearsDunExample example);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int deleteByExample(TArrearsDunExample example);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int deleteByPrimaryKey(Integer id);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int insert(TArrearsDun record);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int insertSelective(TArrearsDun record);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	List<TArrearsDun> selectByExample(TArrearsDunExample example);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	TArrearsDun selectByPrimaryKey(Integer id);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int updateByExampleSelective(@Param("record") TArrearsDun record, @Param("example") TArrearsDunExample example);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int updateByExample(@Param("record") TArrearsDun record, @Param("example") TArrearsDunExample example);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int updateByPrimaryKeySelective(TArrearsDun record);
+
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	int updateByPrimaryKey(TArrearsDun record);
+
+
+	int checkOrderNo(@Param("orderNo")String orderNo, @Param("status")Integer status);
+
+
+	List<TArrearsDun> selectStatusAll(Integer Status);
+
+	Integer selectByStatus(@Param("orderNo")String orderNo,  @Param("status")Integer status);
+
+	List<TArrearsDun> selectStatusAndAmount(int i);
+
+}

+ 3 - 0
src/main/java/com/goafanti/common/dao/TChangeDunMapper.java

@@ -88,6 +88,9 @@ public interface TChangeDunMapper {
 	 */
 	int updateByTid(@Param("tid")Integer tid,@Param("cid")Integer cid,@Param("type")Integer type);
 
+
+	void deleteByCtid(Integer id);
+
 	
 
 	

+ 13 - 11
src/main/java/com/goafanti/common/dao/TOrderMidMapper.java

@@ -11,67 +11,67 @@ import org.apache.ibatis.annotations.Param;
 public interface TOrderMidMapper {
     /**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	long countByExample(TOrderMidExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int deleteByExample(TOrderMidExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int deleteByPrimaryKey(Integer id);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int insert(TOrderMid record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int insertSelective(TOrderMid record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	List<TOrderMid> selectByExample(TOrderMidExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	TOrderMid selectByPrimaryKey(Integer id);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int updateByExampleSelective(@Param("record") TOrderMid record, @Param("example") TOrderMidExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int updateByExample(@Param("record") TOrderMid record, @Param("example") TOrderMidExample example);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int updateByPrimaryKeySelective(TOrderMid record);
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	int updateByPrimaryKey(TOrderMid record);
 
@@ -84,4 +84,6 @@ public interface TOrderMidMapper {
 	void updatefinalReceivables(@Param("orderNo")String orderNo,@Param("amount")BigDecimal amount, @Param("receivablesTime")Date receivablesTime);
 
 	void updateInvoice(String orderNo);
+
+	void addOrderReceivables(@Param("orderNo")String orderNo, @Param("money")BigDecimal money);
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/UserLockReleaseMapper.java

@@ -108,4 +108,6 @@ public interface UserLockReleaseMapper {
 
 	int updatePrivateBusinessTransfer(@Param("inputId")String inputId, @Param("uid")String uid, @Param("pid")String pid,@Param("aid")String aid);
 
+	List<LockingReleaseBo> checkUserProject(@Param("uid")String uid, @Param("pid")String pid, @Param("aid")String aid);
+
 }

+ 100 - 0
src/main/java/com/goafanti/common/dao/UserTransferLogMapper.java

@@ -0,0 +1,100 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.UserTransferLog;
+import com.goafanti.common.model.UserTransferLogExample;
+import com.goafanti.customer.bo.transferListBo;
+
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface UserTransferLogMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    long countByExample(UserTransferLogExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int deleteByExample(UserTransferLogExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int insert(UserTransferLog record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int insertSelective(UserTransferLog record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    List<UserTransferLog> selectByExample(UserTransferLogExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    UserTransferLog selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int updateByExampleSelective(@Param("record") UserTransferLog record, @Param("example") UserTransferLogExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int updateByExample(@Param("record") UserTransferLog record, @Param("example") UserTransferLogExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int updateByPrimaryKeySelective(UserTransferLog record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    int updateByPrimaryKey(UserTransferLog record);
+
+	List<transferListBo> selectByUidGetList(String uid);
+}

+ 1 - 0
src/main/java/com/goafanti/common/enums/NoticeStatus.java

@@ -46,6 +46,7 @@ public enum NoticeStatus {
 	PROJECT_OUTSOURCE_START(37,"项目外包发起"),
 	PROJECT_OUTSOURCE_YES(38,"项目外包通过"),
 	PROJECT_OUTSOURCE_NO(39,"项目外包拒绝"),
+	ORDER_ARREARS_DUN(40,"欠款催款信息"),
 	OTHER(0, "其他");
 
 	private NoticeStatus(Integer code, String desc) {

+ 12 - 12
src/main/java/com/goafanti/common/mapper/NewOrderChangeMapper.xml

@@ -728,7 +728,7 @@ select
 	a.change_amount changeAmount, a.applicant, a.dep_name depName, a.project_state projectState, a.zxs_cost zxsCost,
 	a.zxs_remarks zxsRemarks, date_format(a.payment_time, '%Y-%m-%d')paymentTimes, a.payment_amount paymentAmount,
 	date_format(a. invoice_time, '%Y-%m-%d') invoiceTimes, a.invoice_amount invoiceAmount,a.invoice_type invoiceType,
-	a.cw_remarks cwRemarks,a.back_status backStatus from new_order_change a where 1 = 1 and status!=4
+	a.cw_remarks cwRemarks,a.back_status backStatus from new_order_change a where 1 = 1 and status in (0,1,2,3)
 	and a.order_no= #{orderNo} 
 	order by a.create_time desc
   </select>
@@ -746,7 +746,7 @@ select
   </select>
   <select id="checkOderNo" resultType="java.lang.Integer">
   select count(*) from new_order_change
-	where status != 4 and order_no= #{orderNo}
+	where status in (0,1,2,3) and order_no= #{orderNo}
   </select>
   <select id="selectOrderChangeList" resultType="com.goafanti.order.bo.NewOderCahngeListBo">
 	select a.id,a.order_no orderNo,b.contract_no contractNo, date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimes,c.nickname,b.order_type orderType, 
@@ -756,14 +756,14 @@ select
   left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id left join admin d on b.salesman_id=d.id 
   left join department e on b.order_dep=e.id 
  	<if test="processState==2"> 
- 	left join (select order_no, aid from order_examine where`type`=0)x on a.order_no = x.order_no
+ 	left join (select order_no, aid from order_examine where`type`=0 group by order_no,aid)x on a.order_no = x.order_no
 	</if>
 	<if test="processState==3"> 
-	left join (select order_no, aid from order_examine where`type`=1)x on a.order_no = x.order_no
+	left join (select order_no, aid from order_examine where`type`=1 group by order_no,aid)x on a.order_no = x.order_no
 	</if> 
 	where 1=1
 	<if test="processState==0">
-	and b.salesman_id= #{aid}
+	and b.salesman_id= #{aid} 
 	</if>
 	<if test="processState==1">
 	and b.order_dep in
@@ -823,7 +823,7 @@ select
 	 and (a.process_state &gt;= #{processState} and  a.process_state &lt; 9)or a.back_status &gt;= #{processState}
 	</if>
 	<if test="complete ==1 and processState != 5 and processState != 7 and processState != 8">
-	 and a.process_state = #{processState} 
+	 and a.process_state = #{processState}  
 	</if>
 	<if test="complete ==1 and processState == 5">
 	 and (a.process_state in(5,9)  and a.status !=4)
@@ -855,7 +855,7 @@ select
 	<if test="complete ==5 and processState != 2 and processState != 3">
 	 and a.back_status &gt;= #{processState}
 	</if>
-	order by a.create_time desc
+	order by a.status,a.create_time desc
 	<if test="page_sql != null">
 			${page_sql}
 	</if>
@@ -865,15 +865,15 @@ select
   select count(*) from new_order_change noc left join  new_order_change a on noc.id=a.id
   left join t_order_new b on a.order_no=b.order_no left join user c on b.buyer_id=c.id 
   left join admin d on b.salesman_id=d.id left join department e on b.order_dep=e.id
-	<if test="processState==2"> 
- 	left join (select order_no, aid from order_examine where`type`=0)x on a.order_no = x.order_no
+		<if test="processState==2"> 
+ 	left join (select order_no, aid from order_examine where`type`=0 group by order_no,aid)x on a.order_no = x.order_no
 	</if>
 	<if test="processState==3"> 
-	left join (select order_no, aid from order_examine where`type`=1)x on a.order_no = x.order_no
-	</if>
+	left join (select order_no, aid from order_examine where`type`=1 group by order_no,aid)x on a.order_no = x.order_no
+	</if> 
 	where 1=1
 	<if test="processState==0">
-	and b.salesman_id= #{aid}
+	and b.salesman_id= #{aid} 
 	</if>
 	<if test="processState==1">
 	and b.order_dep in

+ 1 - 1
src/main/java/com/goafanti/common/mapper/NewOrderDunMapper.xml

@@ -435,7 +435,7 @@
   </select>
   <select id="selectByTid" resultType="com.goafanti.order.bo.OutNewOrderDunBo">
     select a.id, a.order_no orderNo, a.tid, a.project_type projectType, a.dun_type dunType, a.wait_day waitDay, 
-  	a.effective_count effectiveCount, a.aid, a.create_time createTime from new_order_dun a
+  	a.effective_count effectiveCount, a.aid, a.money,a.create_time createTime from new_order_dun a
     where tid = #{tid} and status=0
   </select>
 </mapper>

+ 380 - 0
src/main/java/com/goafanti/common/mapper/TArrearsDunMapper.xml

@@ -0,0 +1,380 @@
+<?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.TArrearsDunMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TArrearsDun">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
+    <result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="order_receivables" jdbcType="DECIMAL" property="orderReceivables" />
+    <result column="order_arrears" jdbcType="DECIMAL" property="orderArrears" />
+    <result column="dun_status" jdbcType="INTEGER" property="dunStatus" />
+    <result column="type" jdbcType="INTEGER" property="type" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    id, create_time, start_time, end_time, order_no, order_receivables, order_arrears, 
+    dun_status, type
+  </sql>
+  <select id="selectByExample" parameterType="com.goafanti.common.model.TArrearsDunExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from t_arrears_dun
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from t_arrears_dun
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    delete from t_arrears_dun
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.goafanti.common.model.TArrearsDunExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    delete from t_arrears_dun
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.TArrearsDun">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    insert into t_arrears_dun (id, create_time, start_time, 
+      end_time, order_no, order_receivables, 
+      order_arrears, dun_status, type
+      )
+    values (#{id,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{startTime,jdbcType=TIMESTAMP}, 
+      #{endTime,jdbcType=TIMESTAMP}, #{orderNo,jdbcType=VARCHAR}, #{orderReceivables,jdbcType=DECIMAL}, 
+      #{orderArrears,jdbcType=DECIMAL}, #{dunStatus,jdbcType=INTEGER}, #{type,jdbcType=INTEGER}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.TArrearsDun">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    insert into t_arrears_dun
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="startTime != null">
+        start_time,
+      </if>
+      <if test="endTime != null">
+        end_time,
+      </if>
+      <if test="orderNo != null">
+        order_no,
+      </if>
+      <if test="orderReceivables != null">
+        order_receivables,
+      </if>
+      <if test="orderArrears != null">
+        order_arrears,
+      </if>
+      <if test="dunStatus != null">
+        dun_status,
+      </if>
+      <if test="type != null">
+        type,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="startTime != null">
+        #{startTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endTime != null">
+        #{endTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderNo != null">
+        #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="orderReceivables != null">
+        #{orderReceivables,jdbcType=DECIMAL},
+      </if>
+      <if test="orderArrears != null">
+        #{orderArrears,jdbcType=DECIMAL},
+      </if>
+      <if test="dunStatus != null">
+        #{dunStatus,jdbcType=INTEGER},
+      </if>
+      <if test="type != null">
+        #{type,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.goafanti.common.model.TArrearsDunExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    select count(*) from t_arrears_dun
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    update t_arrears_dun
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.startTime != null">
+        start_time = #{record.startTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.endTime != null">
+        end_time = #{record.endTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.orderNo != null">
+        order_no = #{record.orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="record.orderReceivables != null">
+        order_receivables = #{record.orderReceivables,jdbcType=DECIMAL},
+      </if>
+      <if test="record.orderArrears != null">
+        order_arrears = #{record.orderArrears,jdbcType=DECIMAL},
+      </if>
+      <if test="record.dunStatus != null">
+        dun_status = #{record.dunStatus,jdbcType=INTEGER},
+      </if>
+      <if test="record.type != null">
+        type = #{record.type,jdbcType=INTEGER},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    update t_arrears_dun
+    set id = #{record.id,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      start_time = #{record.startTime,jdbcType=TIMESTAMP},
+      end_time = #{record.endTime,jdbcType=TIMESTAMP},
+      order_no = #{record.orderNo,jdbcType=VARCHAR},
+      order_receivables = #{record.orderReceivables,jdbcType=DECIMAL},
+      order_arrears = #{record.orderArrears,jdbcType=DECIMAL},
+      dun_status = #{record.dunStatus,jdbcType=INTEGER},
+      type = #{record.type,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TArrearsDun">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    update t_arrears_dun
+    <set>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="startTime != null">
+        start_time = #{startTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="endTime != null">
+        end_time = #{endTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="orderNo != null">
+        order_no = #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="orderReceivables != null">
+        order_receivables = #{orderReceivables,jdbcType=DECIMAL},
+      </if>
+      <if test="orderArrears != null">
+        order_arrears = #{orderArrears,jdbcType=DECIMAL},
+      </if>
+      <if test="dunStatus != null">
+        dun_status = #{dunStatus,jdbcType=INTEGER},
+      </if>
+      <if test="type != null">
+        type = #{type,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TArrearsDun">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Apr 15 15:52:48 CST 2020.
+    -->
+    update t_arrears_dun
+    set create_time = #{createTime,jdbcType=TIMESTAMP},
+      start_time = #{startTime,jdbcType=TIMESTAMP},
+      end_time = #{endTime,jdbcType=TIMESTAMP},
+      order_no = #{orderNo,jdbcType=VARCHAR},
+      order_receivables = #{orderReceivables,jdbcType=DECIMAL},
+      order_arrears = #{orderArrears,jdbcType=DECIMAL},
+      dun_status = #{dunStatus,jdbcType=INTEGER},
+      type = #{type,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  
+  <select id="checkOrderNo" resultType="java.lang.Integer">
+  select count(*) from t_arrears_dun where 1=1
+  <if test="status !=null ">
+  and dun_status= #{status,jdbcType=INTEGER} 
+  </if>
+  and order_no= #{orderNo,jdbcType=VARCHAR}
+  </select>
+  <select id="selectByStatus" resultType="java.lang.Integer">
+  select id from t_arrears_dun where 1=1
+  <if test="status !=null ">
+  and dun_status= #{status,jdbcType=INTEGER} 
+  </if>
+  and order_no= #{orderNo,jdbcType=VARCHAR}
+  limit 1
+  </select>
+  
+  
+  <select id="selectStatusAll" resultType="com.goafanti.common.model.TArrearsDun">
+  select id,create_time createTime,order_no orderNo,order_arrears orderArrears,order_receivables orderReceivables,
+	dun_status dunStatus,start_time startTime, end_time endTime from t_arrears_dun  
+  where dun_status= #{status}
+  </select>
+  
+  <select id="selectStatusAndAmount" resultType="com.goafanti.common.model.TArrearsDun">
+  select a.id,a.order_no orderNo,a.order_arrears orderArrears,a.order_receivables orderReceivables,
+	a.dun_status dunStatus from t_arrears_dun a left join t_order_mid b on a.order_no=b.order_no   
+  where b.order_arrears !=0 and dun_status= #{status}
+  </select>
+</mapper>

+ 5 - 0
src/main/java/com/goafanti/common/mapper/TChangeDunMapper.xml

@@ -509,5 +509,10 @@
   		</if>
   </update>
   
+    <delete id="deleteByCtid" parameterType="java.lang.Integer">
+    
+    delete from t_change_dun
+    where ctid = #{id,jdbcType=INTEGER}
+  </delete>
  
 </mapper>

+ 60 - 23
src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml

@@ -5,7 +5,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
@@ -18,12 +18,14 @@
     <result column="invoice_amount" jdbcType="DECIMAL" property="invoiceAmount" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="buyer_name" jdbcType="VARCHAR" property="buyerName" />
+    <result column="order_receivables" jdbcType="DECIMAL" property="orderReceivables" />
+    <result column="order_arrears" jdbcType="DECIMAL" property="orderArrears" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
@@ -57,7 +59,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     <where>
       <foreach collection="example.oredCriteria" item="criteria" separator="or">
@@ -91,16 +93,17 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     id, order_no, salesman_id, finance_id, salesman_name, finance_name, final_receivables, 
-    final_Receivables_time, invoice_amount, create_time, buyer_name
+    final_Receivables_time, invoice_amount, create_time, buyer_name, order_receivables, 
+    order_arrears
   </sql>
   <select id="selectByExample" parameterType="com.goafanti.common.model.TOrderMidExample" resultMap="BaseResultMap">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     select
     <if test="distinct">
@@ -119,7 +122,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     select 
     <include refid="Base_Column_List" />
@@ -130,7 +133,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     delete from t_order_mid
     where id = #{id,jdbcType=INTEGER}
@@ -139,7 +142,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     delete from t_order_mid
     <if test="_parameter != null">
@@ -150,24 +153,24 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     insert into t_order_mid (id, order_no, salesman_id, 
       finance_id, salesman_name, finance_name, 
       final_receivables, final_Receivables_time, 
-      invoice_amount, create_time, buyer_name
-      )
+      invoice_amount, create_time, buyer_name, 
+      order_receivables, order_arrears)
     values (#{id,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{salesmanId,jdbcType=VARCHAR}, 
       #{financeId,jdbcType=VARCHAR}, #{salesmanName,jdbcType=VARCHAR}, #{financeName,jdbcType=VARCHAR}, 
       #{finalReceivables,jdbcType=DECIMAL}, #{finalReceivablesTime,jdbcType=TIMESTAMP}, 
-      #{invoiceAmount,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{buyerName,jdbcType=VARCHAR}
-      )
+      #{invoiceAmount,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{buyerName,jdbcType=VARCHAR}, 
+      #{orderReceivables,jdbcType=DECIMAL}, #{orderArrears,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.TOrderMid">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     insert into t_order_mid
     <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -204,6 +207,12 @@
       <if test="buyerName != null">
         buyer_name,
       </if>
+      <if test="orderReceivables != null">
+        order_receivables,
+      </if>
+      <if test="orderArrears != null">
+        order_arrears,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -239,13 +248,19 @@
       <if test="buyerName != null">
         #{buyerName,jdbcType=VARCHAR},
       </if>
+      <if test="orderReceivables != null">
+        #{orderReceivables,jdbcType=DECIMAL},
+      </if>
+      <if test="orderArrears != null">
+        #{orderArrears,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.goafanti.common.model.TOrderMidExample" resultType="java.lang.Long">
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     select count(*) from t_order_mid
     <if test="_parameter != null">
@@ -256,7 +271,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     update t_order_mid
     <set>
@@ -293,6 +308,12 @@
       <if test="record.buyerName != null">
         buyer_name = #{record.buyerName,jdbcType=VARCHAR},
       </if>
+      <if test="record.orderReceivables != null">
+        order_receivables = #{record.orderReceivables,jdbcType=DECIMAL},
+      </if>
+      <if test="record.orderArrears != null">
+        order_arrears = #{record.orderArrears,jdbcType=DECIMAL},
+      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -302,7 +323,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     update t_order_mid
     set id = #{record.id,jdbcType=INTEGER},
@@ -315,7 +336,9 @@
       final_Receivables_time = #{record.finalReceivablesTime,jdbcType=TIMESTAMP},
       invoice_amount = #{record.invoiceAmount,jdbcType=DECIMAL},
       create_time = #{record.createTime,jdbcType=TIMESTAMP},
-      buyer_name = #{record.buyerName,jdbcType=VARCHAR}
+      buyer_name = #{record.buyerName,jdbcType=VARCHAR},
+      order_receivables = #{record.orderReceivables,jdbcType=DECIMAL},
+      order_arrears = #{record.orderArrears,jdbcType=DECIMAL}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -324,7 +347,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     update t_order_mid
     <set>
@@ -358,6 +381,12 @@
       <if test="buyerName != null">
         buyer_name = #{buyerName,jdbcType=VARCHAR},
       </if>
+      <if test="orderReceivables != null">
+        order_receivables = #{orderReceivables,jdbcType=DECIMAL},
+      </if>
+      <if test="orderArrears != null">
+        order_arrears = #{orderArrears,jdbcType=DECIMAL},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -365,7 +394,7 @@
     <!--
       WARNING - @mbg.generated
       This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Wed Mar 18 15:17:11 CST 2020.
+      This element was generated on Fri Apr 10 15:06:35 CST 2020.
     -->
     update t_order_mid
     set order_no = #{orderNo,jdbcType=VARCHAR},
@@ -377,7 +406,9 @@
       final_Receivables_time = #{finalReceivablesTime,jdbcType=TIMESTAMP},
       invoice_amount = #{invoiceAmount,jdbcType=DECIMAL},
       create_time = #{createTime,jdbcType=TIMESTAMP},
-      buyer_name = #{buyerName,jdbcType=VARCHAR}
+      buyer_name = #{buyerName,jdbcType=VARCHAR},
+      order_receivables = #{orderReceivables,jdbcType=DECIMAL},
+      order_arrears = #{orderArrears,jdbcType=DECIMAL}
     where id = #{id,jdbcType=INTEGER}
   </update>
   <select id="selectByOrderNo" resultMap="BaseResultMap">
@@ -395,11 +426,17 @@
 	where a.order_dep=#{id} and a.order_no=b.order_no and c.id= #{financeId}
   </update>
   <update id="updatefinalReceivables">
-  update t_order_mid set final_receivables= #{amount},`final_Receivables_time`= #{receivablesTime}
+  update t_order_mid set final_receivables= #{amount},`final_Receivables_time`= #{receivablesTime},
+  order_arrears=if(order_arrears- #{amount} &lt; 0,0,order_arrears- #{amount})
 	where order_no= #{orderNo}
   </update>
   <update id="updateInvoice">
   update t_order_mid m,(select order_no,sum(amount)amount from t_order_invoice where status=2 group by order_no)b 
 	set m.invoice_amount=b.amount where m.order_no= #{orderNo} and  m.order_no=b.order_no 
   </update>
+  <update id="addOrderReceivables"> 
+  update t_order_mid  set order_receivables=order_receivables+#{money},
+  order_arrears=order_arrears+#{money}
+	where order_no=#{orderNo}
+  </update>
 </mapper>

+ 80 - 6
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1116,15 +1116,14 @@
   </select>
   <!-- 财务专员查看需要待收款的数据 -->
   <select id="financeList" parameterType="Map" resultType="com.goafanti.order.bo.OrderListBo">
-   select o.order_no as orderNo, o.sign_time as signTime, u.nickname as buyerName, o.order_status as orderStatus,a.finance_name financeName,
+ select o.order_no as orderNo, o.sign_time as signTime, u.nickname as buyerName, o.order_status as orderStatus,a.finance_name financeName,
 	o.process_status as processStatus, o.settlement_amount as actuallyTotalAmount, o.contract_no as contractNo, o.approval, o.back_status backStatus,
 	a.salesman_name as sellerName, o.salesman_id as sellerId, o.buyer_id as buyerId, o.liquidation_status as liquidationStatus ,too.amount outsourceAmount,
 	o.first_amount as signFirstPayment, o.total_amount as signTotalAmount, date_format(o.create_time, '%Y-%m-%d %H:%i:%s') as createTime,
-	too.company_name as outsourceName, 0 as companyId, d.name as departmentName, a.final_receivables finalReceivables ,
-	date_format(a.`final_Receivables_time`, '%Y-%m-%d %H:%i:%s')finalReceivablesTime,a.invoice_amount invoiceAmount from t_order_new o 
-left join department d on o.order_dep = d.id left join `user` u on o.buyer_id = u.id left join t_order_mid a on o.order_no=a.order_no 
-left join t_order_outsource too on o.order_no=too.order_no where delete_sign != 1 and approval !=3 
-	and outsource=  #{o.outsource,jdbcType=INTEGER}	
+	too.company_name as outsourceName, 0 as companyId, d.name as departmentName, a.final_receivables finalReceivables ,a.invoice_amount invoiceAmount ,
+	date_format(a.`final_Receivables_time`, '%Y-%m-%d %H:%i:%s')finalReceivablesTime,a.order_receivables orderReceivables,a.order_arrears orderArrears
+	from t_order_new o left join department d on o.order_dep = d.id left join `user` u on o.buyer_id = u.id left join t_order_mid a on o.order_no=a.order_no 
+	left join t_order_outsource too on o.order_no=too.order_no where delete_sign != 1 and approval !=3 and outsource=  #{o.outsource,jdbcType=INTEGER}	
   	 	<if test="o.processStatus == 3">
 	  	and o.process_status = #{o.processStatus,jdbcType=INTEGER}
 	  	</if>
@@ -1777,4 +1776,79 @@ where super_id is null ) e on e.order_no=a.order_no
   	update t_order_new set settlement_amount=settlement_amount-#{refundAmount,jdbcType=DECIMAL},
   	refund_amount=#{refundAmount,jdbcType=DECIMAL}	where order_no=#{orderNo}
   </update>
+  
+  <select id="selectArrearsDunListByPage" resultType="com.goafanti.order.bo.OutArrearsDunListBo">
+select a.id, b.contract_no contractNo,a.order_no as orderNo,c.nickname as userName,tm.salesman_name as salesmanName,
+   	b.project_status projectStatus, b.total_amount as totalAmount,b.liquidation_status as liquidationStatus,a.`type`,
+   	b.settlement_amount as settlementAmount, a.order_receivables orderReceivables,a.order_arrears as orderArrears,
+   	b.order_status as orderStatus, date_format(a.start_time, '%Y-%m-%d %H:%i:%s') as startDate,dep.name as depName,
+   	date_format(b.sign_time,'%Y-%m-%d') as signDate,a.dun_status dunStatus  from t_arrears_dun a 
+   	left join t_order_new b on a.order_no=b.order_no left join `user` c on b.buyer_id=c.id 
+	left join t_order_mid tm on b.order_no=tm.order_no left join department dep on b.order_dep=dep.id
+	where  b.delete_sign != 1 and dun_status in (1,2,3)
+	<if test="shiroType == 1 and fid !=null">
+  	 and tm.finance_id= #{fid,jdbcType=VARCHAR}
+  	</if>
+  	<if test="shiroType == 2 and fid !=null">
+  	 and tm.finance_id in (select id from admin where superior_id= #{fid,jdbcType=VARCHAR})
+  	</if>
+    <if test="name != null">
+  	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="adminName != null">
+  	and tm.salesman_name  like CONCAT('%',#{adminName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="orderNo != null">
+  	and a.order_no like CONCAT('%',#{orderNo,jdbcType=VARCHAR},'%') 
+  	</if>
+  	<if test="depId != null">
+  	and b.order_dep= #{depId,jdbcType=VARCHAR}
+  	</if>
+  	<if test="aid != null">
+  	and b.salesman_id= #{aid,jdbcType=VARCHAR}
+  	</if>
+  	<if test="starTime !=null and endTime !=null">
+  	and b.sign_time between #{starTime,jdbcType=VARCHAR} and #{endTime,jdbcType=VARCHAR}
+  	</if>
+  	<if test="tStarTime !=null and tEndTime !=null">
+  	and a.start_time between #{tStarTime,jdbcType=VARCHAR} and #{tEndTime,jdbcType=VARCHAR}
+  	</if>
+  	order by dun_status,a.start_time desc
+  	<if test="page_sql!=null">
+			${page_sql}
+	</if>
+  </select>
+  <select id="selectArrearsDunListByCount" resultType="java.lang.Integer">
+  select count(*) from t_arrears_dun a 
+   	left join t_order_new b on a.order_no=b.order_no left join `user` c on b.buyer_id=c.id 
+	left join t_order_mid tm on b.order_no=tm.order_no left join department dep on b.order_dep=dep.id
+	where  b.delete_sign != 1 and dun_status in (1,2,3)
+	<if test="shiroType == 1 and fid !=null">
+  	 and tm.finance_id= #{fid,jdbcType=VARCHAR}
+  	</if>
+  	<if test="shiroType == 2 and fid !=null">
+  	 and tm.finance_id in (select id from admin where superior_id= #{fid,jdbcType=VARCHAR})
+  	</if>
+    <if test="name != null">
+  	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="adminName != null">
+  	and tm.salesman_name  like CONCAT('%',#{adminName,jdbcType=VARCHAR},'%')
+  	</if>
+  	<if test="orderNo != null">
+  	and a.order_no like CONCAT('%',#{orderNo,jdbcType=VARCHAR},'%') 
+  	</if>
+  	<if test="depId != null">
+  	and b.order_dep= #{depId,jdbcType=VARCHAR}
+  	</if>
+  	<if test="aid != null">
+  	and b.salesman_id= #{aid,jdbcType=VARCHAR}
+  	</if>
+  	<if test="starTime !=null and endTime !=null">
+  	and b.sign_time between #{starTime,jdbcType=VARCHAR} and #{endTime,jdbcType=VARCHAR}
+  	</if>
+   <if test="tStarTime !=null and tEndTime !=null">
+  	and a.start_time between #{tStarTime,jdbcType=VARCHAR} and #{tEndTime,jdbcType=VARCHAR}
+  	</if>
+  </select>
 </mapper>

+ 1 - 0
src/main/java/com/goafanti/common/mapper/UserBusinessMapper.xml

@@ -378,6 +378,7 @@
 	left join business_project b on a.business_project_id = b.id
 	left join business_category c on b.cid = c.id
 	where  a.uid = #{uid,jdbcType=VARCHAR} and a.aid = #{aid,jdbcType=VARCHAR} and  a.customer_status != 6
+	order by a.create_time
   </select>
   
   <select id="selectLockedBusinessByUAid" parameterType="java.lang.String" resultType="com.goafanti.customer.bo.BusinessListBo">

+ 10 - 0
src/main/java/com/goafanti/common/mapper/UserLockReleaseMapper.xml

@@ -413,4 +413,14 @@
   <update id="updatePrivateBusinessTransfer">
  	update user_lock_release set aid=#{inputId} where uid= #{uid} and business_project_id= #{pid} and aid= #{aid}; 
   </update>
+  
+  <select id="checkUserProject" resultType="com.goafanti.customer.bo.LockingReleaseBo">
+  	select 
+		 id, type, uid, aid, business_project_id as  businessProjectId, status 
+	 from user_lock_release where type =1
+	and status=0
+	and uid=#{uid,jdbcType=VARCHAR}
+	and aid=#{aid,jdbcType=VARCHAR}
+	and business_project_id=#{pid,jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 326 - 0
src/main/java/com/goafanti/common/mapper/UserTransferLogMapper.xml

@@ -0,0 +1,326 @@
+<?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.UserTransferLogMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.UserTransferLog">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="uid" jdbcType="VARCHAR" property="uid" />
+    <result column="aid" jdbcType="VARCHAR" property="aid" />
+    <result column="pid" jdbcType="VARCHAR" property="pid" />
+    <result column="take_aid" jdbcType="VARCHAR" property="takeAid" />
+    <result column="type" jdbcType="INTEGER" property="type" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    id, uid, aid, pid, take_aid, type, create_time
+  </sql>
+  <select id="selectByExample" parameterType="com.goafanti.common.model.UserTransferLogExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from user_transfer_log
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from user_transfer_log
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    delete from user_transfer_log
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.goafanti.common.model.UserTransferLogExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    delete from user_transfer_log
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.goafanti.common.model.UserTransferLog">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    insert into user_transfer_log (id, uid, aid, 
+      pid, take_aid, type, 
+      create_time)
+    values (#{id,jdbcType=INTEGER}, #{uid,jdbcType=VARCHAR}, #{aid,jdbcType=VARCHAR}, 
+      #{pid,jdbcType=VARCHAR}, #{takeAid,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, 
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.goafanti.common.model.UserTransferLog">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    insert into user_transfer_log
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="uid != null">
+        uid,
+      </if>
+      <if test="aid != null">
+        aid,
+      </if>
+      <if test="pid != null">
+        pid,
+      </if>
+      <if test="takeAid != null">
+        take_aid,
+      </if>
+      <if test="type != null">
+        type,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="uid != null">
+        #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="aid != null">
+        #{aid,jdbcType=VARCHAR},
+      </if>
+      <if test="pid != null">
+        #{pid,jdbcType=VARCHAR},
+      </if>
+      <if test="takeAid != null">
+        #{takeAid,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        #{type,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.goafanti.common.model.UserTransferLogExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    select count(*) from user_transfer_log
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    update user_transfer_log
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.uid != null">
+        uid = #{record.uid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.aid != null">
+        aid = #{record.aid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.pid != null">
+        pid = #{record.pid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.takeAid != null">
+        take_aid = #{record.takeAid,jdbcType=VARCHAR},
+      </if>
+      <if test="record.type != null">
+        type = #{record.type,jdbcType=INTEGER},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    update user_transfer_log
+    set id = #{record.id,jdbcType=INTEGER},
+      uid = #{record.uid,jdbcType=VARCHAR},
+      aid = #{record.aid,jdbcType=VARCHAR},
+      pid = #{record.pid,jdbcType=VARCHAR},
+      take_aid = #{record.takeAid,jdbcType=VARCHAR},
+      type = #{record.type,jdbcType=INTEGER},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.UserTransferLog">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    update user_transfer_log
+    <set>
+      <if test="uid != null">
+        uid = #{uid,jdbcType=VARCHAR},
+      </if>
+      <if test="aid != null">
+        aid = #{aid,jdbcType=VARCHAR},
+      </if>
+      <if test="pid != null">
+        pid = #{pid,jdbcType=VARCHAR},
+      </if>
+      <if test="takeAid != null">
+        take_aid = #{takeAid,jdbcType=VARCHAR},
+      </if>
+      <if test="type != null">
+        type = #{type,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.UserTransferLog">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Thu Apr 09 11:39:03 CST 2020.
+    -->
+    update user_transfer_log
+    set uid = #{uid,jdbcType=VARCHAR},
+      aid = #{aid,jdbcType=VARCHAR},
+      pid = #{pid,jdbcType=VARCHAR},
+      take_aid = #{takeAid,jdbcType=VARCHAR},
+      type = #{type,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <select id="selectByUidGetList" resultType="com.goafanti.customer.bo.transferListBo">
+	select a.id,a.type,b.nickname userName,c.name usedAName,d.name newAName,e.bname Pname, 
+  	date_format(a.create_time,'%Y-%m-%d %H:%i:%S') as createDate
+  	from user_transfer_log a left join user b on a.uid=b.id
+	left join admin c on a.aid=c.id left join admin d on a.take_aid=d.id
+	left join business_project e on a.pid=e.id 
+	where uid= #{uid}
+  </select>
+</mapper>

+ 215 - 0
src/main/java/com/goafanti/common/model/TArrearsDun.java

@@ -0,0 +1,215 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+import java.math.BigDecimal;
+
+public class TArrearsDun {
+
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.id
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private Integer id;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.create_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private Date createTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.start_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private Date startTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.end_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private Date endTime;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.order_no
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private String orderNo;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.order_receivables
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private BigDecimal orderReceivables;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.order_arrears
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private BigDecimal orderArrears;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.dun_status
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private Integer dunStatus;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_arrears_dun.type
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	private Integer type;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.id
+	 * @return  the value of t_arrears_dun.id
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public Integer getId() {
+		return id;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.id
+	 * @param id  the value for t_arrears_dun.id
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	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_arrears_dun.create_time
+	 * @return  the value of t_arrears_dun.create_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.create_time
+	 * @param createTime  the value for t_arrears_dun.create_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.start_time
+	 * @return  the value of t_arrears_dun.start_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public Date getStartTime() {
+		return startTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.start_time
+	 * @param startTime  the value for t_arrears_dun.start_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setStartTime(Date startTime) {
+		this.startTime = startTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.end_time
+	 * @return  the value of t_arrears_dun.end_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public Date getEndTime() {
+		return endTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.end_time
+	 * @param endTime  the value for t_arrears_dun.end_time
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setEndTime(Date endTime) {
+		this.endTime = endTime;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.order_no
+	 * @return  the value of t_arrears_dun.order_no
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public String getOrderNo() {
+		return orderNo;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.order_no
+	 * @param orderNo  the value for t_arrears_dun.order_no
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.order_receivables
+	 * @return  the value of t_arrears_dun.order_receivables
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public BigDecimal getOrderReceivables() {
+		return orderReceivables;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.order_receivables
+	 * @param orderReceivables  the value for t_arrears_dun.order_receivables
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setOrderReceivables(BigDecimal orderReceivables) {
+		this.orderReceivables = orderReceivables;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.order_arrears
+	 * @return  the value of t_arrears_dun.order_arrears
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public BigDecimal getOrderArrears() {
+		return orderArrears;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.order_arrears
+	 * @param orderArrears  the value for t_arrears_dun.order_arrears
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setOrderArrears(BigDecimal orderArrears) {
+		this.orderArrears = orderArrears;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.dun_status
+	 * @return  the value of t_arrears_dun.dun_status
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public Integer getDunStatus() {
+		return dunStatus;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.dun_status
+	 * @param dunStatus  the value for t_arrears_dun.dun_status
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setDunStatus(Integer dunStatus) {
+		this.dunStatus = dunStatus;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_arrears_dun.type
+	 * @return  the value of t_arrears_dun.type
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public Integer getType() {
+		return type;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_arrears_dun.type
+	 * @param type  the value for t_arrears_dun.type
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setType(Integer type) {
+		this.type = type;
+	}
+}

+ 814 - 0
src/main/java/com/goafanti/common/model/TArrearsDunExample.java

@@ -0,0 +1,814 @@
+package com.goafanti.common.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.math.BigDecimal;
+
+public class TArrearsDunExample {
+    /**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	protected String orderByClause;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	protected boolean distinct;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	protected List<Criteria> oredCriteria;
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public TArrearsDunExample() {
+		oredCriteria = new ArrayList<Criteria>();
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setOrderByClause(String orderByClause) {
+		this.orderByClause = orderByClause;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public String getOrderByClause() {
+		return orderByClause;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void setDistinct(boolean distinct) {
+		this.distinct = distinct;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public boolean isDistinct() {
+		return distinct;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public List<Criteria> getOredCriteria() {
+		return oredCriteria;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void or(Criteria criteria) {
+		oredCriteria.add(criteria);
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	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_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	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_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	protected Criteria createCriteriaInternal() {
+		Criteria criteria = new Criteria();
+		return criteria;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	public void clear() {
+		oredCriteria.clear();
+		orderByClause = null;
+		distinct = false;
+	}
+
+	/**
+	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	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 andCreateTimeIsNull() {
+			addCriterion("create_time is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeIsNotNull() {
+			addCriterion("create_time is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeEqualTo(Date value) {
+			addCriterion("create_time =", value, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeNotEqualTo(Date value) {
+			addCriterion("create_time <>", value, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeGreaterThan(Date value) {
+			addCriterion("create_time >", value, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+			addCriterion("create_time >=", value, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeLessThan(Date value) {
+			addCriterion("create_time <", value, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+			addCriterion("create_time <=", value, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeIn(List<Date> values) {
+			addCriterion("create_time in", values, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeNotIn(List<Date> values) {
+			addCriterion("create_time not in", values, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeBetween(Date value1, Date value2) {
+			addCriterion("create_time between", value1, value2, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+			addCriterion("create_time not between", value1, value2, "createTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeIsNull() {
+			addCriterion("start_time is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeIsNotNull() {
+			addCriterion("start_time is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeEqualTo(Date value) {
+			addCriterion("start_time =", value, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeNotEqualTo(Date value) {
+			addCriterion("start_time <>", value, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeGreaterThan(Date value) {
+			addCriterion("start_time >", value, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
+			addCriterion("start_time >=", value, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeLessThan(Date value) {
+			addCriterion("start_time <", value, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeLessThanOrEqualTo(Date value) {
+			addCriterion("start_time <=", value, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeIn(List<Date> values) {
+			addCriterion("start_time in", values, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeNotIn(List<Date> values) {
+			addCriterion("start_time not in", values, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeBetween(Date value1, Date value2) {
+			addCriterion("start_time between", value1, value2, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andStartTimeNotBetween(Date value1, Date value2) {
+			addCriterion("start_time not between", value1, value2, "startTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeIsNull() {
+			addCriterion("end_time is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeIsNotNull() {
+			addCriterion("end_time is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeEqualTo(Date value) {
+			addCriterion("end_time =", value, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeNotEqualTo(Date value) {
+			addCriterion("end_time <>", value, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeGreaterThan(Date value) {
+			addCriterion("end_time >", value, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
+			addCriterion("end_time >=", value, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeLessThan(Date value) {
+			addCriterion("end_time <", value, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeLessThanOrEqualTo(Date value) {
+			addCriterion("end_time <=", value, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeIn(List<Date> values) {
+			addCriterion("end_time in", values, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeNotIn(List<Date> values) {
+			addCriterion("end_time not in", values, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeBetween(Date value1, Date value2) {
+			addCriterion("end_time between", value1, value2, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andEndTimeNotBetween(Date value1, Date value2) {
+			addCriterion("end_time not between", value1, value2, "endTime");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoIsNull() {
+			addCriterion("order_no is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoIsNotNull() {
+			addCriterion("order_no is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoEqualTo(String value) {
+			addCriterion("order_no =", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoNotEqualTo(String value) {
+			addCriterion("order_no <>", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoGreaterThan(String value) {
+			addCriterion("order_no >", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoGreaterThanOrEqualTo(String value) {
+			addCriterion("order_no >=", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoLessThan(String value) {
+			addCriterion("order_no <", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoLessThanOrEqualTo(String value) {
+			addCriterion("order_no <=", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoLike(String value) {
+			addCriterion("order_no like", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoNotLike(String value) {
+			addCriterion("order_no not like", value, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoIn(List<String> values) {
+			addCriterion("order_no in", values, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoNotIn(List<String> values) {
+			addCriterion("order_no not in", values, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoBetween(String value1, String value2) {
+			addCriterion("order_no between", value1, value2, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderNoNotBetween(String value1, String value2) {
+			addCriterion("order_no not between", value1, value2, "orderNo");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesIsNull() {
+			addCriterion("order_receivables is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesIsNotNull() {
+			addCriterion("order_receivables is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesEqualTo(BigDecimal value) {
+			addCriterion("order_receivables =", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesNotEqualTo(BigDecimal value) {
+			addCriterion("order_receivables <>", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesGreaterThan(BigDecimal value) {
+			addCriterion("order_receivables >", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesGreaterThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_receivables >=", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesLessThan(BigDecimal value) {
+			addCriterion("order_receivables <", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesLessThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_receivables <=", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesIn(List<BigDecimal> values) {
+			addCriterion("order_receivables in", values, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesNotIn(List<BigDecimal> values) {
+			addCriterion("order_receivables not in", values, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_receivables between", value1, value2, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesNotBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_receivables not between", value1, value2, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsIsNull() {
+			addCriterion("order_arrears is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsIsNotNull() {
+			addCriterion("order_arrears is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsEqualTo(BigDecimal value) {
+			addCriterion("order_arrears =", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsNotEqualTo(BigDecimal value) {
+			addCriterion("order_arrears <>", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsGreaterThan(BigDecimal value) {
+			addCriterion("order_arrears >", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsGreaterThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_arrears >=", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsLessThan(BigDecimal value) {
+			addCriterion("order_arrears <", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsLessThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_arrears <=", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsIn(List<BigDecimal> values) {
+			addCriterion("order_arrears in", values, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsNotIn(List<BigDecimal> values) {
+			addCriterion("order_arrears not in", values, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_arrears between", value1, value2, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsNotBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_arrears not between", value1, value2, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusIsNull() {
+			addCriterion("dun_status is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusIsNotNull() {
+			addCriterion("dun_status is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusEqualTo(Integer value) {
+			addCriterion("dun_status =", value, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusNotEqualTo(Integer value) {
+			addCriterion("dun_status <>", value, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusGreaterThan(Integer value) {
+			addCriterion("dun_status >", value, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusGreaterThanOrEqualTo(Integer value) {
+			addCriterion("dun_status >=", value, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusLessThan(Integer value) {
+			addCriterion("dun_status <", value, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusLessThanOrEqualTo(Integer value) {
+			addCriterion("dun_status <=", value, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusIn(List<Integer> values) {
+			addCriterion("dun_status in", values, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusNotIn(List<Integer> values) {
+			addCriterion("dun_status not in", values, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusBetween(Integer value1, Integer value2) {
+			addCriterion("dun_status between", value1, value2, "dunStatus");
+			return (Criteria) this;
+		}
+
+		public Criteria andDunStatusNotBetween(Integer value1, Integer value2) {
+			addCriterion("dun_status not between", value1, value2, "dunStatus");
+			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;
+		}
+	}
+
+	/**
+	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_arrears_dun
+	 * @mbg.generated  Wed Apr 15 15:52:48 CST 2020
+	 */
+	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_arrears_dun
+     *
+     * @mbg.generated do_not_delete_during_merge Mon Apr 13 08:58:46 CST 2020
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+}

+ 79 - 33
src/main/java/com/goafanti/common/model/TOrderMid.java

@@ -7,64 +7,74 @@ public class TOrderMid {
 
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private Integer id;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.order_no
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private String orderNo;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.salesman_id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private String salesmanId;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.finance_id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private String financeId;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.salesman_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private String salesmanName;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.finance_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private String financeName;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.final_receivables
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private BigDecimal finalReceivables;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.final_Receivables_time
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private Date finalReceivablesTime;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.invoice_amount
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private BigDecimal invoiceAmount;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.create_time
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private Date createTime;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.buyer_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	private String buyerName;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.order_receivables
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
+	 */
+	private BigDecimal orderReceivables;
+	/**
+	 * This field was generated by MyBatis Generator. This field corresponds to the database column t_order_mid.order_arrears
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
+	 */
+	private BigDecimal orderArrears;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.id
 	 * @return  the value of t_order_mid.id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public Integer getId() {
 		return id;
@@ -73,7 +83,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.id
 	 * @param id  the value for t_order_mid.id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setId(Integer id) {
 		this.id = id;
@@ -82,7 +92,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.order_no
 	 * @return  the value of t_order_mid.order_no
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getOrderNo() {
 		return orderNo;
@@ -91,7 +101,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.order_no
 	 * @param orderNo  the value for t_order_mid.order_no
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setOrderNo(String orderNo) {
 		this.orderNo = orderNo;
@@ -100,7 +110,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.salesman_id
 	 * @return  the value of t_order_mid.salesman_id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getSalesmanId() {
 		return salesmanId;
@@ -109,7 +119,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.salesman_id
 	 * @param salesmanId  the value for t_order_mid.salesman_id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setSalesmanId(String salesmanId) {
 		this.salesmanId = salesmanId;
@@ -118,7 +128,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.finance_id
 	 * @return  the value of t_order_mid.finance_id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getFinanceId() {
 		return financeId;
@@ -127,7 +137,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.finance_id
 	 * @param financeId  the value for t_order_mid.finance_id
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setFinanceId(String financeId) {
 		this.financeId = financeId;
@@ -136,7 +146,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.salesman_name
 	 * @return  the value of t_order_mid.salesman_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getSalesmanName() {
 		return salesmanName;
@@ -145,7 +155,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.salesman_name
 	 * @param salesmanName  the value for t_order_mid.salesman_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setSalesmanName(String salesmanName) {
 		this.salesmanName = salesmanName;
@@ -154,7 +164,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.finance_name
 	 * @return  the value of t_order_mid.finance_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getFinanceName() {
 		return financeName;
@@ -163,7 +173,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.finance_name
 	 * @param financeName  the value for t_order_mid.finance_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setFinanceName(String financeName) {
 		this.financeName = financeName;
@@ -172,7 +182,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.final_receivables
 	 * @return  the value of t_order_mid.final_receivables
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public BigDecimal getFinalReceivables() {
 		return finalReceivables;
@@ -181,7 +191,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.final_receivables
 	 * @param finalReceivables  the value for t_order_mid.final_receivables
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setFinalReceivables(BigDecimal finalReceivables) {
 		this.finalReceivables = finalReceivables;
@@ -190,7 +200,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.final_Receivables_time
 	 * @return  the value of t_order_mid.final_Receivables_time
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public Date getFinalReceivablesTime() {
 		return finalReceivablesTime;
@@ -199,7 +209,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.final_Receivables_time
 	 * @param finalReceivablesTime  the value for t_order_mid.final_Receivables_time
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setFinalReceivablesTime(Date finalReceivablesTime) {
 		this.finalReceivablesTime = finalReceivablesTime;
@@ -208,7 +218,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.invoice_amount
 	 * @return  the value of t_order_mid.invoice_amount
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public BigDecimal getInvoiceAmount() {
 		return invoiceAmount;
@@ -217,7 +227,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.invoice_amount
 	 * @param invoiceAmount  the value for t_order_mid.invoice_amount
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setInvoiceAmount(BigDecimal invoiceAmount) {
 		this.invoiceAmount = invoiceAmount;
@@ -226,7 +236,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.create_time
 	 * @return  the value of t_order_mid.create_time
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public Date getCreateTime() {
 		return createTime;
@@ -235,7 +245,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.create_time
 	 * @param createTime  the value for t_order_mid.create_time
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setCreateTime(Date createTime) {
 		this.createTime = createTime;
@@ -244,7 +254,7 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.buyer_name
 	 * @return  the value of t_order_mid.buyer_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getBuyerName() {
 		return buyerName;
@@ -253,9 +263,45 @@ public class TOrderMid {
 	/**
 	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.buyer_name
 	 * @param buyerName  the value for t_order_mid.buyer_name
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setBuyerName(String buyerName) {
 		this.buyerName = buyerName;
 	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.order_receivables
+	 * @return  the value of t_order_mid.order_receivables
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
+	 */
+	public BigDecimal getOrderReceivables() {
+		return orderReceivables;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.order_receivables
+	 * @param orderReceivables  the value for t_order_mid.order_receivables
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
+	 */
+	public void setOrderReceivables(BigDecimal orderReceivables) {
+		this.orderReceivables = orderReceivables;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method returns the value of the database column t_order_mid.order_arrears
+	 * @return  the value of t_order_mid.order_arrears
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
+	 */
+	public BigDecimal getOrderArrears() {
+		return orderArrears;
+	}
+
+	/**
+	 * This method was generated by MyBatis Generator. This method sets the value of the database column t_order_mid.order_arrears
+	 * @param orderArrears  the value for t_order_mid.order_arrears
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
+	 */
+	public void setOrderArrears(BigDecimal orderArrears) {
+		this.orderArrears = orderArrears;
+	}
 }

+ 136 - 16
src/main/java/com/goafanti/common/model/TOrderMidExample.java

@@ -8,23 +8,23 @@ import java.util.List;
 public class TOrderMidExample {
     /**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	protected String orderByClause;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	protected boolean distinct;
 	/**
 	 * This field was generated by MyBatis Generator. This field corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	protected List<Criteria> oredCriteria;
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public TOrderMidExample() {
 		oredCriteria = new ArrayList<Criteria>();
@@ -32,7 +32,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setOrderByClause(String orderByClause) {
 		this.orderByClause = orderByClause;
@@ -40,7 +40,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public String getOrderByClause() {
 		return orderByClause;
@@ -48,7 +48,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void setDistinct(boolean distinct) {
 		this.distinct = distinct;
@@ -56,7 +56,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public boolean isDistinct() {
 		return distinct;
@@ -64,7 +64,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public List<Criteria> getOredCriteria() {
 		return oredCriteria;
@@ -72,7 +72,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void or(Criteria criteria) {
 		oredCriteria.add(criteria);
@@ -80,7 +80,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public Criteria or() {
 		Criteria criteria = createCriteriaInternal();
@@ -90,7 +90,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public Criteria createCriteria() {
 		Criteria criteria = createCriteriaInternal();
@@ -102,7 +102,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	protected Criteria createCriteriaInternal() {
 		Criteria criteria = new Criteria();
@@ -111,7 +111,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This method was generated by MyBatis Generator. This method corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public void clear() {
 		oredCriteria.clear();
@@ -121,7 +121,7 @@ public class TOrderMidExample {
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	protected abstract static class GeneratedCriteria {
 		protected List<Criterion> criteria;
@@ -883,11 +883,131 @@ public class TOrderMidExample {
 			addCriterion("buyer_name not between", value1, value2, "buyerName");
 			return (Criteria) this;
 		}
+
+		public Criteria andOrderReceivablesIsNull() {
+			addCriterion("order_receivables is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesIsNotNull() {
+			addCriterion("order_receivables is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesEqualTo(BigDecimal value) {
+			addCriterion("order_receivables =", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesNotEqualTo(BigDecimal value) {
+			addCriterion("order_receivables <>", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesGreaterThan(BigDecimal value) {
+			addCriterion("order_receivables >", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesGreaterThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_receivables >=", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesLessThan(BigDecimal value) {
+			addCriterion("order_receivables <", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesLessThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_receivables <=", value, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesIn(List<BigDecimal> values) {
+			addCriterion("order_receivables in", values, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesNotIn(List<BigDecimal> values) {
+			addCriterion("order_receivables not in", values, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_receivables between", value1, value2, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderReceivablesNotBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_receivables not between", value1, value2, "orderReceivables");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsIsNull() {
+			addCriterion("order_arrears is null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsIsNotNull() {
+			addCriterion("order_arrears is not null");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsEqualTo(BigDecimal value) {
+			addCriterion("order_arrears =", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsNotEqualTo(BigDecimal value) {
+			addCriterion("order_arrears <>", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsGreaterThan(BigDecimal value) {
+			addCriterion("order_arrears >", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsGreaterThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_arrears >=", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsLessThan(BigDecimal value) {
+			addCriterion("order_arrears <", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsLessThanOrEqualTo(BigDecimal value) {
+			addCriterion("order_arrears <=", value, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsIn(List<BigDecimal> values) {
+			addCriterion("order_arrears in", values, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsNotIn(List<BigDecimal> values) {
+			addCriterion("order_arrears not in", values, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_arrears between", value1, value2, "orderArrears");
+			return (Criteria) this;
+		}
+
+		public Criteria andOrderArrearsNotBetween(BigDecimal value1, BigDecimal value2) {
+			addCriterion("order_arrears not between", value1, value2, "orderArrears");
+			return (Criteria) this;
+		}
 	}
 
 	/**
 	 * This class was generated by MyBatis Generator. This class corresponds to the database table t_order_mid
-	 * @mbg.generated  Wed Mar 18 15:17:11 CST 2020
+	 * @mbg.generated  Fri Apr 10 15:06:35 CST 2020
 	 */
 	public static class Criterion {
 		private String condition;

+ 236 - 0
src/main/java/com/goafanti/common/model/UserTransferLog.java

@@ -0,0 +1,236 @@
+package com.goafanti.common.model;
+
+import java.util.Date;
+
+public class UserTransferLog {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.id
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.uid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private String uid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.aid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private String aid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.pid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private String pid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.take_aid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private String takeAid;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.type
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private Integer type;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column user_transfer_log.create_time
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    private Date createTime;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.id
+     *
+     * @return the value of user_transfer_log.id
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.id
+     *
+     * @param id the value for user_transfer_log.id
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.uid
+     *
+     * @return the value of user_transfer_log.uid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public String getUid() {
+        return uid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.uid
+     *
+     * @param uid the value for user_transfer_log.uid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.aid
+     *
+     * @return the value of user_transfer_log.aid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public String getAid() {
+        return aid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.aid
+     *
+     * @param aid the value for user_transfer_log.aid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.pid
+     *
+     * @return the value of user_transfer_log.pid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public String getPid() {
+        return pid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.pid
+     *
+     * @param pid the value for user_transfer_log.pid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setPid(String pid) {
+        this.pid = pid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.take_aid
+     *
+     * @return the value of user_transfer_log.take_aid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public String getTakeAid() {
+        return takeAid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.take_aid
+     *
+     * @param takeAid the value for user_transfer_log.take_aid
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setTakeAid(String takeAid) {
+        this.takeAid = takeAid;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.type
+     *
+     * @return the value of user_transfer_log.type
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public Integer getType() {
+        return type;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.type
+     *
+     * @param type the value for user_transfer_log.type
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column user_transfer_log.create_time
+     *
+     * @return the value of user_transfer_log.create_time
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column user_transfer_log.create_time
+     *
+     * @param createTime the value for user_transfer_log.create_time
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 763 - 0
src/main/java/com/goafanti/common/model/UserTransferLogExample.java

@@ -0,0 +1,763 @@
+package com.goafanti.common.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class UserTransferLogExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public UserTransferLogExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    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 user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    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 user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    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 andUidIsNull() {
+            addCriterion("uid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidIsNotNull() {
+            addCriterion("uid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidEqualTo(String value) {
+            addCriterion("uid =", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidNotEqualTo(String value) {
+            addCriterion("uid <>", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidGreaterThan(String value) {
+            addCriterion("uid >", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidGreaterThanOrEqualTo(String value) {
+            addCriterion("uid >=", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidLessThan(String value) {
+            addCriterion("uid <", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidLessThanOrEqualTo(String value) {
+            addCriterion("uid <=", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidLike(String value) {
+            addCriterion("uid like", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidNotLike(String value) {
+            addCriterion("uid not like", value, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidIn(List<String> values) {
+            addCriterion("uid in", values, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidNotIn(List<String> values) {
+            addCriterion("uid not in", values, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidBetween(String value1, String value2) {
+            addCriterion("uid between", value1, value2, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andUidNotBetween(String value1, String value2) {
+            addCriterion("uid not between", value1, value2, "uid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidIsNull() {
+            addCriterion("aid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidIsNotNull() {
+            addCriterion("aid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidEqualTo(String value) {
+            addCriterion("aid =", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidNotEqualTo(String value) {
+            addCriterion("aid <>", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidGreaterThan(String value) {
+            addCriterion("aid >", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidGreaterThanOrEqualTo(String value) {
+            addCriterion("aid >=", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidLessThan(String value) {
+            addCriterion("aid <", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidLessThanOrEqualTo(String value) {
+            addCriterion("aid <=", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidLike(String value) {
+            addCriterion("aid like", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidNotLike(String value) {
+            addCriterion("aid not like", value, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidIn(List<String> values) {
+            addCriterion("aid in", values, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidNotIn(List<String> values) {
+            addCriterion("aid not in", values, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidBetween(String value1, String value2) {
+            addCriterion("aid between", value1, value2, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andAidNotBetween(String value1, String value2) {
+            addCriterion("aid not between", value1, value2, "aid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidIsNull() {
+            addCriterion("pid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidIsNotNull() {
+            addCriterion("pid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidEqualTo(String value) {
+            addCriterion("pid =", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidNotEqualTo(String value) {
+            addCriterion("pid <>", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidGreaterThan(String value) {
+            addCriterion("pid >", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidGreaterThanOrEqualTo(String value) {
+            addCriterion("pid >=", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidLessThan(String value) {
+            addCriterion("pid <", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidLessThanOrEqualTo(String value) {
+            addCriterion("pid <=", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidLike(String value) {
+            addCriterion("pid like", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidNotLike(String value) {
+            addCriterion("pid not like", value, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidIn(List<String> values) {
+            addCriterion("pid in", values, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidNotIn(List<String> values) {
+            addCriterion("pid not in", values, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidBetween(String value1, String value2) {
+            addCriterion("pid between", value1, value2, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andPidNotBetween(String value1, String value2) {
+            addCriterion("pid not between", value1, value2, "pid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidIsNull() {
+            addCriterion("take_aid is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidIsNotNull() {
+            addCriterion("take_aid is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidEqualTo(String value) {
+            addCriterion("take_aid =", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidNotEqualTo(String value) {
+            addCriterion("take_aid <>", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidGreaterThan(String value) {
+            addCriterion("take_aid >", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidGreaterThanOrEqualTo(String value) {
+            addCriterion("take_aid >=", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidLessThan(String value) {
+            addCriterion("take_aid <", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidLessThanOrEqualTo(String value) {
+            addCriterion("take_aid <=", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidLike(String value) {
+            addCriterion("take_aid like", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidNotLike(String value) {
+            addCriterion("take_aid not like", value, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidIn(List<String> values) {
+            addCriterion("take_aid in", values, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidNotIn(List<String> values) {
+            addCriterion("take_aid not in", values, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidBetween(String value1, String value2) {
+            addCriterion("take_aid between", value1, value2, "takeAid");
+            return (Criteria) this;
+        }
+
+        public Criteria andTakeAidNotBetween(String value1, String value2) {
+            addCriterion("take_aid not between", value1, value2, "takeAid");
+            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 andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated do_not_delete_during_merge Thu Apr 09 11:39:03 CST 2020
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table user_transfer_log
+     *
+     * @mbg.generated Thu Apr 09 11:39:03 CST 2020
+     */
+    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);
+        }
+    }
+}

+ 137 - 3
src/main/java/com/goafanti/common/task/OrderDunTask.java

@@ -2,35 +2,55 @@ package com.goafanti.common.task;
 
 
 import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import javax.mail.MessagingException;
 
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Controller;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 
+import com.goafanti.admin.bo.AdminListBo;
+import com.goafanti.common.bo.EmailBo;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.dao.AdminMapper;
+import com.goafanti.common.dao.NoticeMapper;
+import com.goafanti.common.dao.TArrearsDunMapper;
+import com.goafanti.common.dao.TOrderMidMapper;
 import com.goafanti.common.dao.TOrderNewMapper;
 import com.goafanti.common.enums.NoticeStatus;
+import com.goafanti.common.model.Notice;
+import com.goafanti.common.model.TArrearsDun;
 import com.goafanti.common.model.TOrderDun;
+import com.goafanti.common.model.TOrderMid;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.common.utils.SendEmailUtil;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.InputNewOrderDunBo;
 import com.goafanti.order.bo.OrderDunTaskBo;
 import com.goafanti.order.bo.OutNewOrderDunBo;
+import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.enums.OrderDunProjectType;
+import com.goafanti.order.enums.OrderDunSubject;
 import com.goafanti.order.service.NewOrderDunService;
 import com.goafanti.order.service.OrderNewService;
 
-@Component
-//@Controller
+//@Component
+@Controller
 public class OrderDunTask {
 	@Autowired
 	private OrderNewService orderNewService;
@@ -38,7 +58,12 @@ public class OrderDunTask {
 	private NewOrderDunService  newOrderDunService;
 	@Autowired
 	private TOrderNewMapper	tOrderNewMapper;
-	
+	@Autowired
+	private TArrearsDunMapper	tArrearsDunMapper;
+	@Autowired
+	private TOrderMidMapper	tOrderMidMapper;
+	@Autowired
+	private NoticeMapper	noticeMapper;
 	Logger							logger	= LoggerFactory.getLogger(OrderDunTask.class);
 	
 	
@@ -122,6 +147,115 @@ public class OrderDunTask {
 	}
 	
 	/**
+	 * 每天凌晨4点轮询处理需要欠款催款的信息
+	*
+	*/
+	@Scheduled(cron = "0 0 4 1 * ?") 
+	@RequestMapping(value = "/open/pushOrderArrearsDun", method = RequestMethod.GET)
+  	@Transactional(rollbackFor=Exception.class)
+	public void pushOrderArrearsDun(){
+		try {
+			LoggerUtils.debug(logger, "======================欠款催款启动===================");
+			Date date=new Date();
+			//运算 list(未启动) list2(催款中) list3(已完成)订单的欠款催款
+			List<TArrearsDun> list=tArrearsDunMapper.selectStatusAll(0);
+			List<TArrearsDun> list2=tArrearsDunMapper.selectStatusAll(1);
+			List<TArrearsDun> list3=tArrearsDunMapper.selectStatusAndAmount(2);
+			for (TArrearsDun td : list) {
+				TOrderMid tm=tOrderMidMapper.selectByOrderNo(td.getOrderNo());
+				//如果欠款大于0则需要触发邮件
+				if (tm.getOrderArrears().compareTo(new BigDecimal(0))>0) {
+					td.setDunStatus(1);
+					td.setStartTime(date);
+					td.setOrderArrears(tm.getOrderArrears());
+					td.setOrderReceivables(tm.getOrderReceivables());
+					addNoticAndSendEmail(td.getOrderNo(),td,NoticeStatus.ORDER_ARREARS_DUN.getCode());
+					tArrearsDunMapper.updateByPrimaryKeySelective(td);
+				}else if(tm.getOrderArrears().compareTo(new BigDecimal(0))<1) {
+					td.setDunStatus(2);
+					td.setEndTime(date);
+					td.setOrderArrears(tm.getOrderArrears());
+					tArrearsDunMapper.updateByPrimaryKeySelective(td);
+				}
+				Thread.sleep(2000);
+			}
+			for (TArrearsDun ta : list2) {
+				TOrderMid tm=tOrderMidMapper.selectByOrderNo(ta.getOrderNo());
+				//如果欠款大于0则需要触发邮件
+				if (tm.getOrderArrears().compareTo(new BigDecimal(0))>0) {
+					ta.setDunStatus(3);
+					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+					ta.setId(null);
+					ta.setDunStatus(1);
+					ta.setStartTime(date);
+					ta.setOrderArrears(tm.getOrderArrears());
+					ta.setOrderReceivables(tm.getOrderReceivables());
+					tArrearsDunMapper.insertSelective(ta);
+					addNoticAndSendEmail(ta.getOrderNo(),ta,NoticeStatus.ORDER_ARREARS_DUN.getCode());
+				}else if(tm.getOrderArrears().compareTo(new BigDecimal(0))<1) {
+					ta.setDunStatus(2);
+					ta.setOrderArrears(tm.getOrderArrears());
+					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+				}
+				Thread.sleep(2000);
+			
+			}
+			for (TArrearsDun ta : list3) {
+				TOrderMid tm=tOrderMidMapper.selectByOrderNo(ta.getOrderNo());
+				//如果欠款大于0则需要触发邮件
+				if (tm.getOrderArrears().compareTo(new BigDecimal(0))>0) {
+					ta.setDunStatus(3);
+					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+					ta.setId(null);
+					ta.setDunStatus(1);
+					ta.setStartTime(date);
+					ta.setOrderArrears(tm.getOrderArrears());
+					ta.setOrderReceivables(tm.getOrderReceivables());
+					tArrearsDunMapper.insertSelective(ta);
+					addNoticAndSendEmail(ta.getOrderNo(),ta,NoticeStatus.ORDER_ARREARS_DUN.getCode());
+				}else if(tm.getOrderArrears().compareTo(new BigDecimal(0))<1) {
+					ta.setDunStatus(2);
+					ta.setOrderReceivables(tm.getOrderReceivables());
+					ta.setOrderArrears(tm.getOrderArrears());
+					tArrearsDunMapper.updateByPrimaryKeySelective(ta);
+				}
+				Thread.sleep(2000);
+			
+			}
+		} catch (Exception e) {
+			LoggerUtils.error(getClass(), "===========================欠款催款失败==========================", e);
+		}
+	}
+	
+	
+	private void addNoticAndSendEmail(String orderNo, TArrearsDun td, Integer code) throws UnsupportedEncodingException, MessagingException {
+		TOrderNewBo b  = tOrderNewMapper.getSaleIdByOno(orderNo);
+			String str=NoticeStatus.getValueByCode(code)+": 订单编号 -"+orderNo+", 操作人: 平台超管中心 - yxy。";
+			Notice n =new Notice();
+			n.setId(UUID.randomUUID().toString());
+			n.setAid(b.getSalesmanId());
+			n.setNoticeType(code);
+			n.setContent(str);
+			n.setReaded(0);//未读
+			noticeMapper.insertSelective(n);
+			LoggerUtils.debug(logger, "======================邮件信息发送===================");
+			String content = "<div>客户名称: "+ b.getUserName() +"</div><div>订单编号: " + orderNo + "</div>";
+			String tite="催收通知";
+					content +="<div>催收时间: " +  new Date() +
+							"</div><div>催收科目:  欠款催收" +
+							"</div><div>催收情况:  已启动" +"</div>";
+				//发送驳回邮件
+				EmailBo bo = new EmailBo(tite, b.getEmail(), "平台超管中心", "管理员", content,orderNo,
+						DateUtils.formatDate(td.getStartTime(), AFTConstants.YYYYMMDDHHMMSS),"欠款催收",b.getSalesmanName(),b.getUserName(), 1,null);
+				if(StringUtils.isNotBlank(b.getEmail())) {
+					SendEmailUtil.getInstance().patentSend(bo);
+				}
+				LoggerUtils.debug(logger, "=========================================发送邮件成功");
+		
+	}
+
+
+	/**
 	 * 每天凌晨2点轮询处理需要催款的信息
 	*
 	*/

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

@@ -4,11 +4,11 @@ import java.util.Date;
 
 import org.apache.shiro.crypto.hash.SimpleHash;
 import org.apache.shiro.util.ByteSource;
-
 import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.AftUser;
 import com.goafanti.common.model.User;
 
+
 public class PasswordUtil {
 	private String algorithmName = "md5";
 	private int hashIterations = 2;

+ 55 - 0
src/main/java/com/goafanti/customer/bo/transferListBo.java

@@ -0,0 +1,55 @@
+package com.goafanti.customer.bo;
+
+public class transferListBo {
+	private Integer id;
+	private Integer type;
+	private String userName;
+	private String usedAName;
+	private String newAName;
+	private String pName;
+	private String createDate;
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public Integer getType() {
+		return type;
+	}
+	public void setType(Integer type) {
+		this.type = type;
+	}
+	public String getUserName() {
+		return userName;
+	}
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+	public String getUsedAName() {
+		return usedAName;
+	}
+	public void setUsedAName(String usedAName) {
+		this.usedAName = usedAName;
+	}
+	public String getNewAName() {
+		return newAName;
+	}
+	public void setNewAName(String newAName) {
+		this.newAName = newAName;
+	}
+	public String getpName() {
+		return pName;
+	}
+	public void setpName(String pName) {
+		this.pName = pName;
+	}
+	public String getCreateDate() {
+		return createDate;
+	}
+	public void setCreateDate(String createDate) {
+		this.createDate = createDate;
+	}
+	
+	
+}

+ 19 - 1
src/main/java/com/goafanti/customer/controller/AdminCustomerApiController.java

@@ -731,6 +731,24 @@ public class AdminCustomerApiController extends BaseApiController{
 		return res;
 	}
 	
+	/**
+	   *   客户转交记录 
+	 * @param uid 客户编号
+	 * @param aid 管理员编号
+	 * @param oldAid 接收者编号
+	 * @return
+	 */
+	@RequestMapping(value = "/transferList", method = RequestMethod.GET)
+	public Result transferList(String uid){
+		Result res = new Result();
+		if(StringUtils.isBlank(uid) ){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"客户编号", "客户编号"));
+			return res;
+		}
+		res.data(customerService.transferList( uid));
+		return res;
+	}
+	
 	/** 查询我的业务列表 **/
 	@RequestMapping(value = "/listBusiness", method = RequestMethod.POST)
 	public Result listBusiness(BusinessListBo blo,Integer pageNo, Integer pageSize){
@@ -1160,7 +1178,7 @@ public class AdminCustomerApiController extends BaseApiController{
 			res.getError().add(buildError("请确正确的接收者。","请确正确的接收者。"));
 			return res;
 		}
-		int i= adminService.updatePrivateBusinessTransfer( inputId, uid, pid );
+		int i= customerService.updatePrivateBusinessTransfer( inputId, uid, pid );
 		if (i<1) {
 			res.getError().add(buildError("请确认客户与业务归属是否正确。","请确认客户与业务归属是否正确。"));
 			return res;

+ 4 - 0
src/main/java/com/goafanti/customer/service/CustomerService.java

@@ -25,6 +25,7 @@ import com.goafanti.customer.bo.FollowBusinessBo;
 import com.goafanti.customer.bo.FollowListBo;
 import com.goafanti.customer.bo.LockingReleaseBo;
 import com.goafanti.customer.bo.StatisticBo;
+import com.goafanti.customer.bo.transferListBo;
 
 public interface CustomerService {
 	/**
@@ -508,5 +509,8 @@ public interface CustomerService {
 	XSSFWorkbook privateUnitCustomerOutXls(CustomerListIn cli ,Integer sort,Integer sortType,Integer pageNo, Integer pageSize);
 	int customerHandOver(String userIds, String receiveId);
 	
+	List<transferListBo> transferList(String uid);
+	int updatePrivateBusinessTransfer(String inputId, String uid, String pid);
+	
 	
 }

+ 65 - 6
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -38,6 +38,7 @@ import com.goafanti.common.dao.UserFollowMapper;
 import com.goafanti.common.dao.UserIdentityMapper;
 import com.goafanti.common.dao.UserLockReleaseMapper;
 import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.dao.UserTransferLogMapper;
 import com.goafanti.common.enums.CustomerStatusFiled;
 import com.goafanti.common.enums.DeleteStatus;
 import com.goafanti.common.enums.IdentityProcess;
@@ -55,6 +56,7 @@ import com.goafanti.common.model.UserFollow;
 import com.goafanti.common.model.UserFollowBusiness;
 import com.goafanti.common.model.UserIdentity;
 import com.goafanti.common.model.UserLockRelease;
+import com.goafanti.common.model.UserTransferLog;
 import com.goafanti.common.utils.BeanUtilsExt;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.ExportExcelUtil;
@@ -75,6 +77,7 @@ import com.goafanti.customer.bo.FollowBusinessBo;
 import com.goafanti.customer.bo.FollowListBo;
 import com.goafanti.customer.bo.LockingReleaseBo;
 import com.goafanti.customer.bo.StatisticBo;
+import com.goafanti.customer.bo.transferListBo;
 import com.goafanti.customer.service.CustomerService;
 
 @Service
@@ -109,6 +112,8 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	private OrganizationAnnualReportMapper	organizationAnnualReportMapper;
 	@Resource
 	private OrganizationYearProjectMapper	organizationYearProjectMapper;
+	@Resource
+	private UserTransferLogMapper	userTransferLogMapper;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
 	
@@ -317,8 +322,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		cob.setMajor(AFTConstants.YES);
 		organizationContactBookMapper.insert(cob);
 		//新增锁定数据
-		addUserLock(uid, TokenManager.getAdminId(), now);
-//		addUserLock(uid, "1", now);
+		addUserLock(uid, TokenManager.getAdminId(),0,null, now);
 		return 1;
 	}
 
@@ -936,7 +940,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			user.setInformationMaintainer(TokenManager.getAdminId());
 			user.setSource(2);//客户来源设置为领取
 			user.setTransferTime(now);
-			flag = addUserLock(uid,TokenManager.getAdminId(),now); //指定用户锁定客户
+			flag = addUserLock(uid,TokenManager.getAdminId(),0,null,now); //指定用户锁定客户
 			if(flag <= 0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_RECEIVE,""));
 			if(userMapper.UserReceiveCount(TokenManager.getAdminId())>AFTConstants.USER_RCEIVE_MAX)
 			throw new BusinessException(new Error(ErrorConstants.CUSTOM_EREXCESS,""+(AFTConstants.USER_RCEIVE_MAX+1),""));
@@ -948,8 +952,9 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			//查询这个客户是否是登陆人的客户
 			if(userMapper.getAidAndUser(uid,TokenManager.getAdminId())<=0)throw new BusinessException(new Error("请勿非法操作!","请勿非法操作!"));
 			flag = updateUserLock(uid,oldAid,UserLockReleaseStatus.LOCKED.getCode(),UserLockReleaseStatus.RELEASE.getCode()); //原用户释放客户
-			if(flag > 0 ) flag = addUserLock(uid,String.valueOf(params[0]),now); //指定用户锁定客户
+			if(flag > 0 ) flag = addUserLock(uid,String.valueOf(params[0]),0,null,now); //指定用户锁定客户
 			if(flag <= 0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_TRANSFER_FAIL,""));
+			addtransferLog(uid,null,TokenManager.getAdminId(),String.valueOf(params[0]),0);
 		}
 		return userMapper.updateByPrimaryKeySelective(user);
 	}
@@ -1346,10 +1351,15 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		return userLockReleaseMapper.updateUserLock(uid,aid,oldStatus,newStatus);
 	}
 	
-	private int addUserLock(String uid,String aid,Date lockTime){
+	private int addUserLock(String uid,String aid,Integer type,String pid,Date lockTime){
 		UserLockRelease ulr = new UserLockRelease();
 		ulr.setId(UUID.randomUUID().toString());
-		ulr.setType(0);
+		if (type==0) {
+			ulr.setType(0);
+		}else {
+			ulr.setType(1);
+			ulr.setBusinessProjectId(pid);
+		}
 		ulr.setAid(aid);
 		ulr.setLockTime(lockTime);
 		ulr.setStatus(UserLockReleaseStatus.LOCKED.getCode());
@@ -1357,6 +1367,8 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		return userLockReleaseMapper.insert(ulr);
 	}
 	
+	
+	
 	/**
 	 * 查询需要释放客户
 	 * @param uid
@@ -1497,4 +1509,51 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	}
 
 
+	
+	@Override
+	public int updatePrivateBusinessTransfer(String inputId, String uid, String pid) {
+		Date now = new Date();
+		List<LockingReleaseBo> list=userLockReleaseMapper.checkUserProject(uid, pid,TokenManager.getAdminId());
+		if (list.isEmpty()) {
+			throw new BusinessException(new Error("客户归属错误","客户归属错误"));
+		}else if(list.size()>1) {
+			throw new BusinessException(new Error("业务数量错误","业务数量错误"));
+		}
+		LockingReleaseBo l=list.get(0);
+		UserLockRelease ul=new UserLockRelease();
+		ul.setId(l.getId());
+		ul.setStatus(2);
+		ul.setReleaseTime(now);
+		userLockReleaseMapper.updateByPrimaryKeySelective(ul);
+		addtransferLog(uid,pid,TokenManager.getAdminId(),inputId,1);
+		addUserLock(uid,inputId,1,pid,now); //指定用户锁定客户
+		List<BusinessListBo> bl=userBusinessMapper.selectBusinessProjectByUAPid(uid, TokenManager.getAdminId(), pid);
+		if (bl.size()==1) {
+			UserBusiness ub=new UserBusiness();
+			ub.setId(bl.get(0).getBusinessId());
+			ub.setAid(inputId);
+			ub.setRemarks("转交客户业务触发");
+			userBusinessMapper.updateByPrimaryKeySelective(ub);
+		}
+		return 1;
+	}
+
+	private void addtransferLog(String uid, String pid, String aid, String takeAid,Integer type) {
+		UserTransferLog utl=new UserTransferLog();
+		utl.setAid(aid);
+		utl.setCreateTime(new Date());
+		utl.setPid(pid);
+		utl.setTakeAid(takeAid);
+		utl.setType(type);
+		utl.setUid(uid);
+		userTransferLogMapper.insertSelective(utl);
+		
+	}
+
+	@Override
+	public List<transferListBo> transferList(String uid) {
+		return userTransferLogMapper.selectByUidGetList(uid);
+	}
+
+
 }

+ 79 - 0
src/main/java/com/goafanti/order/bo/InputArrearsDunListBo.java

@@ -0,0 +1,79 @@
+package com.goafanti.order.bo;
+
+public class InputArrearsDunListBo {
+	private String name;
+	private String  orderNo;
+	private String  starTime;
+	private String  endTime;
+	private String  tStarTime;
+	private String  tEndTime;
+	private String  adminName;
+	private String  depId;
+	private Integer pageNo;
+	private Integer pageSize;
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+	public String getOrderNo() {
+		return orderNo;
+	}
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
+	}
+	public String getStarTime() {
+		return starTime;
+	}
+	public void setStarTime(String starTime) {
+		this.starTime = starTime;
+	}
+	public String getEndTime() {
+		return endTime;
+	}
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+	
+	public String getAdminName() {
+		return adminName;
+	}
+	public void setAdminName(String adminName) {
+		this.adminName = adminName;
+	}
+	public String getDepId() {
+		return depId;
+	}
+	public void setDepId(String depId) {
+		this.depId = depId;
+	}
+	
+	public Integer getPageNo() {
+		return pageNo;
+	}
+	public void setPageNo(Integer pageNo) {
+		this.pageNo = pageNo;
+	}
+	public Integer getPageSize() {
+		return pageSize;
+	}
+	public void setPageSize(Integer pageSize) {
+		this.pageSize = pageSize;
+	}
+	public String gettStarTime() {
+		return tStarTime;
+	}
+	public void settStarTime(String tStarTime) {
+		this.tStarTime = tStarTime;
+	}
+	public String gettEndTime() {
+		return tEndTime;
+	}
+	public void settEndTime(String tEndTime) {
+		this.tEndTime = tEndTime;
+	}
+	
+	
+
+}

+ 16 - 0
src/main/java/com/goafanti/order/bo/OrderListBo.java

@@ -92,6 +92,10 @@ public class OrderListBo {
 	private Integer amountStatus;
 	/** 驳回位置*/
 	private Integer backStatus;
+	/**应收款 */
+	private String orderReceivables;
+	/**欠款 */
+	private String  orderArrears;
 	
 	public String getFinalReceivables() {
 		return finalReceivables;
@@ -354,4 +358,16 @@ public class OrderListBo {
 	public void setBackStatus(Integer backStatus) {
 		this.backStatus = backStatus;
 	}
+	public String getOrderReceivables() {
+		return orderReceivables;
+	}
+	public void setOrderReceivables(String orderReceivables) {
+		this.orderReceivables = orderReceivables;
+	}
+	public String getOrderArrears() {
+		return orderArrears;
+	}
+	public void setOrderArrears(String orderArrears) {
+		this.orderArrears = orderArrears;
+	}
 }

+ 126 - 0
src/main/java/com/goafanti/order/bo/OutArrearsDunListBo.java

@@ -0,0 +1,126 @@
+package com.goafanti.order.bo;
+
+public class OutArrearsDunListBo {
+	private String id;
+	private String contractNo;
+	private String orderNo;
+	private String userName;
+	private String salesmanName;
+   	private Integer projectStatus;
+   	private String totalAmount;
+   	private Integer liquidationStatus;
+   	private String settlementAmount;
+   	private String orderReceivables;
+   	private String orderArrears;
+   	private Integer orderStatus; 
+   	private String startDate;
+   	private Integer type;
+   	private String depName;
+   	private String signDate;
+   	private Integer dunStatus;
+	public String getId() {
+		return id;
+	}
+	public void setId(String id) {
+		this.id = id;
+	}
+	public String getContractNo() {
+		return contractNo;
+	}
+	public void setContractNo(String contractNo) {
+		this.contractNo = contractNo;
+	}
+	public String getOrderNo() {
+		return orderNo;
+	}
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
+	}
+	public String getUserName() {
+		return userName;
+	}
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+	public String getSalesmanName() {
+		return salesmanName;
+	}
+	public void setSalesmanName(String salesmanName) {
+		this.salesmanName = salesmanName;
+	}
+	public Integer getProjectStatus() {
+		return projectStatus;
+	}
+	public void setProjectStatus(Integer projectStatus) {
+		this.projectStatus = projectStatus;
+	}
+	public String getTotalAmount() {
+		return totalAmount;
+	}
+	public void setTotalAmount(String totalAmount) {
+		this.totalAmount = totalAmount;
+	}
+	public Integer getLiquidationStatus() {
+		return liquidationStatus;
+	}
+	public void setLiquidationStatus(Integer liquidationStatus) {
+		this.liquidationStatus = liquidationStatus;
+	}
+	public String getSettlementAmount() {
+		return settlementAmount;
+	}
+	public void setSettlementAmount(String settlementAmount) {
+		this.settlementAmount = settlementAmount;
+	}
+	public String getOrderReceivables() {
+		return orderReceivables;
+	}
+	public void setOrderReceivables(String orderReceivables) {
+		this.orderReceivables = orderReceivables;
+	}
+	public String getOrderArrears() {
+		return orderArrears;
+	}
+	public void setOrderArrears(String orderArrears) {
+		this.orderArrears = orderArrears;
+	}
+	public Integer getOrderStatus() {
+		return orderStatus;
+	}
+	public void setOrderStatus(Integer orderStatus) {
+		this.orderStatus = orderStatus;
+	}
+	public String getStartDate() {
+		return startDate;
+	}
+	public void setStartDate(String startDate) {
+		this.startDate = startDate;
+	}
+	public String getDepName() {
+		return depName;
+	}
+	public void setDepName(String depName) {
+		this.depName = depName;
+	}
+	public String getSignDate() {
+		return signDate;
+	}
+	public void setSignDate(String signDate) {
+		this.signDate = signDate;
+	}
+	public Integer getDunStatus() {
+		return dunStatus;
+	}
+	public void setDunStatus(Integer dunStatus) {
+		this.dunStatus = dunStatus;
+	}
+	public Integer getType() {
+		return type;
+	}
+	public void setType(Integer type) {
+		this.type = type;
+	}
+   	
+   	
+
+}

+ 28 - 0
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -21,6 +21,7 @@ import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
+import com.goafanti.order.bo.InputArrearsDunListBo;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.service.OrderNewService;
@@ -282,6 +283,16 @@ public class AdminNewOrderApiController extends CertifyApiController {
 		res.data(orderNewService.dunOrderNewList(name, orderNo, starTime, endTime,specially,  adminName, depId,newStatus,pageNo, pageSize));
 		return res;
 	}
+	
+	/**
+	 * 催款统计列表
+	 */
+	@RequestMapping(value="/arrearsDunList", method = RequestMethod.GET)
+	public Result arrearsDunList(InputArrearsDunListBo in){
+		Result res=new Result();
+		res.data(orderNewService.arrearsDunList(in));
+		return res;
+	}
 	/**
 	 * 新增催款记录
 	 */
@@ -509,4 +520,21 @@ public class AdminNewOrderApiController extends CertifyApiController {
  		return res;
 	}
 	
+	
+	/**
+	 * 	项目列表下载 
+	 * @throws IOException 
+	 */
+	@RequestMapping(value = "/exportArrearsDunListData", method = RequestMethod.GET)
+	public Result exportArrearsDunListData(InputArrearsDunListBo in,HttpServletResponse response){
+		 Result res = new Result();
+ 		try {
+ 			orderNewService.exportArrearsDunListData(  in,response);
+		} catch (Exception e) {
+			res.getError().add(buildError("格式不正确"));
+			return res;
+		}
+ 		return res;
+	}
+	
 }

+ 20 - 0
src/main/java/com/goafanti/order/controller/OrderChangeApiController.java

@@ -12,6 +12,7 @@ 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.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.OrderRefundInvoice;
@@ -21,6 +22,7 @@ import com.goafanti.common.utils.StringUtils;
 import com.goafanti.order.bo.InputNewOrderRefund;
 import com.goafanti.order.bo.InputTChangeTask;
 import com.goafanti.order.bo.NewOrderChangeBo;
+import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.service.OrderChangeService;
 
 @RestController
@@ -372,6 +374,23 @@ public class OrderChangeApiController extends CertifyApiController {
 		res.data(orderChangeService.pushCompleteOrderChange(nb));
 		return res;
 	}
+	/**
+	 * 取消变更
+	 */
+	@RequestMapping(value ="/cancelOrderChange",method = RequestMethod.POST)
+	public Result cancelOrderChange(NewOrderChangeBo nb) {
+		Result res =new Result();
+		if (null==nb.getId()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "变更编号", "变更编号"));
+			return res;
+		}
+		if (nb.getProcessState()!=0&&(nb.getStatus()!=0 && nb.getStatus()!=3)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "变更流程或状态", "变更流程或状态"));
+			return res;
+		}
+		res.data(orderChangeService.updateCancelOrderChange(nb));
+		return res;
+	}
 	
 	
 	/**
@@ -459,5 +478,6 @@ public class OrderChangeApiController extends CertifyApiController {
 		res.setData(orderChangeService.pushRefund(id,refundUrl));
 		return res;
 	}
+
 	
 }

+ 57 - 0
src/main/java/com/goafanti/order/enums/NewDunState.java

@@ -0,0 +1,57 @@
+package com.goafanti.order.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum NewDunState {
+//	催款状态 0-未启动 1-催款中 ,2-已完成
+	WQD(0,"未启动"),
+	CKZ(1,"催款中"),
+	YWZ(2,"已完成"),
+	YZT(3,"已暂停"),
+	INVALID(10, "INVALID");
+	
+	private NewDunState(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+	public static String getValueByCode(Integer code){
+        for(NewDunState newDunState:NewDunState.values()){
+            if(code.equals(newDunState.getCode())){
+                return newDunState.getDesc();
+            }
+        }
+        return  null;
+    }
+	private static Map<Integer, NewDunState> status = new HashMap<Integer, NewDunState>();
+
+	static {
+		for (NewDunState value : NewDunState.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+	public static NewDunState getStatus(Integer code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return INVALID;
+	}
+	public static boolean containsType(Integer code) {
+		return status.containsKey(code);
+	}
+	
+	private Integer	code;
+	private String	desc;
+	public Integer getCode() {
+		return code;
+	}
+	public void setCode(Integer code) {
+		this.code = code;
+	}
+	public String getDesc() {
+		return desc;
+	}
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+}

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

@@ -85,5 +85,7 @@ public interface OrderChangeService {
 
 	boolean checkrefund(InputNewOrderRefund or);
 
+	int updateCancelOrderChange(NewOrderChangeBo nb);
+
 
 }

+ 4 - 0
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -15,8 +15,10 @@ import com.goafanti.common.model.TOrderOutsource;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.order.bo.InputArrearsDunListBo;
 import com.goafanti.order.bo.OrderDunTaskBo;
 import com.goafanti.order.bo.OrderRefundDetailBo;
+import com.goafanti.order.bo.OutArrearsDunListBo;
 import com.goafanti.order.bo.OutNewOrderDunBo;
 import com.goafanti.order.bo.TDunLogListBo;
 import com.goafanti.order.bo.TOrderLogBo;
@@ -197,5 +199,7 @@ public interface OrderNewService {
 	void exportOrderTaskData(String orderNo, HttpServletResponse response)throws IOException,BusinessException ;
 	
 	int pushOutsourceProjectAudit(TOrderOutsource o);
+	Pagination<OutArrearsDunListBo> arrearsDunList(InputArrearsDunListBo in);
+	void exportArrearsDunListData(InputArrearsDunListBo in, HttpServletResponse response) throws IOException;
 	
 }

+ 7 - 8
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -122,7 +122,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			if(torder.getProcessStatus()<ProcessStatus.YPZXSGLY.getCode()) {
 				record.setProcessStatus(ProcessStatus.YPCWZY.getCode());				
 			}
-			addOrderLog(orderNo, OrderLogProcess.CWPD.getCode());
+			addOrderLog(orderNo, OrderLogProcess.CWPD.getCode(),null);
 			r = tOrderNewMapper.updateByPrimaryKeySelective(record);
 		}else{
 			//返回错误标志 提示订单编号或者财务专员选择错误
@@ -137,10 +137,11 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		return t;
 	}
 
-	public void addOrderLog(String orderNo, Integer code) {
+	public void addOrderLog(String orderNo, Integer code, String reason) {
 		TOrderLog tl=new TOrderLog();
 		tl.setOrderNo(orderNo);
 		tl.setProcess(code);
+		tl.setRemarks(reason);
 		tl.setAid(TokenManager.getAdminId());
 		tOrderLogMapper.insertSelective(tl);
 		
@@ -163,8 +164,6 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			 fids.add(TokenManager.getAdminId());
 			params.put("fids",fids);
 		}
-		
-		
 		if (order.getOutsource()==null)order.setOutsource(0);//默认非外包 
 		params.put("o", order);
 		Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
@@ -205,7 +204,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			back.setBackStatus(0);
 			back.setInitiate(TokenManager.getAdminId());//发起人
 			back.setAccept(b.getSalesmanId());	//查看该订单的负责人	
-			addOrderLog(back.getOrderNo(), OrderLogProcess.BH.getCode());
+			addOrderLog(back.getOrderNo(), OrderLogProcess.BH.getCode(),back.getReason());
 			c = backMapper.insertSelective(back);
 			List<String> aids = new ArrayList<>();
 			aids.add(t.getSalesmanId());;
@@ -266,7 +265,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				}
 				
 			}
-			addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWQK.getCode());	
+			addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWQK.getCode(),billNew.getRemarks());	
 		}else if(bd.compareTo(o.getTotalAmount()) == -1){//如果订单流水小于总金额
 			if(bd.compareTo(o.getFirstAmount()) == 0 || bd.compareTo(o.getFirstAmount()) == 1){//首付完成
 				//查看首付奖是否存在
@@ -281,7 +280,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 					bonus.setBonusSubject(BonusSubject.SF.getCode());//11
 				}
 				lstaus = 1;
-				addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWSF.getCode());
+				addOrderLog(billNew.getOrderNo(), OrderLogProcess.CWSF.getCode(),billNew.getRemarks());
 			}
 		}
 		//否则新增流水信息
@@ -438,7 +437,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		orderNew.setRefundAmount(o.getSettlementAmount().subtract(billNew.getTransactionAmount().abs()));
 		orderNew.setLiquidationStatus(lstaus);
 		if(lstaus == 4){//如果款项全部退完就更改订单状态,这里不一定待商榷
-			addOrderLog(billNew.getOrderNo(), OrderLogProcess.WCTD.getCode());
+			addOrderLog(billNew.getOrderNo(), OrderLogProcess.WCTD.getCode(),billNew.getRemarks());
 			//orderNew.setProcessStatus(6);
 		}
 		if(result > 0){

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

@@ -533,6 +533,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			ocl.setRemarks(startRemarks==null?"":startRemarks);
 			ocl.setChangeId(noc.getId());
 			ocl.setStatus(0);
+			if(t.getType()!=0)chekeAmout(t);
 			orderChangeLogMapper.insertSelective(ocl);
 			TOrderNew ton=new TOrderNew();
 			ton.setOrderNo(noc.getOrderNo());
@@ -547,6 +548,26 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		return 1; 
 	}
 	
+	private void chekeAmout(NewOrderChangeBo t) {
+		BigDecimal amout=t.getTotalAmount();
+		List<TChangeTaskOut> list = selectChangeTask(t.getId());
+		BigDecimal count=new BigDecimal(0);
+		for (TChangeTaskOut tt : list) {
+			if(tt.getType()!=3)count=count.add(tt.getCommodityPrice());
+		}
+		if (amout.compareTo(count)!=0) {
+			throw new BusinessException("项目金额总和不等于合同总金额。");
+		}
+		List<TChangeDunOut> list2 = selectChangeDun(t.getId());
+		count=new BigDecimal(0);
+		for (TChangeDunOut td : list2) {
+			if(td.getType()!=3)count=count.add(td.getMoney());
+		}
+		if (amout.compareTo(count)!=0) {
+			throw new BusinessException("收款节点金额总和不等于合同总金额。");
+		}
+	}
+
 	/**
 	   *   判断变更项目是否拆分父子数量是否一直
 	 * @param noc
@@ -900,8 +921,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 					}
 				}else {
 					if (t.getType()==3) {
-						tChangeTaskMapper.deleteByTid(t.getTid());
-						
+						tChangeTaskMapper.deleteByPrimaryKey(t.getId());
+						tChangeDunMapper.deleteByCtid(t.getId());
 					}
 				}
 				return tChangeTaskMapper.updateByPrimaryKeySelective(t);
@@ -909,7 +930,19 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 
 			@Override
 			public int updateChangeDun(TChangeDun t) {
-				return tChangeDunMapper.updateByPrimaryKeySelective(t);
+				if (t.getType()==1||t.getType()==2) {
+					return tChangeDunMapper.updateByPrimaryKeySelective(t);
+				}else if(t.getType()==3){
+					if (t.getDid()!=null) {
+						return tChangeDunMapper.updateByPrimaryKeySelective(t);	
+					}else {
+						return tChangeDunMapper.deleteByPrimaryKey(t.getId());
+					}
+					
+				}else {
+					return 0;
+				}
+				
 			}
 
 			@Override
@@ -1003,4 +1036,17 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				}
 				return true;
 			}
+
+			@Override
+			public int updateCancelOrderChange(NewOrderChangeBo nb) {
+				NewOrderChange noc=new NewOrderChange();
+				noc.setId(nb.getId());
+				noc.setStatus(5);
+				newOrderChangeMapper.updateByPrimaryKeySelective(noc);
+				TOrderNew t=new TOrderNew();
+				t.setOrderNo(nb.getOrderNo());
+				t.setDeleteSign(0);
+				tOrderNewMapper.updateByPrimaryKeySelective(t);
+				return 1;
+			}
 }

+ 122 - 10
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -43,6 +43,7 @@ import com.goafanti.common.dao.NewOrderDunMapper;
 import com.goafanti.common.dao.NoticeMapper;
 import com.goafanti.common.dao.OrganizationContactBookMapper;
 import com.goafanti.common.dao.OrganizationManagementMapper;
+import com.goafanti.common.dao.TArrearsDunMapper;
 import com.goafanti.common.dao.TDunLogMapper;
 import com.goafanti.common.dao.TOrderBackMapper;
 import com.goafanti.common.dao.TOrderDunMapper;
@@ -63,6 +64,7 @@ import com.goafanti.common.model.NewOrderDun;
 import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.OrganizationContactBook;
 import com.goafanti.common.model.OrganizationManagement;
+import com.goafanti.common.model.TArrearsDun;
 import com.goafanti.common.model.TDunLog;
 import com.goafanti.common.model.TOrderBack;
 import com.goafanti.common.model.TOrderDun;
@@ -81,8 +83,10 @@ import com.goafanti.core.mybatis.JDBCIdGenerator;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.customer.bo.LockingReleaseBo;
+import com.goafanti.order.bo.InputArrearsDunListBo;
 import com.goafanti.order.bo.OrderDunTaskBo;
 import com.goafanti.order.bo.OrderRefundDetailBo;
+import com.goafanti.order.bo.OutArrearsDunListBo;
 import com.goafanti.order.bo.OutNewOrderDunBo;
 import com.goafanti.order.bo.TDunLogListBo;
 import com.goafanti.order.bo.TOrderLogBo;
@@ -93,6 +97,7 @@ import com.goafanti.order.bo.outOrderDunListBo;
 import com.goafanti.order.enums.ActiveState;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.LiquidationNewState;
+import com.goafanti.order.enums.NewDunState;
 import com.goafanti.order.enums.NewOrderDunType;
 import com.goafanti.order.enums.OrderDunSubject;
 import com.goafanti.order.enums.OrderNewState;
@@ -144,6 +149,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Autowired
 	private UserLockReleaseMapper	userLockReleaseMapper;
 	@Autowired
+	private TArrearsDunMapper	tArrearsDunMapper;
+	@Autowired
 	private UserMapper	userMapper;
 	@Value(value = "${mobileRemindCodeTemplate}")
 	private String					mobileRemindCodeTemplate	= null;
@@ -285,7 +292,6 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			tl.setProcess(OrderLogProcess.TJ.getCode());
 			tl.setAid(TokenManager.getAdminId());
 			addOrderLog(tl,null);
-			System.out.println(""+t2.getContractNo());
 			if (StringUtils.isBlank(t2.getContractNo())) {
 				//没有合同编号则生成
 				createContractNo(t);
@@ -566,14 +572,11 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				//修改项目为外包项目
 				tOrderTaskMapper.updateByOutsourceToOrderNo(orderNo,1);
 			}
-			if(t2.getApproval()==0)pushOrderDun(t2);
+			pushOrderDun(t2);
 		}else if (orderStatus==OrderNewState.QDSHJJ.getCode()) {//如果不通过新增驳回
 				if (outsource==0) {//非外包
 				t.setProcessStatus(ProcessStatus.YPYXY.getCode());
 				addBackOrder(orderNo, reason);
-				tl.setOrderNo(orderNo);
-				tl.setProcess(OrderLogProcess.SH.getCode());
-				addOrderLog(tl,reason);
 			}
 				aids.add(t2.getSalesmanId());
 				type=NoticeStatus.ORDER_NO.getCode();
@@ -589,19 +592,29 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 
-	private void pushOrderDun(TOrderNew t2) {
-		if(t2.getApproval()==0) {
+	public void pushOrderDun(TOrderNew t2) {
 			List<OutNewOrderDunBo> list=newOrderDunMapper.selectListNewOrderDun(t2.getOrderNo(),null,0);
 			for (OutNewOrderDunBo o : list) {
 				if (o.getDunType()==1) {
 					o.setStatus(1);
 					o.setStartTime(new Date());
 					newOrderDunMapper.updateByPrimaryKeySelective(o);
+					tOrderMidMapper.addOrderReceivables(o.getOrderNo(),o.getMoney());
+					TOrderMid tm=tOrderMidMapper.selectByOrderNo(t2.getOrderNo());
+						TArrearsDun t=new TArrearsDun();
+						t.setOrderArrears(tm.getOrderArrears());
+						t.setOrderReceivables(tm.getOrderReceivables());
+						if (tArrearsDunMapper.checkOrderNo(t2.getOrderNo(),null)<1) {
+							t.setOrderNo(t2.getOrderNo());
+							tArrearsDunMapper.insertSelective(t);
+						}else if(tArrearsDunMapper.checkOrderNo(t2.getOrderNo(),0)>0){
+							Integer i=tArrearsDunMapper.selectByStatus(t2.getOrderNo(), 0);
+							t.setId(i);
+							tArrearsDunMapper.updateByPrimaryKeySelective(t);
+						}
 					addNewDunNoticAndSendEmail(t2,o);
 				}
 			}
-		}
-		
 	}
 
 
@@ -661,7 +674,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		TOrderLog tl=new TOrderLog();
 		tl.setOrderNo(orderNo);
 		tl.setProcess(OrderLogProcess.BH.getCode());
-		addOrderLog(tl,null);
+		addOrderLog(tl,reason);
 		tOrderBackMapper.insertSelective(ob);
 	}
 
@@ -1081,8 +1094,10 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		 String id="1";
 		if (type==NoticeStatus.ORDER_DUN.getCode())  id=b.getSalesmanId();
 		if (type==NoticeStatus.ORDER_BACK.getCode())  id=TokenManager.getAdminId()==null?"1":TokenManager.getAdminId();
+		if (type==NoticeStatus.ORDER_APPROVA_NO.getCode())  id=TokenManager.getAdminId()==null?"1":TokenManager.getAdminId();
 		AdminListBo a = adminMapper.getDeptNameByAid(id);
 		 sendEmail(type==NoticeStatus.ORDER_DUN.getCode()?t.getOrderNo():orderNo, t==null?null:t.getId(), a, b);
+		 
 		 addNotic(type==NoticeStatus.ORDER_DUN.getCode()?t.getOrderNo():orderNo,type,a, b);
 	}
 	public void addNotic(String orderNo,Integer type,AdminListBo a,TOrderNewBo b) {
@@ -1260,6 +1275,103 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 
+	@SuppressWarnings("unchecked")
+	@Override
+	public Pagination<OutArrearsDunListBo> arrearsDunList(InputArrearsDunListBo in) {
+
+		Map<String, Object> params = new HashMap<String, Object>();
+		if(in.getPageSize()==null||in.getPageSize()<0)in.setPageSize(10);
+		if(in.getPageNo()==null||in.getPageNo()<0)in.setPageNo(1);
+		if (StringUtils.isNotBlank(in.getName())) params.put("name", in.getName());
+		if (StringUtils.isNotBlank(in.getDepId())) params.put("depId", in.getDepId());
+		if (StringUtils.isNotBlank(in.getAdminName())) params.put("adminName", in.getAdminName());
+		if (StringUtils.isNotBlank(in.getOrderNo())) params.put("orderNo", in.getOrderNo());
+		if (StringUtils.isNotBlank(in.getStarTime())) params.put("starTime", in.getStarTime());
+		if (StringUtils.isNotBlank(in.getEndTime())) params.put("endTime", in.getEndTime()+" 23:59:59");
+		if (StringUtils.isNotBlank(in.gettStarTime())) params.put("tStarTime", in.gettStarTime());
+		if (StringUtils.isNotBlank(in.gettEndTime())) params.put("tEndTime", in.gettEndTime()+" 23:59:59");
+		Integer i=null;
+		if(TokenManager.hasRole(AFTConstants.SALESMAN)) {
+			params.put("aid", TokenManager.getAdminId());
+		} else if (TokenManager.hasRole(AFTConstants.FINANCE)) {
+			i=1;
+			params.put("fid", TokenManager.getAdminId());
+		}else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
+			i=2;
+			params.put("fid", TokenManager.getAdminId());
+		}
+		if (TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)||TokenManager.hasRole(AFTConstants.VICE_CEO)||
+				TokenManager.hasRole(AFTConstants.SUPERADMIN)||TokenManager.hasRole(AFTConstants.CED)||
+				TokenManager.hasRole(AFTConstants.APPROVAL_DECISION))i=3;
+		if(i!=null)params.put("shiroType", i);
+		Pagination<OutArrearsDunListBo> p = (Pagination<OutArrearsDunListBo>)findPage("selectArrearsDunListByPage", "selectArrearsDunListByCount", params, in.getPageNo(), in.getPageSize());
+		return p;
+	}
+
+
+
+	@SuppressWarnings("unchecked")
+	@Override
+	public void exportArrearsDunListData(InputArrearsDunListBo in, HttpServletResponse response) throws IOException {
+		OutputStream out = response.getOutputStream();
+		try {
+			List<OutArrearsDunListBo> list=(List<OutArrearsDunListBo>) arrearsDunList(in).getList();
+    		String[] comment = {"合同编号","订单编号","客户名称","订单负责人","订单部门","订单状态","项目状态","签单金额(万元)","已收款(万元)","结算状态","催收科目","欠款催收","催款状态","催款启动时间","下单时间"};
+    		String fileName ="欠款催款记录表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
+    		//type 0 变更
+    		XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"催款信息");
+    		//根据列表编写文档
+    		XSSFSheet sheet =wb.getSheetAt(0);
+    		for (OutArrearsDunListBo 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.getContractNo(); break;
+    				case "订单编号": o = ob.getOrderNo().toString(); break;
+    				case "客户名称": o = ob.getUserName(); break;
+    				case "订单负责人": o = ob.getSalesmanName(); break;
+    				case "订单部门": o = ob.getDepName(); break;
+    				case "订单状态": o = OrderNewState.getValueByCode(ob.getOrderStatus());break;
+    				case "项目状态": o = ProjectNewStage.getValueByCode(ob.getOrderStatus());break;
+    				case "签单金额(万元)": o = ob.getTotalAmount();break;
+    				case "已收款(万元)": o = ob.getSettlementAmount();break;
+    				case "结算状态": o = LiquidationNewState.getValueByCode(ob.getLiquidationStatus());break;
+    				case "催收科目": o = ob.getType()==0?"按时触发应收款":"未知";break;
+    				case "欠款催收": o = ob.getOrderArrears();break;
+    				case "催款状态": o = NewDunState.getValueByCode(ob.getDunStatus());break;
+    				case "催款启动时间": o = ob.getStartDate();break;
+    				case "下单时间": o = ob.getSignDate();break;
+    				default: o = ""; break;
+    				}
+    				XSSFCell c = r.createCell(i);
+    				c.setCellValue(o);
+    			}
+    		}
+    		//返回名称及参数
+			 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
+			 response.setContentType("application/octet-stream;charset=utf-8");
+    		 // 返回数据流
+			 wb.write(out); 
+			 out.flush();
+			 out.close();
+		} catch (Exception e) {
+			throw new BusinessException(new Error("表格生成错误。"));
+		}finally {
+			out.flush(); 
+			 out.close(); 
+		}
+		
+	
+		
+	}
+
+
+
 
 
 	

+ 23 - 0
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -32,8 +32,10 @@ import com.goafanti.common.dao.BusinessProjectMapper;
 import com.goafanti.common.dao.NewOrderDunMapper;
 import com.goafanti.common.dao.OrganizationContactBookMapper;
 import com.goafanti.common.dao.OrganizationIdentityMapper;
+import com.goafanti.common.dao.TArrearsDunMapper;
 import com.goafanti.common.dao.TOrderBonusMapper;
 import com.goafanti.common.dao.TOrderLogMapper;
+import com.goafanti.common.dao.TOrderMidMapper;
 import com.goafanti.common.dao.TOrderNewMapper;
 import com.goafanti.common.dao.TOrderTaskMapper;
 import com.goafanti.common.dao.TTaskHoursMapper;
@@ -48,8 +50,10 @@ import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.BusinessProject;
 import com.goafanti.common.model.OrganizationContactBook;
 import com.goafanti.common.model.OrganizationIdentity;
+import com.goafanti.common.model.TArrearsDun;
 import com.goafanti.common.model.TOrderBonus;
 import com.goafanti.common.model.TOrderLog;
+import com.goafanti.common.model.TOrderMid;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.common.model.TTaskHours;
@@ -109,6 +113,10 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private BusinessProjectMapper	businessProjectMapper;
 	@Autowired
 	private NewOrderDunMapper	newOrderDunMapper;
+	@Autowired
+	private TOrderMidMapper	tOrderMidMapper;
+	@Autowired
+	private TArrearsDunMapper	tArrearsDunMapper;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
 	
@@ -411,10 +419,25 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 				} 
 					if(flag) {
 					TOrderNew tn=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
+					//如果启动催款,则新增欠款与应收款
+					tOrderMidMapper.addOrderReceivables(t.getOrderNo(), ob.getMoney());
+					TOrderMid tm=tOrderMidMapper.selectByOrderNo(t.getOrderNo());
+						TArrearsDun td=new TArrearsDun();
+						td.setOrderArrears(tm.getOrderArrears());
+						td.setOrderReceivables(tm.getOrderReceivables());
+						if (tArrearsDunMapper.checkOrderNo(t.getOrderNo(),null)<1) {
+							td.setOrderNo(t.getOrderNo());
+							tArrearsDunMapper.insertSelective(td);
+						}else if(tArrearsDunMapper.checkOrderNo(t.getOrderNo(),0)>0){
+							Integer i=tArrearsDunMapper.selectByStatus(t.getOrderNo(), 0);
+							td.setId(i);
+							tArrearsDunMapper.updateByPrimaryKeySelective(td);
+						}
 					orderNewService.addNewDunNoticAndSendEmail(tn,ob);
 					ob.setStatus(1);
 					ob.setStartTime(new Date());
 					newOrderDunMapper.updateByPrimaryKeySelective(ob);
+					
 				}
 			}
 		}

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

@@ -168,7 +168,7 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
 				continue;
 			}
 			//计算收款结果
-			BigDecimal bd = bill.add(tr.getAmount().abs());
+			BigDecimal bd = bill.add(tr.getAmount());
 			//判断表中数据
 			BigDecimal count = new BigDecimal(0).add(bd);
 			for (TOrderBillNew tBill : listBull) {
@@ -229,7 +229,7 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
 					
 					addOrderLog(tr.getOrderNo(), OrderLogProcess.CWSF.getCode());
 				}
-			
+				
 			}
 			if(tr.getStatus()==2) {
 				tr.setStatus(0);

+ 2 - 2
src/main/resources/props/config_local.properties

@@ -60,12 +60,12 @@ template.cacheable=false
 portal.host=//sf.jishutao.com/portal/2.0.6
 avatar.upload.host=//sb.jishutao.com/upload
 #连接开发
-#static.host=//sb.jishutao.com/1.1.37
+#static.host=//sb.jishutao.com/1.1.39
 #avatar.host=//sb.jishutao.com
 
 #连测试
 avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.1.37
+static.host=//static.jishutao.com/1.1.39
 
 upload.path=F:/data/public/upload
 upload.private.path=F:/data/private/upload

+ 1 - 1
src/main/resources/props/config_test.properties

@@ -54,7 +54,7 @@ session.validate.timespan=18000000
 app.name=AFT
 template.cacheable=false
 
-static.host=//static.jishutao.com/1.1.37
+static.host=//static.jishutao.com/1.1.39
 portal.host=//static.jishutao.com/portal/2.0.6
 avatar.host=//static.jishutao.com
 avatar.upload.host=//static.jishutao.com/upload

+ 7 - 7
src/main/resources/props/error.properties

@@ -96,17 +96,17 @@ MOBILE_SAME_ERROR=\u65B0\u624B\u673A\u53F7\u5FC5\u987B\u548C\u539F\u624B\u673A\u
 
 MARKET_BOOTH_MAX = \u8425\u9500\u6D3B\u52A8\u5C55\u4F4D\u5DF2\u6EE1{0}\u4E2A
 
-CUSTOMER_ALREADY_EXIST = \u5BA2\u6237\u5DF2\u5B58\u5728{0}
+CUSTOMER_ALREADY_EXIST = \u5BA2\u6237{0}\u5DF2\u5B58\u5728
 
-CUSTOMER_ALREADY_LOCKED = \u5BA2\u6237\u5DF2\u9501\u5B9A{0}
+CUSTOMER_ALREADY_LOCKED = \u5BA2\u6237{0}\u5DF2\u9501\u5B9A
 
 CUSTOMER_ALREADY_RECEIVE = \u8BE5\u5BA2\u6237\u5DF2\u7ECF\u88AB\u9886\u53D6
 
 CUSTOMER_TRANSFER_FAIL = \u5BA2\u6237\u8F6C\u4EA4\u5931\u8D25
 
-BUSINESS_ALREADY_LOCKED = \u9879\u76EE\u5DF2\u9501\u5B9A{0}
+BUSINESS_ALREADY_LOCKED = \u9879\u76EE{0}\u5DF2\u9501\u5B9A
 
-BUSINESS_ALREADY_EXIST = \u9879\u76EE\u5DF2\u5B58\u5728{0}
+BUSINESS_ALREADY_EXIST = \u9879\u76EE{0}\u5DF2\u5B58\u5728
 
 AT_LEAST_A_BUSINESS = \u81F3\u5C11\u9700\u8981\u586B\u5199\u4E00\u9879\u4E1A\u52A1
 
@@ -114,13 +114,13 @@ USER_NICKNAME_EXIST = \u6635\u79F0\u5DF2\u5B58\u5728
 
 NOT_ACCORD_WITH_NEXT = \u4E0D\u7B26\u5408\u6D41\u8F6C\u6761\u4EF6
 
-ORDER_CAN_NOT_MODIFY = \u5F53\u524D\u8BA2\u5355\u4E0D\u80FD\u4FEE\u6539{0}
+ORDER_CAN_NOT_MODIFY = \u5F53\u524D\u8BA2\u5355{0}\u4E0D\u80FD\u4FEE\u6539
 
-ORDER_ALREADY_FREEZE = \u8BE5\u8BA2\u5355\u5DF2\u7ECF\u51BB\u7ED3{0}
+ORDER_ALREADY_FREEZE = \u8BE5\u8BA2\u5355{0}\u5DF2\u7ECF\u51BB\u7ED3
 
 ORDER_ALREADY_REVOKE = \u8BA2\u5355{0}\u5DF2\u7ECF\u9501\u5b9a
 
-ORDER_NOT_EXIST = \u8BA2\u5355\u4E0D\u5B58\u5728{0}
+ORDER_NOT_EXIST = \u8BA2\u5355{0}\u4E0D\u5B58\u5728
 
 CUSTOM_EREXCESS= \u5ba2\u6237\u9886\u53d6\u8d85\u989d\u002c\u6bcf\u5929\u6700\u591a{0}\u4e2a