Browse Source

销售预测发邮件功能

zhoudw 6 years ago
parent
commit
e6957f110c

+ 13 - 0
src/main/java/com/uas/eis/service/SendSaleForecastmailService.java

@@ -0,0 +1,13 @@
+package com.uas.eis.service;
+
+/**
+ * Created by zdw
+ * 2019-04-29 16:42.
+ */
+public interface SendSaleForecastmailService {
+
+    public void sendsaleForecastbymaster_sz();
+
+    public void sendsaleForecastbymaster_hk();
+
+}

+ 97 - 0
src/main/java/com/uas/eis/serviceImpl/SendSaleForecastmailServiceImpl.java

@@ -0,0 +1,97 @@
+package com.uas.eis.serviceImpl;
+
+import com.uas.eis.core.config.SpObserver;
+import com.uas.eis.dao.BaseDao;
+import com.uas.eis.model.SqlRowList;
+import com.uas.eis.service.SendMailService;
+import com.uas.eis.service.SendSaleForecastmailService;
+import com.uas.eis.utils.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * Created by zdw
+ * 2019-04-29 16:42.
+ */
+@Service
+public class SendSaleForecastmailServiceImpl implements SendSaleForecastmailService {
+
+    @Autowired
+    SendMailService sendMailService;
+    @Autowired
+    BaseDao baseDao;
+
+    public void sendsaleForecastbymaster_sz() {
+        //切换到目标账套
+        String defaultSob = SpObserver.getSp();
+        SpObserver.putSp("YHND_SZ");
+        String emsql="select distinct name,mail from( select CU_SELLERNAME name,MAIL1_SELLER mail from FINISHSALEFORECAST_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"),"CCMANSALEFORECASTMAIL_VIEW");
+            if (ccdata!=null){
+                ccman.append(ccdata.toString());
+            }
+            message = new StringBuilder();
+            SqlRowList contrs = baseDao.queryForRowSet("select * from FINISHSALEFORECAST_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=\"500px\">客户名称</th><th width=\"100px\">物料编号</th><th>型号二</th><th>数量</th></tr>");
+            while (contrs.next()){
+                message.append("<tr><th>"+contrs.getString("sf_code")+"</th><th>"+contrs.getInt("sd_detno")+"</th><th>"+contrs.getString("sf_custname")+"</th><th>"+contrs.getString("sd_prodcode")+"</th><th align=\"right\">"+contrs.getString("pr_vendprodcode")+"</th><th>"+contrs.getString("sd_qty")+"</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("上周结案销售预测提醒("+emrs.getString("name")+")",message.toString(),emrs.getString("mail"),ccman.toString(),null);
+			sendMailService.sendSysMail("上周结案销售预测提醒("+emrs.getString("name")+")",message.toString(),"396996717@qq.com","geek94@qq.com;zdw941008@sina.com",null);
+//			System.out.println(emrs.getString("mail"));
+//            System.out.println(ccman.toString());
+//			System.out.println(message);
+//            System.out.println("------");
+        }
+        //切回原账套
+        SpObserver.putSp(defaultSob);
+    }
+
+
+    public void sendsaleForecastbymaster_hk() {
+        //切换到目标账套
+        String defaultSob = SpObserver.getSp();
+        SpObserver.putSp("YHND_HK");
+        String emsql="select distinct name,mail from( select CU_SELLERNAME name,MAIL1_SELLER mail from FINISHSALEFORECAST_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"),"CCMANSALEFORECASTMAIL_VIEW");
+            if (ccdata!=null){
+                ccman.append(ccdata.toString());
+            }
+            message = new StringBuilder();
+            SqlRowList contrs = baseDao.queryForRowSet("select * from FINISHSALEFORECAST_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=\"500px\">客户名称</th><th width=\"100px\">物料编号</th><th>型号二</th><th>数量</th></tr>");
+            while (contrs.next()){
+                message.append("<tr><th>"+contrs.getString("sf_code")+"</th><th>"+contrs.getInt("sd_detno")+"</th><th>"+contrs.getString("sf_custname")+"</th><th>"+contrs.getString("sd_prodcode")+"</th><th align=\"right\">"+contrs.getString("pr_vendprodcode")+"</th><th>"+contrs.getString("sd_qty")+"</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("上周结案销售预测提醒("+emrs.getString("name")+")",message.toString(),emrs.getString("mail"),ccman.toString(),null);
+            sendMailService.sendSysMail("上周结案销售预测提醒("+emrs.getString("name")+")",message.toString(),"396996717@qq.com","geek94@qq.com;zdw941008@sina.com",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,String view){
+        return baseDao.queryForObject("select replace(WMSYS.Wm_Concat(mail),',',';') from (select distinct mail from "+view+" where sellername in ('"+seller+"','固定抄送人') and mail<>'"+mail+"' )",String.class);
+    }
+
+}

+ 29 - 0
src/main/java/com/uas/eis/task/SaleForecastTask.java

@@ -0,0 +1,29 @@
+package com.uas.eis.task;
+
+import com.uas.eis.service.SendArbillmailService;
+import com.uas.eis.service.SendSaleForecastmailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by luhg on 2018/4/26.
+ * 销售订单
+ */
+@Component
+public class SaleForecastTask {
+    @Autowired
+    SendArbillmailService sendArbillmailService;
+    @Autowired
+    SendSaleForecastmailService saleForecastmailService;
+
+    @Scheduled(cron = "0 55 8 ? * MON")
+    public void sendArbill_sz() {
+        saleForecastmailService.sendsaleForecastbymaster_sz();
+    }
+
+    @Scheduled(cron = "0 0 9 ? * MON")
+    public void sendArbill_hk() {
+        saleForecastmailService.sendsaleForecastbymaster_hk();
+    }
+}

+ 9 - 1
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -3,6 +3,7 @@ package com.uas.eis;
 import com.uas.eis.dao.BaseDao;
 import com.uas.eis.service.SendArbillmailService;
 import com.uas.eis.service.SendMailService;
+import com.uas.eis.service.SendSaleForecastmailService;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +20,8 @@ public class UasEisApplicationTests {
 	private SendMailService sendMailService;
 	@Autowired
 	private SendArbillmailService sendArbillmailService;
+	@Autowired
+	private SendSaleForecastmailService sendSaleForecastmailService;
 
 
 
@@ -29,7 +32,12 @@ public class UasEisApplicationTests {
 
 	@Test
 	public void test(){
-		sendArbillmailService.send_abillmail();
+//		sendArbillmailService.send_abillmail();
+	}
+
+	@Test
+	public void test1(){
+		sendSaleForecastmailService.sendsaleForecastbymaster_hk();
 	}
 
 }