Explorar o código

订单流程提醒开发

anderx %!s(int64=6) %!d(string=hai) anos
pai
achega
126fdea3e7

+ 3 - 2
src/main/java/com/goafanti/common/enums/NoticeStatus.java

@@ -39,10 +39,11 @@ public enum NoticeStatus {
 	ORDER_START(29,"订单审核发起"),
 	ORDER_APPROVA_YES(30,"订单特批通过"),
 	ORDER_APPROVA_NO(31,"订单特批驳回"),
-	ORDER_OUTSOURCE_YES(32,"订单特批通过"),
-	ORDER_OUTSOURCE_NO(33,"订单特批驳回"),
+	ORDER_OUTSOURCE_YES(32,"订单外包通过"),
+	ORDER_OUTSOURCE_NO(33,"订单外包驳回"),
 	ORDER_YES(34,"订单审核通过"),
 	ORDER_NO(35,"订单审核驳回"),
+	ORDER_TASK_TO(36,"项目任务分配"),
 	OTHER(0, "其他");
 
 	private NoticeStatus(Integer code, String desc) {

+ 1 - 1
src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java

@@ -165,7 +165,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		return res;
 	}
 	/**
-	 * 财务特批审核
+	 * 财务审核
 	 */
 	@RequestMapping(value="/financeApproval", method = RequestMethod.POST)
 	public Result financeApproval(String orderNo) {

+ 2 - 0
src/main/java/com/goafanti/order/enums/ProcessStatus.java

@@ -25,6 +25,8 @@ public enum ProcessStatus {
 	YQBFPZXSGLY(6,"已全部分派咨询师经理"),
 	/** 已派特批审核 **/
 	YPTPSH(7,"已派特批审核"),
+	/** 已派外包审核 **/
+	YPWBSH(8,"已派外包审核"),
 	/** 无效 **/
 	INVALID(10, "INVALID");
 	

+ 16 - 35
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -2,6 +2,7 @@ package com.goafanti.order.service.impl;
 
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
@@ -34,6 +35,7 @@ import com.goafanti.common.dao.TOrderTaskMapper;
 import com.goafanti.common.enums.NoticeStatus;
 import com.goafanti.common.enums.OrderLogProcess;
 import com.goafanti.common.error.BusinessException;
+import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.TOrderBack;
 import com.goafanti.common.model.TOrderBillNew;
@@ -58,6 +60,7 @@ import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.enums.refundState;
 import com.goafanti.order.service.FundManageOrderService;
+import com.goafanti.order.service.OrderNewService;
 import com.goafanti.organization.bo.OrganizationListOut;
 
 @Service
@@ -82,9 +85,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Autowired
 	private TOrderLogMapper	tOrderLogMapper;
 	@Autowired
-	JDBCIdGenerator	idGenerator;
-	@Autowired
-	NoticeMapper	noticeMapper;
+	private OrderNewService orderNewService;
 	@Autowired
 	private OrganizationManagementMapper	organizationManagementMapper;
 	Logger	logger	= LoggerFactory.getLogger(FundManagerOrderServiceImpl.class);
@@ -169,7 +170,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Override
 	public Integer updateReject(TOrderBack back) {
 		// 是否已经收款
-		checkDeleteSign(back.getOrderNo());
+		TOrderNew t=checkDeleteSign(back.getOrderNo());
 		BigDecimal bd = billNewMapper.getAmountByOid(back.getOrderNo());
 		if(bd.compareTo(new BigDecimal(0.0)) == 1){
 			return 0;//已经收款不能驳回
@@ -195,22 +196,9 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			back.setAccept(b.getSalesmanId());	//查看该订单的负责人	
 			addOrderLog(back.getOrderNo(), OrderLogProcess.BH.getCode());
 			c = backMapper.insertSelective(back);
-			
-			//发送站内消息
-			addNotic(back.getOrderNo(),NoticeStatus.ORDER_BACK.getCode(),b.getSalesmanId());
-			if(StringUtils.isNotBlank(b.getEmail())){ //邮箱不为空发送邮件
-				AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
-				//发送驳回邮件
-				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.getInstance().send(bo);
-				} catch (UnsupportedEncodingException e) {
-					e.printStackTrace();
-				} catch (MessagingException e) {
-					e.printStackTrace();
-				}
-			}
+			List<String> aids = new ArrayList<>();
+			aids.add(t.getSalesmanId());;
+			orderNewService.generalSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),t.getOrderNo(), TokenManager.getAdminId());
 		}
 		return c;
 	}
@@ -355,12 +343,12 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				}
 			}
 			//发送站内消息
-			addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),o.getSalesmanId());//给营销员
+			//addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),o.getSalesmanId());//给营销员
 			//根据订单编号获得所有的技术员
 			List<TOrderTask> l = taskMapper.getReceiverByOid(o.getOrderNo());
 			for (TOrderTask tOrderTask : l) {
 				if(null != tOrderTask && null != tOrderTask.getTaskReceiver()){
-					addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),tOrderTask.getTaskReceiver());//给技术员
+					//addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND.getCode(),tOrderTask.getTaskReceiver());//给技术员
 					//发邮件给技术员
 					if(StringUtils.isNotBlank(tOrderTask.getEmail())){
 						EmailBo emailBo = new EmailBo("同意退单", tOrderTask.getEmail(), tOrderTask.getName(), a.getDepartmentName(), a.getName(), content);
@@ -378,7 +366,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		}else{//审核拒绝
 			//给营销员发通知和邮件
 			TOrderNewBo o = tOrderNewMapper.agreeEmailData(refund.getId());
-			addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND_REFUSE.getCode(),o.getSalesmanId());//给营销员
+			//addNotic(o.getOrderNo(),NoticeStatus.ORDER_REFUND_REFUSE.getCode(),o.getSalesmanId());//给营销员
 			AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
 			
 			String content = "<div>退单编号: "+ refund.getId() +"</div><div>客户名称: " + o.getUserName() + "</div>";
@@ -470,18 +458,6 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		return 0;
 	}
 	
-	public void addNotic(String orderNo,Integer type,String aid) {
-		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(aid);//通知人
-		n.setNoticeType(type);
-		n.setContent(str);
-		n.setReaded(0);//未读
-		noticeMapper.insertSelective(n);
-	}
 	
 	private void updateCount(String orderNo){
 		//获得订单数据
@@ -511,6 +487,11 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		t.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
 		OrganizationListOut oo=organizationManagementMapper.selectAllById(new1.getOrderDep());
 		t.setFinanceId(oo.getFinanceId());
+		List<String> aids = new ArrayList<>();
+		for (Admin admin : adminMapper.getAdminRoleList("咨询师管理员")) {
+			aids.add(admin.getId());
+		}
+		orderNewService.generalSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),t.getOrderNo(), TokenManager.getAdminId());
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 

+ 4 - 2
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -187,7 +187,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 						if (orderExamineMapper.checkCountStatus(orderNo,0,0)<1) {
 							nb.setProcessState(nb.getProcessState()+1);
 						}
-					}else if(nb.getProcessState()==2){//咨询师
+					}
+				 if(nb.getProcessState()==2){//咨询师
 						//找出当时人的审核改为通过
 						orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),0);
 						//全部通过了则跳下个流程
@@ -197,7 +198,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 						if (orderExamineMapper.checkCountStatus(orderNo,1,0)<1) {
 							nb.setProcessState(nb.getProcessState()+1);
 						}
-					}else if(nb.getProcessState()==3){//咨询师经理
+					}
+				 if(nb.getProcessState()==3){//咨询师经理
 						//找出当时人的审核改为通过
 						orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),1);
 						//全部通过了则跳下个流程

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

@@ -453,15 +453,28 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		List<String> aids = new ArrayList<>();
 		Integer type=null;
 		if (orderStatus==OrderNewState.QDSHTG.getCode()) {
+			t.setOutsource(outsource);
 			if (t2.getApproval()==ApprovalNewState.FTP.getCode()||
 					t2.getApproval()==ApprovalNewState.TG.getCode()) {//如果通过分配给财务管理员
-				t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
 				if(outsource==0) {
+					t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
+					//如果是转的暂时不删除外包信息
 					aids.add(organizationManagementMapper.selectByPrimaryKey(t2.getOrderDep()).getFinanceId());
 				} else if(outsource==1) {
 					for (Admin admin : adminMapper.getAdminRoleList("外包审核员")) {
 						aids.add(admin.getId());
 					}
+					t.setProcessStatus(ProcessStatus.YPWBSH.getCode());
+					addOrderLog(orderNo, OrderLogProcess.FQWB.getCode());
+					//外包
+					o.setRefundStatus(0);
+					if(o.getId()==null) {
+						o.setCreateTime(new Date());
+						tOrderOutsourceMapper.insertSelective(o);
+					}else {
+						tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
+					}
+					
 				}
 				aids.add(organizationManagementMapper.selectByPrimaryKey(t2.getOrderDep()).getFinanceId());
 			}else {
@@ -471,28 +484,14 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				}
 			}
 			type=NoticeStatus.ORDER_YES.getCode();
-			if(outsource!=null&&outsource==1) {//通过外包
-				t.setOutsource(outsource);
-				addOrderLog(orderNo, OrderLogProcess.FQWB.getCode());
-			}else {
-				addOrderLog(orderNo, OrderLogProcess.SH.getCode());
-			}
-			
+			addOrderLog(orderNo, OrderLogProcess.SH.getCode());
 		}else if (orderStatus==OrderNewState.QDSHJJ.getCode()) {//如果不通过新增驳回
 				if (outsource==0) {//非外包
 				t.setProcessStatus(ProcessStatus.YPYXY.getCode());
 				addBackOrder(orderNo, reason);
 				addOrderLog(orderNo, OrderLogProcess.BH.getCode());
 			
-				}else if (outsource==1) {//外包
-					o.setRefundStatus(0);
-					if(o.getId()==null) {
-						o.setCreateTime(new Date());
-						tOrderOutsourceMapper.insertSelective(o);
-					}else {
-						tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
-					}
-				}
+				}else if (outsource==1) {}
 				aids.add(t2.getSalesmanId());
 				type=NoticeStatus.ORDER_NO.getCode();
 		}
@@ -596,11 +595,19 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		TOrderNew t=new TOrderNew();
 		TOrderNew t2=checkDeleteSign(orderNo);
 		t.setOrderNo(orderNo);
+		List<String> aids = new ArrayList<>();
+		Integer type=null;
 		if (confirm==2) {
 			t.setApproval(2);
 			if(t2.getOutsource()==0) {
 				t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
+				aids.add(organizationManagementMapper.selectByPrimaryKey(t2.getOrderDep()).getFinanceId());
+			}else {
+				for (Admin admin : adminMapper.getAdminRoleList("外包审核员")) {
+					aids.add(admin.getId());
+				}
 			}
+			type=NoticeStatus.ORDER_APPROVA_YES.getCode();
 			addOrderLog(orderNo, OrderLogProcess.TP.getCode());
 		} else {
 			t.setApproval(3);
@@ -608,7 +615,10 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			t.setProcessStatus(ProcessStatus.YPYXY.getCode());
 			addBackOrder(orderNo, reason);
 			addOrderLog(orderNo, OrderLogProcess.BH.getCode());
+			aids.add(t2.getSalesmanId());
+			type=NoticeStatus.ORDER_APPROVA_NO.getCode();
 		}
+		generalSendNoticeAndEmail(aids, type,t2.getOrderNo(), TokenManager.getAdminId());
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
@@ -823,6 +833,9 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		t.setProcessStatus(ProcessStatus.YPYXY.getCode());
 		t.setFinanceId("");
 		addBackOrder(orderNo, reason);
+		List<String> aids = new ArrayList<>();
+		aids.add(t.getSalesmanId());
+		generalSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),t.getOrderNo(), TokenManager.getAdminId());
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 

+ 8 - 0
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -3,6 +3,7 @@ package com.goafanti.order.service.impl;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -30,6 +31,7 @@ import com.goafanti.common.dao.TTaskHoursMapper;
 import com.goafanti.common.dao.TTaskLogMapper;
 import com.goafanti.common.dao.TaskLogMapper;
 import com.goafanti.common.dao.TaskProgressMapper;
+import com.goafanti.common.enums.NoticeStatus;
 import com.goafanti.common.enums.OrderLogProcess;
 import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.Admin;
@@ -56,6 +58,7 @@ import com.goafanti.order.bo.TaskProgressBo;
 import com.goafanti.order.enums.BonusSubject;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.enums.ProjectNewStage;
+import com.goafanti.order.service.OrderNewService;
 import com.goafanti.order.service.OrderProjectService;
 import com.goafanti.techproject.enums.TaskState;
 @Service
@@ -81,6 +84,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	@Autowired
 	private TaskLogMapper	taskLogMapper;
 	@Autowired
+	private OrderNewService	orderNewService;
+	@Autowired
 	private AdminMapper	adminMapper;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
@@ -110,6 +115,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			t.setConsultantId(null);
 		}
 		tOrderTaskMapper.updateByPrimaryKey(t);
+		List<String> aids = new ArrayList<>();
+		aids.add(taskReceiverId);
+		orderNewService.generalSendNoticeAndEmail(aids, NoticeStatus.ORDER_TASK_TO.getCode(),t.getOrderNo(), TokenManager.getAdminId());
 		updateOrder(t);
 		return 1;
 	}

+ 4 - 3
src/main/java/com/goafanti/order/service/impl/OutsourceOrgServiceImpl.java

@@ -107,20 +107,21 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 		TOrderNew t2=tOrderNewMapper.selectByPrimaryKey(o.getOrderNo());
 		List<String> aids = new ArrayList<>();
 		Integer type=null;
+		t.setOrderNo(o.getOrderNo());
 		if (o.getRefundStatus()==1) {
-			t.setOrderNo(o.getOrderNo());
 			t.setOrderStatus(2);//订单审核标记通过
 			t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
 			addOrderLog(o.getOrderNo(),OrderLogProcess.WBSH.getCode());
-			tOrderNewMapper.updateByPrimaryKeySelective(t);
 			aids.add(organizationManagementMapper.selectByPrimaryKey(t2.getOrderDep()).getFinanceId());
 			type=NoticeStatus.ORDER_OUTSOURCE_YES.getCode();
 		}else {
-			t.setOrderStatus(3);
+			t.setOrderStatus(1);
+			t.setProcessStatus(ProcessStatus.YPYXGLY.getCode());
 			addOrderLog(o.getOrderNo(),OrderLogProcess.WBBH.getCode());
 			aids.addAll(adminMapper.listNameByDepAndName(adminMapper.getDeptNameByAid(t2.getSalesmanId()).getDepartmentId(), "营销管理员"));
 			type=NoticeStatus.ORDER_OUTSOURCE_NO.getCode();
 		}
+		tOrderNewMapper.updateByPrimaryKeySelective(t);
 		orderNewService.generalSendNoticeAndEmail(aids, type,t2.getOrderNo(), TokenManager.getAdminId());
 		return tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
 	}