Browse Source

催款信息开发

Signed-off-by: anderx <312518615@qq.com>
anderx 6 years ago
parent
commit
897c736d4c

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

@@ -380,7 +380,7 @@
   </update>
   <select id="selectListNewOrderDun" 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_year effectiveYear, a.aid, a.create_time createTime ,b.commodity_name commodityName
+  a.effective_count effectiveCount, a.aid, a.create_time createTime ,b.commodity_name commodityName
   from new_order_dun a left join t_order_task b on a.tid=b.id where 1=1
   <if test="orderNo != null">
   and  a.order_no= #{orderNo}
@@ -392,13 +392,13 @@
   </select>
   <select id="selectAllOrderDun" 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_year effectiveYear, a.aid, a.create_time createTime
+  a.effective_count effectiveCount, a.aid, a.create_time createTime
   from new_order_dun a left join  t_order_new b on a.order_no=b.order_no
-  where 1=1 and b.approval=2
+  where 1=1 and a.status=0
   </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_year effectiveYear, a.aid, a.create_time createTime from new_order_dun a
+  	a.effective_count effectiveCount, a.aid, a.create_time createTime from new_order_dun a
     where tid = #{tid} and status=0
   </select>
 </mapper>

+ 40 - 6
src/main/java/com/goafanti/common/task/OrderDunTask.java

@@ -20,6 +20,7 @@ import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.order.bo.InputNewOrderDunBo;
 import com.goafanti.order.bo.OutNewOrderDunBo;
+import com.goafanti.order.enums.OrderDunProjectType;
 import com.goafanti.order.service.NewOrderDunService;
 import com.goafanti.order.service.OrderNewService;
 
@@ -50,14 +51,38 @@ public class OrderDunTask {
   		List<OutNewOrderDunBo> list= newOrderDunService.selectAllOrderDun();
   		Calendar calendar=Calendar.getInstance();   
   		calendar.setTime(new Date()); 
+  		Calendar calendar2=Calendar.getInstance();   
   		for (OutNewOrderDunBo o : list) {
-  			Calendar calendar2=Calendar.getInstance();   
-  	  		calendar2.setTime(o.getCreateTime());
-  	  		calendar2.add(Calendar.DATE, o.getWaitDay());
-  	  		if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
-  	  			updateOrderDun( o);
-  	  			Thread.sleep(2000);
+  			calendar2.setTime(o.getCreateTime());
+  			if (o.getApproval()==2) {
+  	  	  		calendar2.add(Calendar.DATE, o.getWaitDay());
+  	  	  		if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
+  	  	  			updateOrderDun(o);
+  	  	  			Thread.sleep(2000);
+  				}
 			}
+  			if(o.getProjectType()==OrderDunProjectType.HY.getCode()&&o.getDunType()==2) {
+  				calendar2.add(Calendar.DATE, o.getEffectiveCount()*180);
+  				CalendarTimeCleared(calendar2);
+  				if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
+  	  	  			updateOrderDun(o);
+  	  	  			Thread.sleep(2000);
+  				}
+  			}
+  			if(o.getProjectType()==OrderDunProjectType.CS.getCode()&&o.getDunType()==2) {
+  				//获取年
+  				int year = calendar.get(Calendar.YEAR);  
+  		        //获取月份,0表示1月份
+  		        int month = calendar.get(Calendar.MONTH) + 1;
+  		        if(month<10)year=year+1;
+  		        if(month>9)year=year+2;
+  		        calendar2.set(year, 6, 1);
+  		        CalendarTimeCleared(calendar2);
+  				if (calendar.getTimeInMillis() > calendar2.getTimeInMillis()) {//当前时间大于计算后时间则触发
+  	  	  			updateOrderDun(o);
+  	  	  			Thread.sleep(2000);
+  				}
+  			}
   	  		
 		}
   		LoggerUtils.debug(logger, "======================催款任务轮询结束===================");
@@ -69,6 +94,15 @@ public class OrderDunTask {
   		
   	}
 	
+	
+	private void CalendarTimeCleared(Calendar calendar) {
+		calendar.set(Calendar.HOUR_OF_DAY, 0);
+	    calendar.set(Calendar.MINUTE, 0);
+	    calendar.set(Calendar.SECOND, 0);
+	    calendar.set(Calendar.MILLISECOND, 0);
+	}
+
+
 	private void updateOrderDun(OutNewOrderDunBo t) throws UnsupportedEncodingException, MessagingException {
 		InputNewOrderDunBo o=new InputNewOrderDunBo();
 		o.setId(t.getId());

+ 9 - 1
src/main/java/com/goafanti/order/bo/OutNewOrderDunBo.java

@@ -5,7 +5,7 @@ import com.goafanti.order.enums.NewOrderDunType;
 
 public class OutNewOrderDunBo extends NewOrderDun {
 	private String dunTypeName;
-	
+	private Integer approval;
 	private String commodityName;
 	
 	public String getDunTypeName() {
@@ -27,4 +27,12 @@ public class OutNewOrderDunBo extends NewOrderDun {
 		this.commodityName = commodityName;
 	}
 
+	public Integer getApproval() {
+		return approval;
+	}
+
+	public void setApproval(Integer approval) {
+		this.approval = approval;
+	}
+
 }

+ 2 - 2
src/main/java/com/goafanti/order/enums/NewOrderDunType.java

@@ -15,9 +15,9 @@ public enum NewOrderDunType {
 	KJJR_SQ(41,"科技金融-首期"),
 	KJJR_BK(42,"科技金融-拨款"),
 	CS_SQ(51,"财税-首期"),
-	CS_DQ(52,"财税-期"),
+	CS_DQ(52,"财税-期"),
 	HY_SQ(61,"会员-首期"),
-	HY_DQ(62,"会员-期"),
+	HY_DQ(62,"会员-期"),
 	RJKF_SQ(71,"软件开发-首期"),
 	RJKF_WZ(72,"软件开发-完成"),
 	ZSCQ_SQ(81,"知识产权-首期"),

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

@@ -14,6 +14,7 @@ import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.InputNewOrderDunBo;
 import com.goafanti.order.bo.OutNewOrderDunBo;
+import com.goafanti.order.enums.OrderDunProjectType;
 import com.goafanti.order.service.NewOrderDunService;
 @Service
 public class NewOrderDunServiceImpl extends BaseMybatisDao<NewOrderDunMapper> implements NewOrderDunService {
@@ -25,7 +26,15 @@ public class NewOrderDunServiceImpl extends BaseMybatisDao<NewOrderDunMapper> im
 	@Override
 	public int createDun(InputNewOrderDunBo ib) {
 		ib.setAid(TokenManager.getAdminId());
-		return newOrderDunMapper.insertSelective(ib);
+		if (ib.getProjectType()==OrderDunProjectType.HY.getCode()&&ib.getDunType()==2&&ib.getEffectiveCount()>1) {
+			for (int i = 1; i <= ib.getEffectiveCount(); i++) {
+				ib.setEffectiveCount(i);
+				newOrderDunMapper.insertSelective(ib);
+			}
+		}else {
+			newOrderDunMapper.insertSelective(ib);
+		}
+		return 1;
 	}
 	@Override
 	public int updateDun(InputNewOrderDunBo ib) {