package com.goafanti.common.task; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.List; import javax.mail.MessagingException; 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.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.goafanti.admin.bo.AdminListBo; import com.goafanti.common.enums.NoticeStatus; import com.goafanti.common.model.TOrderDun; import com.goafanti.common.utils.LoggerUtils; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.order.bo.OrderDunTaskBo; import com.goafanti.order.bo.TOrderNewBo; import com.goafanti.order.enums.OrderNewState; import com.goafanti.order.enums.ProjectNewStage; import com.goafanti.order.service.OrderNewService; import com.goafanti.order.service.impl.OrderNewServiceImpl; @Component //@Controller public class OrderDunTask { @Autowired private OrderNewService orderNewService; Logger logger = LoggerFactory.getLogger(OrderDunTask.class); /** * 每天凌晨2点轮询处理需要催款的信息 */ @Scheduled(cron = "0 0 11 * * ?") @RequestMapping(value = "/open/updateorderDun", method = RequestMethod.GET) @Transactional(rollbackFor=Exception.class) public void updateorderDun(){ try { LoggerUtils.debug(logger, "======================催款任务轮询启动==================="); List list=orderNewService.selectAllOrderDun(); for (OrderDunTaskBo t : list) { if (t.getDunSubject()/10==1) { if (t.getDunSubject()%10==t.getOrderStatus()&&t.getSettlementAmount().compareTo(t.getMoney()) == -1) { updateOrderDun(t); Thread.sleep(2000); } }else { if (t.getDunSubject()%10>=t.getProjectStatus()&&t.getSettlementAmount().compareTo(t.getMoney()) == -1) { updateOrderDun(t); Thread.sleep(2000); } } } LoggerUtils.debug(logger, "======================催款任务轮询结束==================="); } catch (Exception e) { LoggerUtils.error(getClass(), "============================================="); LoggerUtils.error(getClass(), "催款的信息处理失败", e); LoggerUtils.error(getClass(), "============================================="); } } private void updateOrderDun(OrderDunTaskBo t) throws UnsupportedEncodingException, MessagingException { LoggerUtils.debug(logger, "======================修改催款任务==================="); TOrderDun tDun=new TOrderDun(); tDun.setId(t.getId()); tDun.setDunStatus(1); tDun.setStartTime(new Date()); orderNewService.updateOrderDun(tDun); orderNewService.addNoticAndSendEmail(t.getOrderNo(),t,NoticeStatus.ORDER_DUN.getCode()); } }