Browse Source

怡海能达发邮件项目,代码优化

zhoudw 6 years ago
parent
commit
d072dc32ac

+ 43 - 6
src/main/java/com/uas/eis/serviceImpl/SendArbillmailServiceImpl.java

@@ -24,16 +24,16 @@ public class SendArbillmailServiceImpl implements SendArbillmailService{
     BaseDao baseDao;
 
     public void send_abillmail() {
-        send_abillmailbymaster("YHND_SZ");
-        send_abillmailbymaster("YHND_HK");
+        send_abillmailbymaster_sz();
+        send_abillmailbymaster_hk();
     }
 
 
-    public void send_abillmailbymaster(String sob) {
+    public void send_abillmailbymaster_sz() {
         String defaultSob = SpObserver.getSp();
 
         //切换到目标账套
-        SpObserver.putSp(sob);
+        SpObserver.putSp("YHND_SZ");
         String emsql="select distinct name,mail from( select CU_SELLERNAME name,MAIL1_SELLER mail from UNFULLCOLLECT_VIEW) where mail is not null";
         StringBuilder message = null;
         StringBuilder ccman = null;
@@ -46,12 +46,12 @@ public class SendArbillmailServiceImpl implements SendArbillmailService{
                 ccman.append(ccdata.toString());
             }
             message = new StringBuilder();
-            SqlRowList contrs = baseDao.queryForRowSet("select * from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'");
+            SqlRowList contrs = baseDao.queryForRowSet("select AB_CODE,AB_CUSTNAME,AB_DATE,AB_PAYDATE,TO_CHAR(RESAMOUNT,'FM9,999,999,999,999,999,999,999,990.00') RESAMOUNT from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'");
             message.append("<p><font color=\"red\"><b>"+emrs.getString("name")+":</b></font></p><p><font color=\"red\">您好!</font></p><p><font color=\"red\">您有如下客户的应收款将在一周后到期,请及时跟进,谢谢!</font></p><table border=\"1\" cellspacing=\"0\" style=\"font-size:12px;width:100%\"><tr><th width=\"150px\">应收发票</th><th>客户</th><th width=\"100px\">日期</th><th width=\"100px\">应收日期</th><th>未收款金额</th></tr>");
             while (contrs.next()){
                 message.append("<tr><th>"+contrs.getString("AB_CODE")+"</th><th>"+contrs.getString("AB_CUSTNAME")+"</th><th>"+contrs.getString("AB_DATE")+"</th><th>"+contrs.getString("AB_PAYDATE")+"</th><th align=\"right\">"+contrs.getString("RESAMOUNT")+"</th></tr>");
             }
-            Object total=baseDao.queryForObject("select to_char(sum(RESAMOUNT), 'fm9999990.00')  from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'",String.class);
+            Object total=baseDao.queryForObject("select to_char(sum(RESAMOUNT), 'FM9,999,999,999,999,999,999,999,990.00')  from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'",String.class);
             message.append("<tr><th><font color=\"red\">合计<font></th><th></th><th></th><th></th><th align=\"right\"><font color=\"red\">"+total.toString()+"<font></th></tr>");
             message.append("</table><p><font color=\"red\">如有疑问请联系系统维护人员,谢谢!</font></p><p><font color=\"red\">日期:"+ DateUtil.format(new Date(),"yyyy-MM-dd")+"</font></p>");
 //            sendMailService.sendSysMail("应收款到期7天提醒("+emrs.getString("name")+")",message.toString(),emrs.getString("mail"),ccman.toString(),null);
@@ -64,6 +64,43 @@ public class SendArbillmailServiceImpl implements SendArbillmailService{
         SpObserver.putSp(defaultSob);
     }
 
+    public void send_abillmailbymaster_hk() {
+        String defaultSob = SpObserver.getSp();
+
+        //切换到目标账套
+        SpObserver.putSp("YHND_HK");
+        String emsql="select distinct name,mail from( select CU_SELLERNAME name,MAIL1_SELLER mail from UNFULLCOLLECT_VIEW) where mail is not null";
+        StringBuilder message = null;
+        StringBuilder ccman = null;
+        SqlRowList emrs = baseDao.queryForRowSet(emsql);
+        while (emrs.next()){
+            //获得固定抄送人员
+            ccman= new StringBuilder();
+            Object ccdata  = getGdccMail(emrs.getString("name"),emrs.getString("mail"));
+            if (ccdata!=null){
+                ccman.append(ccdata.toString());
+            }
+            message = new StringBuilder();
+            SqlRowList contrs = baseDao.queryForRowSet("select AB_CODE,AB_CUSTNAME,AB_DATE,AB_PAYDATE,AB_CURRENCY,TO_CHAR(RESAMOUNT,'FM9,999,999,999,999,999,999,999,990.00') RESAMOUNT,TO_CHAR(RESAMOUNT_RMB,'FM9,999,999,999,999,999,999,999,990.00') RESAMOUNT_RMB from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'");
+            message.append("<p><font color=\"red\"><b>"+emrs.getString("name")+":</b></font></p><p><font color=\"red\">您好!</font></p><p><font color=\"red\">您有如下客户的应收款将在一周后到期,请及时跟进,谢谢!</font></p><table border=\"1\" cellspacing=\"0\" style=\"font-size:12px;width:100%\"><tr><th width=\"150px\">应收发票</th><th>客户</th><th width=\"100px\">日期</th><th width=\"100px\">应收日期</th><th>币别</th><th>未收款金额(原币)</th><th>未收款金额(RMB)</th></tr>");
+            while (contrs.next()){
+                message.append("<tr><th>"+contrs.getString("AB_CODE")+"</th><th>"+contrs.getString("AB_CUSTNAME")+"</th><th>"+contrs.getString("AB_DATE")+"</th><th>"+contrs.getString("AB_PAYDATE")+"</th><th>"+contrs.getString("AB_CURRENCY")+"</th><th align=\"right\">"+contrs.getString("RESAMOUNT")+"</th><th align=\"right\">"+contrs.getString("RESAMOUNT_RMB")+"</th></tr>");
+            }
+            Object total=baseDao.queryForObject("select to_char(sum(RESAMOUNT), 'FM9,999,999,999,999,999,999,999,990.00')  from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'",String.class);
+            Object total_rmb=baseDao.queryForObject("select to_char(sum(RESAMOUNT_RMB), 'FM9,999,999,999,999,999,999,999,990.00')  from UNFULLCOLLECT_VIEW where CU_SELLERNAME = '"+emrs.getString("name")+"' or CU_SERVICENAME = '"+emrs.getString("name")+"'",String.class);
+            message.append("<tr><th><font color=\"red\">合计<font></th><th></th><th></th><th></th><th></th><th align=\"right\"><font color=\"red\">"+total.toString()+"<font></th><th align=\"right\"><font color=\"red\">" + total_rmb.toString() + "<font></th></tr>");
+            message.append("</table><p><font color=\"red\">如有疑问请联系系统维护人员,谢谢!</font></p><p><font color=\"red\">日期:"+ DateUtil.format(new Date(),"yyyy-MM-dd")+"</font></p>");
+//            sendMailService.sendSysMail("应收款到期7天提醒("+emrs.getString("name")+")",message.toString(),emrs.getString("mail"),ccman.toString(),null);
+            System.out.println(emrs.getString("mail"));
+            System.out.println(ccman.toString());
+            System.out.println(message);
+            System.out.println("------");
+        }
+        //切回原账套
+        SpObserver.putSp(defaultSob);
+    }
+
+
     public Object getGdccMail(String seller,String mail){
         return baseDao.queryForObject("select replace(WMSYS.Wm_Concat(mail),',',';') from (select distinct mail from CCMANARBILLMAIL_VIEW where sellername in ('"+seller+"','固定抄送人') and mail<>'"+mail+"' )",String.class);
     }

+ 7 - 3
src/main/java/com/uas/eis/serviceImpl/SendMailServciceImpl.java

@@ -4,6 +4,8 @@ import com.uas.eis.dao.BaseDao;
 import com.uas.eis.service.SendMailService;
 import com.uas.eis.utils.BaseUtil;
 import com.uas.eis.utils.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.mail.MailSendException;
@@ -22,6 +24,8 @@ public class SendMailServciceImpl implements SendMailService {
 	@Autowired
 	private BaseDao baseDao;
 
+	private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
 	//@Autowired
 	//private EmployeeDao employeeDao;
 	private static JavaMailSenderImpl mailSender;
@@ -133,14 +137,14 @@ public class SendMailServciceImpl implements SendMailService {
                     mailSender.send(mimeMessage);
                 }
 			}
+			logger.info("邮件--"+title+",发送给:"+tomail+",抄送给:"+tomail+" 发送成功!");
 		} catch (Exception e) {
 			if(e instanceof MailSendException){
-				BaseUtil.showError("邮件发送失败!");
+				logger.error(error.toString());
 			}
-			e.printStackTrace();
 		} finally {
 			if(error != null && error.length() > 0){
-				BaseUtil.showError(error.toString());
+				logger.error(error.toString());
 			}
 		}
 	}

+ 3 - 3
src/main/java/com/uas/eis/utils/Mail.java

@@ -6,9 +6,9 @@ package com.uas.eis.utils;
  */
 public class Mail {
 
-    public final static String SetEmail = "yyyy-MM";
+    public final static String SetEmail = "system@hi-mantech.com";
 
-    public final static String SetEmailPassword = "yyyyMM";
+    public final static String SetEmailPassword = "Fae3356";
 
-    public final static String SetEmailServer = "yyyy-MM-dd";
+    public final static String SetEmailServer = "smtp.exmail.qq.com";
 }