anderx пре 2 година
родитељ
комит
31f2396e24

+ 1 - 1
src/main/java/com/goafanti/common/enums/OrderLogProcess.java

@@ -35,7 +35,7 @@ public enum OrderLogProcess {
 	HYTPBH(22,"会员特批驳回"),
 	HYXMWC(23,"会员项目完成"),
 	DDZJ(24,"订单转交"),
-
+	XMZJSH(25, "项目总监审核"),
 	NOT(99,"未知"),
 	;
 

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

@@ -2044,7 +2044,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
      left join (select a.department_id depId,group_concat(a.name) name
         from admin a left join user_role b on a.id=b.uid left join `role` c on b.rid =c.id
         where c.role_type ='9996' and a.status ='0' group by a.department_id )yxgly on c.id =yxgly.depId
-     left join admin d on c.finance_id =d.id
+     left join (select order_no ,group_concat(aname)name from t_order_examine group by order_no ) d on a.order_no=d.order_no
      left join (select group_concat(a.name) name
         from admin a left join user_role b on a.id=b.uid left join `role` c on b.rid =c.id
         where c.role_type in ('99998','99988') and a.status ='0' ) zc on 1=1

+ 12 - 12
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -194,23 +194,23 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	@RequestMapping(value = "/updateServiceOrderNew",method = RequestMethod.POST)
 	public Result updateServiceOrder(TOrderNewWithBLOBs t,Integer isSubmit,String signDate){
 		Result res = new Result();
-		if (StringUtils.isBlank(t.getOrderNo())) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号"));
-			return res;
-		}
-		if (null == t.getTotalAmount() || null == t.getFirstAmount()) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额"));
-			return res;
-		}
-		if (StringUtils.isBlank(t.getContractPictureUrl())) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片"));
-			return res;
-		}
 		if (null == isSubmit) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "提交状态"));
 			return res;
 		}
 		if (isSubmit == 1) {
+			if (StringUtils.isBlank(t.getOrderNo())) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号"));
+				return res;
+			}
+			if (null == t.getTotalAmount() || null == t.getFirstAmount()) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额"));
+				return res;
+			}
+			if (StringUtils.isBlank(t.getContractPictureUrl())) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片"));
+				return res;
+			}
 			if (StringUtils.isBlank(t.getContacts())||StringUtils.isBlank(t.getContactMobile())){
 				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "联系人与电话"));
 				return res;

+ 47 - 11
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -71,6 +71,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Autowired
 	private DepartmentService departmentService;
 	@Autowired
+	private TOrderExamineMapper tOrderExamineMapper;
+	@Autowired
 	private AsyncUtils	asyncUtils;
 
 
@@ -208,10 +210,13 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				throw new BusinessException(new Error( "邮件发送失败,对方设置邮箱错误","邮件发送失败,对方设置邮箱错误"));
 			}
 			TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
-			orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
+			pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
 		}
 		return c;
 	}
+	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
+	}
 
 	@Override
 	public Integer addReceiptsFlow(TOrderBillNew billNew, String contractNo) {
@@ -482,7 +487,30 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		if (new1.getBackStatus()==3) {
 			t.setBackStatus(0);
 		}
+		//判断是否走入下一个流程
+		boolean flag=judgeOrderExamine(orderNo);
+		TOrderLog tl=new TOrderLog();
+		tl.setAid(TokenManager.getAdminId());
+		tl.setOrderNo(t.getOrderNo());
+		if (TokenManager.hasRole(AFTConstants.FINANCE)){
+			tl.setProcess(OrderLogProcess.CWPD.getCode());
+		}else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
+			tl.setProcess(OrderLogProcess.XMZJSH.getCode());
+		}
+		tl.setRemarks(remarks);
+		tOrderLogMapper.insertSelective(tl);
+		orderNewService.pushExamineName(t);
+		//如果全部派单完成才需要通知和走下个流程
+		if (flag){
+			pushNoticeAndEmail(t, new1);
+		}
+
+		return tOrderNewMapper.updateByPrimaryKeySelective(t);
+	}
+
+	private void pushNoticeAndEmail(TOrderNew t, TOrderNew new1) {
 		List<String> aids = new ArrayList<>();
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
 		if (new1.getApproval()==ApprovalNewState.ZCDSH.getCode()||
 				new1.getApproval()==ApprovalNewState.ZCBH.getCode()) {
 			t.setProcessStatus(ProcessStatus.YPTPSH.getCode());
@@ -505,24 +533,32 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			}
 		}else  {
 			t.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
+			//设置发送邮件标识
+			order.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
 			OrganizationListOut oo=departmentMapper.selectAllById(new1.getOrderDep());
 			t.setFinanceId(oo.getFinanceId());
 			for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN)) {
 				aids.add(admin.getId());
 			}
 		}
-		orderNewService.pushExamineName(t);
-		TOrderLog tl=new TOrderLog();
-		tl.setAid(TokenManager.getAdminId());
-		tl.setOrderNo(t.getOrderNo());
-		tl.setProcess(OrderLogProcess.CWPD.getCode());
-		tl.setRemarks(remarks);
-		tOrderLogMapper.insertSelective(tl);
-		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_YES.getCode(),order, TokenManager.getAdminId(),new1.getApproval());
-		return tOrderNewMapper.updateByPrimaryKeySelective(t);
+
+		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_YES.getCode(),order, TokenManager.getAdminId(), new1.getApproval());
 	}
 
+	private boolean judgeOrderExamine(String orderNo) {
+		List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
+		int max = tOrderExamines.size()+1;
+		int yes=0;
+		for (TOrderExamine e : tOrderExamines) {
+			if (e.getStatus()==1){
+				yes++;
+			}
+		}
+		if (yes==max){
+			return true;
+		}
+		return false;
+	}
 
 
 }

+ 7 - 3
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -524,7 +524,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			break;
 		}
 		//发送站内信息与邮件
-		orderNewService.pushGeneralSendNoticeAndEmail(alist, type, o, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(alist, type, o, TokenManager.getAdminId(),0);
+	}
+
+	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
 	}
 
 	/**
@@ -874,7 +878,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		Date date=new Date();
 		date.setTime(date.getTime()+500);
 		addOrderChangeLog("变更完成。", 4, nb.getOrderNo(), nb.getId(),date);
-		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
 		return 1;
 	}
 
@@ -910,7 +914,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		nb.setType(nob.getType());
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
 		addOrderChangeLog("变更财务退票。", 2, nob.getOrderNo(), nb.getId());
-		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o, TokenManager.getAdminId(),0);
 		nb.setStatus(4);
 		pushCompleteOrderChange(nb);
 		return 1;

+ 6 - 3
src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java

@@ -145,7 +145,10 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			}
 		}
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_INVPICE_START.getCode(),order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_INVPICE_START.getCode(),order, TokenManager.getAdminId(),0);
+	}
+	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
 	}
 
 	@SuppressWarnings("deprecation")
@@ -265,7 +268,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			addInvoiceLog(id,1);
 		}
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),0);
 		tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
 		if(examine==2)tOrderMidMapper.updateInvoice(t2.getOrderNo());
 		return 1;
@@ -335,7 +338,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		}
 		pushOrderInvoiceExamine(t);
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids,type,order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(aids,type,order, TokenManager.getAdminId(),0);
 		return tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
 	}
 	@Override

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

@@ -181,9 +181,24 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		te.setOrderNo(orderNo);
 		te.setServiceStatus(0);
 		tOrderExtendMapper.insertSelective(te);
+		addOrderExamine(t);
 		return tOrderNewMapper.insertSelective(t);
 	}
 
+	private void addOrderExamine(TOrderNew o) {
+		List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(o.getOrderNo());
+		if (tOrderExamines.isEmpty()){
+			OrganizationListOut dep = departmentMapper.selectAllById(o.getOrderDep());
+			List<TOrderExamine> list =new ArrayList<>();
+			list.add(new TOrderExamine(o.getOrderNo(),dep.getFinanceId(),dep.getFinanceName()));
+			List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.TECH_ADMIN);
+			for (Admin admin : admins) {
+				list.add(new TOrderExamine(o.getOrderNo(),admin.getId(),admin.getName()));
+			}
+			tOrderExamineMapper.insertBatch(list);
+		}
+	}
+
 	@Override
 	public InputAddTask addOrderTask(InputAddTask t) {
 		TOrderNew order=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
@@ -973,6 +988,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				tl.setProcess(OrderLogProcess.SH.getCode());
 				t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
 				//设置财务与技术总监通知
+				//为了处理旧数据,后期可以去掉新增
 				List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
 				if (tOrderExamines.isEmpty()){
 					OrganizationListOut dep = departmentMapper.selectAllById(t.getOrderDep());
@@ -1688,12 +1704,19 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Override
 	public  void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type, TOrderNewBo order, String adminId, Integer approval, Integer tid) {
 		AdminListBo a = adminMapper.getDeptNameByAid(adminId);
+		StringBuffer str=new StringBuffer();
 		String approvalType="";
 		String noticeTypeName = NoticeStatus.getValueByCode(type);
 		if (!approval.equals(ApprovalNewState.FTP.getCode())) {
 			approvalType="[特批]";
 		}
-		StringBuffer str=new StringBuffer(approvalType).append(noticeTypeName).append(":");
+		//只有到技术总监是派单,其他都是审核
+		if (order.getProcessStatus()==null||(!order.getProcessStatus().equals(ProcessStatus.YPZXSGLY))){
+			str=str.append("[审核]");
+		}else {
+			str=str.append("[派单]");
+		}
+		str=str.append(approvalType).append(noticeTypeName).append(":");
 		if (tid != null) {str=str.append("项目编号[").append(tid).append("],");}
 		str=str.append("客户名称[") .append(order.getUserName()).append("],");
 		if(StringUtils.isNotBlank(order.getContractNo())) {