Browse Source

每月定时更新年度订单数
发送邮件单例

limin 7 years ago
parent
commit
3413c0055d

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

@@ -88,4 +88,6 @@ public interface TOrderMonthReportMapper {
 	List<OrderReportBo> getYearReportByYear(OrderReportBo orderReportBo);
 	
 	int proofDataBySomeBody(TOrderNew orderNew);
+	
+	int updateYearReportData(String d);
 }

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

@@ -444,4 +444,19 @@
   	
   	WHERE  m.type = o.order_type and m.salemans_id = o.salesman_id and m.month =  date_format( #{signTime,jdbcType=DATE}, '%Y%m' )
  </update>
+ 
+ <!-- 更新年数据 -->
+ <update id="updateYearReportData" parameterType="java.lang.String">
+ update t_order_year_report y,(
+
+	SELECT salemans_id, `type`, sum(amount) amount, sum(proof_count) proof_count FROM t_order_month_report 
+	
+	WHERE CAST(`month` as CHAR) like  concat (date_format(now(),'%Y'),'%')
+	
+	GROUP BY salemans_id, type) m 
+	
+	SET y.proof_count = m.proof_count, y.amount = m.amount
+	  	
+	WHERE y.salemans_id = m.salemans_id and y.type = m.type and year = date_format(now(),'%Y')
+ </update>
 </mapper>

+ 4 - 1
src/main/java/com/goafanti/common/task/MonthReportTask.java

@@ -17,7 +17,7 @@ public class MonthReportTask {
 	
 	Logger	logger	= LoggerFactory.getLogger(MonthReportTask.class);
 	/**
-     * 每月1号7点15分钟执行任务
+     * 每月1号7点执行任务
      */
     @Scheduled(cron = "0 0 7 1 * ?")
    //@Scheduled(cron = "0 3 18 * * ?")
@@ -25,6 +25,9 @@ public class MonthReportTask {
     	//新增月数据
     	int count = orderReportServiceImpl.insertOrderStatisticsByMonthTask();
     	//更新年数据
+    	int c = orderReportServiceImpl.updateYearReportData();
+    	
     	LoggerUtils.debug(logger, "统计上月订单【%s】条。", count);
+    	LoggerUtils.debug(logger, "更新年订单【%s】条。", c);
     }
 }

+ 31 - 16
src/main/java/com/goafanti/common/utils/SendEmailUtil.java

@@ -38,6 +38,20 @@ import com.goafanti.order.enums.OrderNewState;
 //}
 
 public class SendEmailUtil {
+	private static Session session;
+	private static volatile SendEmailUtil singleton;
+	private SendEmailUtil() {}
+	public static SendEmailUtil getInstance() {
+      if (singleton == null) {
+          synchronized (SendEmailUtil.class) {
+              if (singleton == null) {
+                  singleton = new SendEmailUtil();
+                  session = getSession();
+              }
+          }
+      }
+      return singleton;
+  }
 	public static final String HOST = "smtp.163.com";
 	public static final String PORT = "465";
 	public static final String AUTH_USER_NICKNAME = "湖南科德信息咨询有限公司";
@@ -76,9 +90,9 @@ public class SendEmailUtil {
 	 * @throws MessagingException
 	 * @throws UnsupportedEncodingException
 	 */
-	public static void send(EmailBo emailBo)
+	public void send(EmailBo emailBo)
 			throws MessagingException, UnsupportedEncodingException {
-		Session session = getSession();
+		// Session session = getSession();
 		// Instantiate a message
 		Message msg = new MimeMessage(session);
 
@@ -100,21 +114,22 @@ public class SendEmailUtil {
 	}
 
 	public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {
-		System.out.println(OrderNewState.getStatus(0));
-		System.out.println(OrderNewState.getStatus(1));
-		System.out.println(OrderNewState.getStatus(2));
-		System.out.println(OrderNewState.getStatus(3));
-		System.out.println(OrderNewState.YBH);
-		System.out.println(OrderNewState.YJX);
-		System.out.println(OrderNewState.getValueByCode(0));
-		BigDecimal b = new BigDecimal("1.2");
-		System.out.println(b.add(new BigDecimal(0.0000)).toString());
-		System.out.println(b.add(new BigDecimal("0")).toString());
+//		System.out.println(OrderNewState.getStatus(0));
+//		System.out.println(OrderNewState.getStatus(1));
+//		System.out.println(OrderNewState.getStatus(2));
+//		System.out.println(OrderNewState.getStatus(3));
+//		System.out.println(OrderNewState.YBH);
+//		System.out.println(OrderNewState.YJX);
+//		System.out.println(OrderNewState.getValueByCode(0));
+//		BigDecimal b = new BigDecimal("1.2");
+//		System.out.println(b.add(new BigDecimal(0.0000)).toString());
+//		System.out.println(b.add(new BigDecimal("0")).toString());
 		String content = "<div>客户名称: 旺旺</div><div>订单编号: 0001</div>";
-//		content +="<div>催收时间: " + 123456 +"</div><div>催收科目: " + "??" +"</div><div>催收情况: " + "???" +"</div>";
-		EmailBo bo =new EmailBo("催收通知","2304089483@qq.com","管理员","平台超管中心","管理员","<div>客户名称: 国防湖南</div><div>订单编号: 273822676366036992</div><div>催收时间: 273822676366036992</div><div>催收科目: 273822676366036992</div><div>催收情况: 273822676366036992</div>");
-		send(bo);
-//		EmailBo bo = new EmailBo("奖金信息", "13077305639@163.com,3298921364@qq.com", "limim,李敏", "财务部", "财务专员彭晓丽", content);
+		content +="<div>催收时间: " + 123456 +"</div><div>催收科目: " + "??" +"</div><div>催收情况: " + "???" +"</div>";
+//		EmailBo bo =new EmailBo("催收通知","3298921364@qq.com,","管理员,","平台超管中心","管理员","<div>客户名称: 国防湖南</div><div>订单编号: 273822676366036992</div><div>催收时间: 273822676366036992</div><div>催收科目: 273822676366036992</div><div>催收情况: 273822676366036992</div>");
 //		send(bo);
+		SendEmailUtil emailUtil = SendEmailUtil.getInstance();
+		EmailBo bo = new EmailBo("奖金信息", "3298921364@qq.com,", "limim,", "财务部", "财务专员彭晓丽", content);
+		emailUtil.send(bo);
 	}
 }

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

@@ -41,4 +41,11 @@ public interface OrderReportService {
 	 */
 	int saveUploadData(Set<OrderReportBo> bos);
 	
+	/**
+	 * 定时更新年报表
+	 * @param d
+	 * @return
+	 */
+	int updateYearReportData();
+	
 }

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

@@ -145,7 +145,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				String content = "<div>客户名称: "+ b.getUserName() +"</div><div>订单编号: " + back.getOrderNo() + "</div>";
 				EmailBo bo = new EmailBo("订单驳回", b.getEmail(), b.getSalesmanName(), a.getDepartmentName(), a.getName(), content);
 				try {
-					SendEmailUtil.send(bo);
+					SendEmailUtil.getInstance().send(bo);
 				} catch (UnsupportedEncodingException e) {
 					// TODO Auto-generated catch block
 					e.printStackTrace();
@@ -189,6 +189,18 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				bonus.setGrantTarget(o.getTechnicianId());
 				bonus.setGrantType(1);
 				bonusMapper.insertSelective(bonus);
+				//发送邮件
+//				Admin oo = adminMapper.selectAllByid(o.getTechnicianId());
+//				AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
+//				String content = "<div>订单编号: "+ billNew.getOrderNo() +"</div><div>应收人: " + oo.getName() + "</div>";
+//				EmailBo emailBo = new EmailBo("奖金发放", oo.getEmail(), oo.getName(), a.getDepartmentName(), a.getName(), content);
+//				try {
+//					SendEmailUtil.send(emailBo);
+//				} catch (UnsupportedEncodingException e) {
+//					e.printStackTrace();
+//				} catch (MessagingException e) {
+//					e.printStackTrace();
+//				}
 			}
 			
 		}else if(bd.compareTo(o.getTotalAmount()) == -1){//如果订单流水小于总金额
@@ -229,6 +241,19 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				//设置发放人类型
 				bonus.setGrantType(0);
 				bonusMapper.insertSelective(bonus);
+				
+				//发送邮件
+//				TOrderNewBo oo = tOrderNewMapper.getSaleIdByOno(billNew.getOrderNo());
+//				AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
+//				String content = "<div>订单编号: "+ billNew.getOrderNo() +"</div><div>应收人: " + oo.getSalesmanName() + "</div>";
+//				EmailBo emailBo = new EmailBo("奖金发放", oo.getEmail(), oo.getSalesmanName(), a.getDepartmentName(), a.getName(), content);
+//				try {
+//					SendEmailUtil.send(emailBo);
+//				} catch (UnsupportedEncodingException e) {
+//					e.printStackTrace();
+//				} catch (MessagingException e) {
+//					e.printStackTrace();
+//				}
 			}
 		}
 		
@@ -262,7 +287,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			
 			EmailBo emailBo = new EmailBo("同意退单", o.getEmail(), o.getSalesmanName(), a.getDepartmentName(), a.getName(), content);
 			try {
-				SendEmailUtil.send(emailBo);
+				SendEmailUtil.getInstance().send(emailBo);
 			} catch (UnsupportedEncodingException e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();

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

@@ -577,7 +577,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			//发送驳回邮件
 			EmailBo bo = new EmailBo(tite, b.getEmail(), b.getSalesmanName(), a.getDepartmentName(), a.getName(), content);
 			LoggerUtils.debug(logger, "tite:"+tite+"  Email:"+ b.getEmail()+"  收件人姓名:"+ b.getSalesmanName()+ "    部门:"+a.getDepartmentName()+ "  发件人姓名:"+a.getName()+"   内容:"+ content);
-			SendEmailUtil.send(bo);
+			SendEmailUtil.getInstance().send(bo);
 			LoggerUtils.debug(logger, "=========================================发送邮件成功");
 		} catch (UnsupportedEncodingException e) {
 			LoggerUtils.error(getClass(), "发送邮件失败", e);

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

@@ -85,6 +85,11 @@ public class OrderReportServiceImpl extends BaseMybatisDao<TOrderMonthReportMapp
 		}
 		return count;
 	}
+
+	@Override
+	public int updateYearReportData() {
+		return monthReportMapper.updateYearReportData(null);
+	}
 	
 	
 }