Browse Source

Merge remote-tracking branch 'origin/dev' into test

anderx 7 years ago
parent
commit
1962480ea1

+ 1 - 1
src/main/java/com/goafanti/common/mapper/TOrderDunMapper.xml

@@ -394,6 +394,6 @@
     select a.id,a.order_no as orderNo,a.dun_subject as dunSubject,a.money,settlement_amount as settlementAmount,
  	b.project_status as projectStatus,b.order_status as orderStatus from t_order_dun a
  	left join t_order_new b on a.order_no=b.order_no
- 	where dun_status=0 and start_time is null  
+ 	where a.dun_status=0 and b.delete_sign=0
     </select>
 </mapper>

+ 7 - 0
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1068,6 +1068,7 @@
   	</if>
   	<if test="specially == 2">
   	and a.order_status in(3,5) 
+  	and a.salesman_id = #{aid,jdbcType=VARCHAR}
   	</if>
   	<if test="specially == 3">
   	and a.approval = 1 and  a.order_status=2
@@ -1220,6 +1221,9 @@
     <if test="name != null">
   	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
   	</if>
+  	<if test="aid != null">
+  	and a.initiate = #{aid,jdbcType=VARCHAR}
+  	</if>
   	<if test="orderNo != null">
   	and a.order_no = #{orderNo,jdbcType=VARCHAR}
   	</if>
@@ -1241,6 +1245,9 @@
     <if test="name != null">
   	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
   	</if>
+  	<if test="aid != null">
+  	and a.initiate = #{aid,jdbcType=VARCHAR}
+  	</if>
   	<if test="orderNo != null">
   	and a.order_no = #{orderNo,jdbcType=VARCHAR}
   	</if>

+ 17 - 7
src/main/java/com/goafanti/common/task/OrderDunTask.java

@@ -7,6 +7,8 @@ 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;
@@ -15,28 +17,35 @@ import org.springframework.transaction.annotation.Transactional;
 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 2  * * ?") 
-  	@RequestMapping(value = "/open/updateorderDun", method = RequestMethod.GET)
+//	@Scheduled(cron = "0 25 16  * * ?") 
+	@RequestMapping(value = "/open/updateorderDun", method = RequestMethod.GET)
   	@Transactional(rollbackFor=Exception.class)
 	public void updateorderDun(){
   		try {
+  			LoggerUtils.debug(logger, "======================催款任务轮询启动===================");
   		List<OrderDunTaskBo> list=orderNewService.selectAllOrderDun();
   		for (OrderDunTaskBo t : list) {
 			if (t.getDunSubject()/10==1) {
@@ -45,13 +54,14 @@ public class OrderDunTask {
 						Thread.sleep(2000);
 				}
 			}else {
-				if (t.getDunSubject()%10==t.getProjectStatus()&&t.getSettlementAmount().compareTo(t.getMoney()) == -1) {
+				if (t.getDunSubject()%10>=t.getProjectStatus()&&t.getSettlementAmount().compareTo(t.getMoney()) == -1) {
 					 updateOrderDun(t);
 					 Thread.sleep(2000);
 				}
 			}
 		}
-  		} catch (InterruptedException | UnsupportedEncodingException | MessagingException e) {
+  		LoggerUtils.debug(logger, "======================催款任务轮询结束===================");
+  		} catch (Exception e) {
   			LoggerUtils.error(getClass(), "=============================================");
 			LoggerUtils.error(getClass(), "催款的信息处理失败", e);
 			LoggerUtils.error(getClass(), "=============================================");
@@ -61,13 +71,13 @@ public class OrderDunTask {
 
 
 	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.addNotic(t.getOrderNo(),NoticeStatus.ORDER_DUN.getCode());
-		 orderNewService.sendEmail(t.getOrderNo(),t.getId());
+		orderNewService.addNoticAndSendEmail(t.getOrderNo(),t,NoticeStatus.ORDER_DUN.getCode());
 	}
   	
 }

+ 1 - 0
src/main/java/com/goafanti/common/utils/ExportExcelUtil.java

@@ -409,6 +409,7 @@ public class ExportExcelUtil {
 					case "项目状态": o = ProjectNewStage.getValueByCode(ob.getProjectStatus()); break;
 					case "结算状态": o = LiquidationNewState.getValueByCode(ob.getLiquidationStatus()); break;
 					case "已收款": o = ob.getSettlementAmount().toString(); break;
+					case "订单负责人": o =ob.getSalesmanName(); break;
 					case "催收科目": o = getDunSuBubject(ob.getDunSubject()); break;
 					case "催款启动日期": o = ob.getStartDate(); break;
 					default: o = ""; break;

+ 17 - 5
src/main/java/com/goafanti/common/utils/SendEmailUtil.java

@@ -2,6 +2,7 @@ package com.goafanti.common.utils;
 
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
+import java.security.GeneralSecurityException;
 import java.util.Date;
 import java.util.Properties;
 
@@ -17,6 +18,7 @@ import javax.mail.internet.MimeUtility;
 
 import com.goafanti.common.bo.EmailBo;
 import com.goafanti.order.enums.OrderNewState;
+import com.sun.mail.util.MailSSLSocketFactory;
 
 
 //public class Singleton {
@@ -64,12 +66,22 @@ public class SendEmailUtil {
 	private static Session getSession() {
 		Properties props = new Properties();
 
+		//开启安全协议
+        MailSSLSocketFactory sf = null;
+		try {
+			sf = new MailSSLSocketFactory();
+			sf.setTrustAllHosts(true);
+		} catch (GeneralSecurityException e) {
+			e.printStackTrace();
+		}
+        props.setProperty("mail.smtp.ssl.enable", "true");
+        props.put("mail.smtp.ssl.socketFactory", sf);
+        props.setProperty("mail.smtp.socketFactory.port", PORT);
+        props.setProperty("mail.smtp.socketFactory.fallback", "false");// 注意是字符串的true,不是boolean类型的true
 		// 这一套是465端口
 		props.setProperty("mail.smtp.host", HOST);// 设置服务器地址
-		props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);// 设置协议
-		props.setProperty("mail.smtp.socketFactory.fallback", "false");// 注意是字符串的true,不是boolean类型的true
+		//props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);// 设置协议
 		props.setProperty("mail.smtp.port", PORT);// 设置端口
-		props.setProperty("mail.smtp.socketFactory.port", PORT);
 		props.put("mail.smtp.auth", "true");// 注意是字符串的true,不是boolean类型的true
 
 		Authenticator authenticator = new Authenticator() {
@@ -80,7 +92,7 @@ public class SendEmailUtil {
 
 		};
 		Session session = Session.getDefaultInstance(props, authenticator);
-
+		System.out.println("session hash code" + session.hashCode());
 		return session;
 	}
 
@@ -108,7 +120,7 @@ public class SendEmailUtil {
 			msg.setSubject(emailBo.getSubject());
 			msg.setSentDate(new Date());
 			msg.setContent(emailBo.format(ees[i]), "text/html;charset=utf-8");
-			// Send the message
+			//Send the message
 			Transport.send(msg);
 		}
 	}

+ 2 - 2
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -162,7 +162,7 @@ public interface OrderNewService {
 	int technicianBackOrder(String orderNo);
 	List<OrderDunTaskBo> selectAllOrderDun();
 	void updateOrderDun(TOrderDun tDun);
-	void sendEmail(String orderNo,String dunId) throws UnsupportedEncodingException, MessagingException;
-	void addNotic(String orderNo,Integer type);
+	void addNoticAndSendEmail(String orderNo, OrderDunTaskBo t, Integer code)throws UnsupportedEncodingException, MessagingException;
+	
 	
 }

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

@@ -258,11 +258,12 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		Map<String, Object> params = new HashMap<String, Object>();
 		if(pageSize==null||pageSize<0)pageSize=10;
 		if(pageNo==null||pageNo<0)pageNo=1;
-		if (specially!=null&&(specially==0||specially==5)) {
+		if (specially!=null&&(specially==0||specially==2||specially==5)) {
 			params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
 		}else if(specially!=null&&specially==4){
 			params.put("distribution",distribution);
 		}
+			//0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询
 			params.put("specially",specially);
 		
 		if (StringUtils.isNotBlank(name)) params.put("name", name);
@@ -302,11 +303,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		ob.setBackStatus(0);//待处理
 		ob.setInitiate(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
 		ob.setAccept(tOrder.getSalesmanId());
-		// 新增站内消息
-		addNotic(orderNo,NoticeStatus.ORDER_BACK.getCode());
-		// 发送邮件
 		try {
-			sendEmail(orderNo,null);
+			addNoticAndSendEmail(orderNo, null, NoticeStatus.ORDER_BACK.getCode());
 		} catch (UnsupportedEncodingException | MessagingException e) {
 			LoggerUtils.error(getClass(), "发送邮件失败", e);
 		}
@@ -315,18 +313,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 
-	public void addNotic(String orderNo,Integer type) {
-		String id=TokenManager.getAdminId()==null?"1":TokenManager.getAdminId();
-		AdminListBo a = adminMapper.getDeptNameByAid(id);
-		String str=NoticeStatus.getValueByCode(type)+": 订单编号 -"+orderNo+", 操作人:"+a.getDepartmentName()+"-"+a.getName()+"。";
-		Notice n =new Notice();
-		n.setId(UUID.randomUUID().toString());
-		n.setAid(id);
-		n.setNoticeType(type);
-		n.setContent(str);
-		n.setReaded(0);//未读
-		noticeMapper.insertSelective(n);
-	}
+	
 
 
 
@@ -383,7 +370,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		t.setResult("");
 		TOrderNew tOrder=new TOrderNew(); 
 		tOrder.setOrderNo(t.getOrderNo());
-		tOrder.setOrderStatus(OrderNewState.YTD.getCode());
+		//tOrder.setOrderStatus(OrderNewState.YTD.getCode());
 		tOrderNewMapper.updateByPrimaryKeySelective(tOrder);
 		return tOrderRefundMapper.insertSelective(t);
 	}
@@ -462,7 +449,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Override
 	public int deleteOrderNew(String orderNo) {
 		TOrderNew t=tOrderNewMapper.selectByPrimaryKey(orderNo);
-		if (t.getOrderStatus()==OrderNewState.YBH.getCode()||t.getOrderStatus()==OrderNewState.YTD.getCode()) {
+		if (t.getOrderStatus()==OrderNewState.YBH.getCode()||t.getOrderStatus()==OrderNewState.YTD.getCode()||
+				t.getOrderStatus()==OrderNewState.DQD.getCode()||t.getOrderStatus()==OrderNewState.QDSHJJ.getCode()) {
 			t.setOrderNo(orderNo);
 			t.setDeleteSign(1);//作废
 			return tOrderNewMapper.updateByPrimaryKeySelective(t);
@@ -491,6 +479,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			Map<String, Object> params = new HashMap<String, Object>();
 			if(pageSize==null||pageSize<0)pageSize=10;
 			if(pageNo==null||pageNo<0)pageNo=1;
+			params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
 			if (StringUtils.isNotBlank(name)) params.put("name", name);
 			if (StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);
 			if (StringUtils.isNotBlank(starTime)) params.put("starTime", starTime);
@@ -572,10 +561,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			return -1;
 		}
 		t.setOrderStatus(OrderNewState.YBH.getCode());
-		//sendEmail
-		addNotic(orderNo,NoticeStatus.ORDER_BACK.getCode());
 		try {
-			sendEmail(orderNo,null);
+			addNoticAndSendEmail(orderNo, null, NoticeStatus.ORDER_BACK.getCode());
 		} catch (UnsupportedEncodingException | MessagingException e) {
 			LoggerUtils.error(getClass(), "发送邮件失败", e);
 		}
@@ -595,19 +582,30 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	}
 
 
-
-	@Override
-	public void  sendEmail(String orderNo,String dunId) throws UnsupportedEncodingException, MessagingException{
-		String id=TokenManager.getAdminId()==null?"1":TokenManager.getAdminId();
-		AdminListBo a = adminMapper.getDeptNameByAid(id);
-		TOrderNewBo b  = tOrderNewMapper.getSaleIdByOno(orderNo);
+	public void addNotic(String orderNo,Integer type,AdminListBo a,TOrderNewBo b) {
+		LoggerUtils.debug(logger, "======================站内消息发送启动===================");
+		 String id="1";
+		if (type==NoticeStatus.ORDER_DUN.getCode())  id=b.getSalesmanId();
+		if (type==NoticeStatus.ORDER_BACK.getCode())  id=TokenManager.getAdminId()==null?"1":TokenManager.getAdminId();
+		String str=NoticeStatus.getValueByCode(type)+": 订单编号 -"+orderNo+", 操作人:"+a.getDepartmentName()+"-"+a.getName()+"。";
+		Notice n =new Notice();
+		n.setId(UUID.randomUUID().toString());
+		n.setAid(b.getSalesmanId());
+		n.setNoticeType(type);
+		n.setContent(str);
+		n.setReaded(0);//未读
+		noticeMapper.insertSelective(n);
+	}
+	
+	public void  sendEmail(String orderNo,String dunId,AdminListBo a,TOrderNewBo b) throws UnsupportedEncodingException, MessagingException{
+		LoggerUtils.debug(logger, "======================邮件信息发送===================");
 		String content = "<div>客户名称: "+ b.getUserName() +"</div><div>订单编号: " + orderNo + "</div>";
 		String tite="订单驳回";
 			if(StringUtils.isNotBlank(dunId)) {
 				TOrderDun tDun=tOrderDunMapper.selectByPrimaryKey(dunId);
 				content +="<div>催收时间: " +  new SimpleDateFormat("yyyy-MM-dd").format(tDun.getCreateTime()) +
 						"</div><div>催收科目: " + OrderDunSubject.getValueByCode(tDun.getDunSubject()) +
-						"</div><div>催收情况: " + (tDun.getDunStatus()==1?"已完成":"未完成") +"</div>";
+						"</div><div>催收情况: " + (tDun.getDunStatus()==2?"已完成":"已启动") +"</div>";
 				tite="催收通知";
 			}
 			//发送驳回邮件
@@ -616,6 +614,21 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			SendEmailUtil.getInstance().send(bo);
 			LoggerUtils.debug(logger, "=========================================发送邮件成功");
 	}
+
+
+	
+	
+	@Override
+	public void addNoticAndSendEmail(String orderNo,OrderDunTaskBo t,Integer type)
+			throws UnsupportedEncodingException, MessagingException {
+		TOrderNewBo b  = tOrderNewMapper.getSaleIdByOno(type==NoticeStatus.ORDER_DUN.getCode()?t.getOrderNo():orderNo);
+		 String id="1";
+		if (type==NoticeStatus.ORDER_DUN.getCode())  id=b.getSalesmanId();
+		if (type==NoticeStatus.ORDER_BACK.getCode())  id=TokenManager.getAdminId()==null?"1":TokenManager.getAdminId();
+		AdminListBo a = adminMapper.getDeptNameByAid(id);
+		 sendEmail(type==NoticeStatus.ORDER_DUN.getCode()?t.getOrderNo():orderNo, t==null?null:t.getId(), a, b);
+		 addNotic(type==NoticeStatus.ORDER_DUN.getCode()?t.getOrderNo():orderNo,type,a, b);
+	}
 	
 	
 }