|
@@ -1,14 +1,12 @@
|
|
|
package com.goafanti.common.utils;
|
|
package com.goafanti.common.utils;
|
|
|
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.io.UnsupportedEncodingException;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.UUID;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
import javax.mail.MessagingException;
|
|
import javax.mail.MessagingException;
|
|
|
|
|
|
|
|
import com.goafanti.admin.bo.AdminListBo;
|
|
import com.goafanti.admin.bo.AdminListBo;
|
|
|
|
|
+import com.goafanti.common.bo.OrderExamineBo;
|
|
|
import com.goafanti.common.bo.OrderOperator;
|
|
import com.goafanti.common.bo.OrderOperator;
|
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.dao.*;
|
|
import com.goafanti.common.dao.*;
|
|
@@ -18,7 +16,9 @@ import com.goafanti.core.shiro.token.TokenManager;
|
|
|
import com.goafanti.order.bo.NewOrderChangeBo;
|
|
import com.goafanti.order.bo.NewOrderChangeBo;
|
|
|
import com.goafanti.order.bo.TOrderNewBo;
|
|
import com.goafanti.order.bo.TOrderNewBo;
|
|
|
import com.goafanti.order.enums.OrderChangeProcess;
|
|
import com.goafanti.order.enums.OrderChangeProcess;
|
|
|
|
|
+import com.goafanti.order.enums.OrderChangeType;
|
|
|
import com.goafanti.order.enums.ProcessStatus;
|
|
import com.goafanti.order.enums.ProcessStatus;
|
|
|
|
|
+import com.goafanti.organization.bo.OrganizationListOut;
|
|
|
import org.apache.ibatis.annotations.Param;
|
|
import org.apache.ibatis.annotations.Param;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
@@ -37,11 +37,24 @@ public class AsyncUtils {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private TOrderNewMapper tOrderNewMapper;
|
|
private TOrderNewMapper tOrderNewMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ private TOrderTaskMapper tOrderTaskMapper;
|
|
|
|
|
+ @Autowired
|
|
|
private NewOrderChangeMapper newOrderChangeMapper;
|
|
private NewOrderChangeMapper newOrderChangeMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private TOrderInvoiceMapper tOrderInvoiceMapper;
|
|
|
|
|
|
|
+ private OrderExamineMapper orderExamineMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
- private TOrderTaskMapper tOrderTaskMapper;
|
|
|
|
|
|
|
+ private TaskAttributionLogMapper taskAttributionLogMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TTaskLogMapper tTaskLogMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private DepartmentMapper departmentMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private OrderChangeLogMapper orderChangeLogMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private TChangeTaskMapper tChangeTaskMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private RoleMapper roleMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -135,62 +148,11 @@ public class AsyncUtils {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 切换审核人员
|
|
|
|
|
- * @param depId 部门编号
|
|
|
|
|
- * @param aid 切换后审核人
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public void updateExamineName( String depId, String aid) {
|
|
|
|
|
- tOrderNewMapper.updateExamineName(3,depId,aid,null);
|
|
|
|
|
- newOrderChangeMapper.updateExamineName(OrderChangeProcess.JSZJ.getCode(),depId,aid,null);
|
|
|
|
|
- tOrderInvoiceMapper.updateExamineName(0,depId,aid,null);
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- *
|
|
|
|
|
- * @param type 1营销管理 2公司管理 3财务管理 4咨询管理 5咨询师更换名称 6咨询师经理更换名称
|
|
|
|
|
- * @param id 管理员id
|
|
|
|
|
- * @param roleType
|
|
|
|
|
- */
|
|
|
|
|
- public void updateListExamineName(Integer type, String id, String roleType) {
|
|
|
|
|
- Admin admin = adminMapper.selectByPrimaryKey(id);
|
|
|
|
|
- String depId=admin.getDepartmentId();
|
|
|
|
|
- String names="";
|
|
|
|
|
- if (type==1){
|
|
|
|
|
- names=getNames(type,depId, roleType);
|
|
|
|
|
- tOrderNewMapper.updateExamineName(ProcessStatus.YPYXGLY.getCode(),depId,null,names);
|
|
|
|
|
- newOrderChangeMapper.updateExamineName(OrderChangeProcess.YXGLY.getCode(),depId,null,names);
|
|
|
|
|
- tOrderInvoiceMapper.updateExamineName(1,depId,null,names);
|
|
|
|
|
- }else if (type==2){
|
|
|
|
|
- tOrderInvoiceMapper.updateListExamineName(type,depId,roleType);
|
|
|
|
|
- }else if (type==3){
|
|
|
|
|
- names=getNames(type,depId, roleType);
|
|
|
|
|
- newOrderChangeMapper.updateExamineName(OrderChangeProcess.CWZJ.getCode(),depId,null,names);
|
|
|
|
|
- }else if (type==4){
|
|
|
|
|
- names=getNames(type,depId, roleType);
|
|
|
|
|
- tOrderNewMapper.updateExamineName(ProcessStatus.YPZXSGLY.getCode(),depId,null,names);
|
|
|
|
|
- newOrderChangeMapper.updateExamineName(OrderChangeProcess.JSZJ.getCode(),depId,null,names);
|
|
|
|
|
- }else if (type==5){
|
|
|
|
|
- newOrderChangeMapper.updateTaskExamineName(admin.getId(),admin.getId(),OrderChangeProcess.JSY.getCode());
|
|
|
|
|
- }else if (type==6){
|
|
|
|
|
- newOrderChangeMapper.updateTaskExamineName(admin.getId(),admin.getId(),OrderChangeProcess.JSJL.getCode());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- private String getNames(Integer type,String depId, String roleType) {
|
|
|
|
|
- StringBuffer str=new StringBuffer();
|
|
|
|
|
- List<Admin> admins = adminMapper.selectAdminByRoleType(roleType);
|
|
|
|
|
- for (Admin admin : admins) {
|
|
|
|
|
- if (type==1&&admin.getDepartmentId().equals(depId)){
|
|
|
|
|
- str = str.append(admin.getName()).append(",");
|
|
|
|
|
- }else if(type!=1){
|
|
|
|
|
- str = str.append(admin.getName()).append(",");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (str.length()>1)return str.substring(0,str.length()-1);
|
|
|
|
|
- else return "暂无";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
*
|
|
*
|
|
@@ -290,4 +252,319 @@ public class AsyncUtils {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param date 日期
|
|
|
|
|
+ * @param admin 原本管理员
|
|
|
|
|
+ * @param tadmin 转交管理员
|
|
|
|
|
+ */
|
|
|
|
|
+ public void pushTechTransfer(Admin admin,Admin tadmin,Date date) {
|
|
|
|
|
+ //获取旧人员与新人员的角色
|
|
|
|
|
+ List<String> useType=adminMapper.getAdminRoleListByAid(admin.getId());
|
|
|
|
|
+ List<String> newType=adminMapper.getAdminRoleListByAid(tadmin.getId());
|
|
|
|
|
+ String aid=admin.getId();
|
|
|
|
|
+ String transferId=tadmin.getId();
|
|
|
|
|
+ if (useType.contains(AFTConstants.TECH)&&newType.contains(AFTConstants.TECH)){
|
|
|
|
|
+ //System.out.println("同咨询师");
|
|
|
|
|
+ List<Integer> list = newOrderChangeMapper.selectProcess(3, aid);
|
|
|
|
|
+ tOrderTaskMapper.updateDimissionTransfer(aid, transferId, 0);
|
|
|
|
|
+ orderExamineMapper.updateDimissionTransfer(aid, transferId,0);
|
|
|
|
|
+ pushChangeProcessZXS(list);
|
|
|
|
|
+ }else if (useType.contains(AFTConstants.TECH)&&newType.contains(AFTConstants.TECH_MANAGER)){
|
|
|
|
|
+// System.out.println("不同职业");
|
|
|
|
|
+ List<Integer> list = newOrderChangeMapper.selectProcess(3, aid);
|
|
|
|
|
+ tOrderTaskMapper.updateDimissionTransfer(aid, transferId, 3);
|
|
|
|
|
+ orderExamineMapper.updateDimissionTransfer(aid, transferId,3);
|
|
|
|
|
+ List<Integer> list2 = newOrderChangeMapper.selectProcess(4, transferId);
|
|
|
|
|
+ //如果转交后订单全通过了,则变更+1
|
|
|
|
|
+ pushChangeProcessZXS(list);
|
|
|
|
|
+ pushChangeProcessZXSJL(list2);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (useType.contains(AFTConstants.TECH_MANAGER)&&newType.contains(AFTConstants.TECH_MANAGER)){
|
|
|
|
|
+// System.out.println("同咨询师经理");
|
|
|
|
|
+ List<Integer> list = newOrderChangeMapper.selectProcess(4, aid);
|
|
|
|
|
+ tOrderTaskMapper.updateDimissionTransfer(aid, transferId, 1);
|
|
|
|
|
+ tOrderTaskMapper.updateDimissionTransferManager(aid, transferId);
|
|
|
|
|
+ orderExamineMapper.updateDimissionTransfer(aid, transferId,1);
|
|
|
|
|
+ pushChangeProcessZXSJL(list);
|
|
|
|
|
+ }else if (useType.contains(AFTConstants.TECH_MANAGER)&&newType.contains(AFTConstants.TECH)){
|
|
|
|
|
+// System.out.println("不同职业");
|
|
|
|
|
+ //获取转交前的
|
|
|
|
|
+ List<Integer> list = newOrderChangeMapper.selectProcess(4, aid);
|
|
|
|
|
+ tOrderTaskMapper.updateDimissionTransfer(aid, transferId, 4);
|
|
|
|
|
+ tOrderTaskMapper.updateDimissionTransferManager(aid, null);
|
|
|
|
|
+ orderExamineMapper.updateDimissionTransfer(aid, transferId,4);
|
|
|
|
|
+ List<Integer> list2 = newOrderChangeMapper.selectProcess(3, transferId);
|
|
|
|
|
+ pushChangeProcessZXSJL(list);
|
|
|
|
|
+ pushChangeProcessZXS(list2);
|
|
|
|
|
+ }
|
|
|
|
|
+ taskAttributionLogMapper.insertList(aid, transferId, date);
|
|
|
|
|
+ tTaskLogMapper.updateDimissionTransfer(aid, transferId);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void pushChangeProcessZXSJL(List<Integer> list) {
|
|
|
|
|
+ if(!list.isEmpty()){
|
|
|
|
|
+ Date date =new Date();
|
|
|
|
|
+ for (Integer i : list) {
|
|
|
|
|
+ NewOrderChangeBo changeBo = newOrderChangeMapper.selectById(i);
|
|
|
|
|
+ pushZXSJL(changeBo,date,1);
|
|
|
|
|
+ pushOrderCangeProcess(changeBo);
|
|
|
|
|
+ newOrderChangeMapper.updateByPrimaryKeySelective(changeBo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ public void pushZXS(NewOrderChangeBo nb, Date date,Integer type) {
|
|
|
|
|
+ int zxs=orderExamineMapper.checkCountStatus(nb.getOrderNo(),0,null);
|
|
|
|
|
+ if (zxs>0){
|
|
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSY.getCode());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ if(type==1){
|
|
|
|
|
+ date.setTime(date.getTime()+100);
|
|
|
|
|
+ addOrderChangeLog("无咨询师自动通过", 2, nb.getOrderNo(), nb.getId(), date);
|
|
|
|
|
+ }
|
|
|
|
|
+ pushZXSJL(nb,date,1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ public void pushZXSJL(NewOrderChangeBo nb,Date date,Integer type) {
|
|
|
|
|
+ int zxsjl=orderExamineMapper.checkCountStatus(nb.getOrderNo(),1,0);
|
|
|
|
|
+ if (nb.getType()== OrderChangeType.XMJJEBG.getCode()||
|
|
|
|
|
+ nb.getType()==OrderChangeType.TDTK.getCode()||
|
|
|
|
|
+ nb.getType()==OrderChangeType.TDBTK.getCode()||
|
|
|
|
|
+ nb.getType()==OrderChangeType.CB.getCode()||
|
|
|
|
|
+ nb.getType()==OrderChangeType.JXMBG.getCode()){
|
|
|
|
|
+ if (zxsjl>0){
|
|
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSJL.getCode());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ if (type==1){
|
|
|
|
|
+ date.setTime(date.getTime()+100);
|
|
|
|
|
+ addOrderChangeLog("无咨询师经理自动通过", 2, nb.getOrderNo(), nb.getId(),date);
|
|
|
|
|
+ }
|
|
|
|
|
+ //重报 没有技术员跳入财务
|
|
|
|
|
+ if (nb.getType()==OrderChangeType.CB.getCode()){
|
|
|
|
|
+ nb.setProcessState(OrderChangeProcess.CWZY.getCode());
|
|
|
|
|
+ //项目变更没有跳入技术总监
|
|
|
|
|
+ }else{
|
|
|
|
|
+ nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void addOrderChangeLog(String remarks, Integer status, String orderNo, Integer id,Date date) {
|
|
|
|
|
+ if (date ==null)date=new Date();
|
|
|
|
|
+ OrderChangeLog ocl = new OrderChangeLog();
|
|
|
|
|
+ ocl.setAuditor(TokenManager.getAdminId());
|
|
|
|
|
+ ocl.setOrderNo(orderNo);
|
|
|
|
|
+ ocl.setRemarks(remarks);
|
|
|
|
|
+ ocl.setChangeId(id);
|
|
|
|
|
+ ocl.setStatus(status);
|
|
|
|
|
+ ocl.setCreateTime(date);
|
|
|
|
|
+ orderChangeLogMapper.insertSelective(ocl);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private void pushChangeProcessZXS(List<Integer> list) {
|
|
|
|
|
+ if(!list.isEmpty()){
|
|
|
|
|
+ Date date =new Date();
|
|
|
|
|
+ for (Integer i : list) {
|
|
|
|
|
+ NewOrderChangeBo changeBo = newOrderChangeMapper.selectById(i);
|
|
|
|
|
+ pushZXS(changeBo,date,1);
|
|
|
|
|
+ pushOrderCangeProcess(changeBo);
|
|
|
|
|
+ newOrderChangeMapper.updateByPrimaryKeySelective(changeBo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ public void pushOrderCangeProcess(NewOrderChange noc) {
|
|
|
|
|
+ if (noc.getProcessState()== OrderChangeProcess.YXY.getCode()){
|
|
|
|
|
+ TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
|
|
+ noc.setExamineName(ton.getSalesmanName());
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.YXJL.getCode()){
|
|
|
|
|
+ TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
|
|
+ Admin saleman = adminMapper.selectByPrimaryKey(ton.getSalesmanId());
|
|
|
|
|
+ Admin manager = adminMapper.selectByPrimaryKey(saleman.getManagerId());
|
|
|
|
|
+ noc.setExamineName(manager.getName());
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.YXGLY.getCode()){
|
|
|
|
|
+ TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
|
|
+ StringBuffer str=new StringBuffer();
|
|
|
|
|
+ List<Admin> admins = adminMapper.listAdminBydepIdAndRoleType(ton.getOrderDep(),AFTConstants.SALESMAN_ADMIN);
|
|
|
|
|
+ if (admins.isEmpty()){
|
|
|
|
|
+ OrganizationListOut dep = departmentMapper.selectAllById(ton.getOrderDep());
|
|
|
|
|
+ admins = adminMapper.listAdminBydepIdAndRoleType(dep.getSuperId(),AFTConstants.SALESMAN_ADMIN);
|
|
|
|
|
+ }
|
|
|
|
|
+ for (Admin admin : admins) {
|
|
|
|
|
+ if (!str.toString().contains(admin.getName()))str.append(admin.getName()).append(",");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (str.length()>0)noc.setExamineName(str.substring(0,str.length()-1));
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.JSY.getCode()){
|
|
|
|
|
+ List<OrderExamineBo> os = orderExamineMapper.selectByOrderNo(noc.getOrderNo(), 0);
|
|
|
|
|
+ StringBuffer str=new StringBuffer();
|
|
|
|
|
+ for (OrderExamineBo o : os) {
|
|
|
|
|
+ if (o.getStatus()==0){
|
|
|
|
|
+ if (!str.toString().contains(o.getName()))str.append(o.getName()).append(",");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (str.length()>0)noc.setExamineName(str.substring(0,str.length()-1));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.JSJL.getCode()){
|
|
|
|
|
+ List<OrderExamineBo> os = orderExamineMapper.selectByOrderNo(noc.getOrderNo(), 1);
|
|
|
|
|
+ StringBuffer str=new StringBuffer();
|
|
|
|
|
+ for (OrderExamineBo o : os) {
|
|
|
|
|
+ if (o.getStatus()==0){
|
|
|
|
|
+ if (!str.toString().contains(o.getName()))str.append(o.getName()).append(",");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (str.length()>0)noc.setExamineName(str.substring(0,str.length()-1));
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.JSZJ.getCode()){
|
|
|
|
|
+ StringBuffer str=new StringBuffer();
|
|
|
|
|
+ List<Admin> admins = adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN);
|
|
|
|
|
+ for (Admin a : admins) {
|
|
|
|
|
+ str=str.append(a.getName()).append(",");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (str.length()>0)noc.setExamineName(str.substring(0,str.length()-1));
|
|
|
|
|
+
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.CWZY.getCode()){
|
|
|
|
|
+ TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
|
|
+ OrganizationListOut dep = departmentMapper.selectAllById(ton.getOrderDep());
|
|
|
|
|
+ noc.setExamineName(dep.getFinanceName());
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.CWZJ.getCode()){
|
|
|
|
|
+ StringBuffer str=new StringBuffer();
|
|
|
|
|
+ List<Admin> admins = adminMapper.getAdminRoleTypeList(AFTConstants.FINANCE_ADMIN);
|
|
|
|
|
+ for (Admin a : admins) {
|
|
|
|
|
+ str=str.append(a.getName()).append(",");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (str.length()>0)noc.setExamineName(str.substring(0,str.length()-1));
|
|
|
|
|
+
|
|
|
|
|
+ }else if (noc.getProcessState()== OrderChangeProcess.ZC.getCode()||noc.getProcessState()== OrderChangeProcess.DSZ.getCode()){
|
|
|
|
|
+ if(noc.getStatus()==2){
|
|
|
|
|
+ TOrderNewBo ton = tOrderNewMapper.getSaleIdByOno(noc.getOrderNo());
|
|
|
|
|
+ OrganizationListOut dep = departmentMapper.selectAllById(ton.getOrderDep());
|
|
|
|
|
+ noc.setExamineName(dep.getFinanceName());
|
|
|
|
|
+ }else {
|
|
|
|
|
+ noc.setExamineName("");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 处理修改角色对于订单、变更审核人员的修改
|
|
|
|
|
+ * @param ad
|
|
|
|
|
+ * @param usead
|
|
|
|
|
+ * @param roleIds
|
|
|
|
|
+ */
|
|
|
|
|
+ public void pushRoleUpdateExamine(Admin ad, Admin usead, List<String> roleIds, List<Role> useRole) {
|
|
|
|
|
+ List<Role> roles = roleMapper.selectByIdList(roleIds);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.SALESMAN);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.SALESMAN_MANAGER);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.SALESMAN_ADMIN);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.TECH);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.TECH_MANAGER);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.TECH_ADMIN);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.FINANCE);
|
|
|
|
|
+ updateExamineByRole(ad, usead, useRole, roles,AFTConstants.FINANCE_ADMIN);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void updateExamineByRole(Admin ad, Admin usead, List<Role> useRole, List<Role> roles, String roleType) {
|
|
|
|
|
+ boolean updateParam=false;
|
|
|
|
|
+ int updatedep =0;
|
|
|
|
|
+ if (!ad.getName().equals(usead.getName())){
|
|
|
|
|
+ updateParam=true;
|
|
|
|
|
+ }
|
|
|
|
|
+ boolean newDEP=Rolescontains(roles,roleType);
|
|
|
|
|
+ boolean useDep=Rolescontains(useRole,roleType);
|
|
|
|
|
+ if (newDEP||useDep){
|
|
|
|
|
+ if (roleType.equals(AFTConstants.SALESMAN_ADMIN)){
|
|
|
|
|
+ if (ad.getDepartmentId().equals(usead.getDepartmentId())){
|
|
|
|
|
+ updatedep=1;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ updatedep=2;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (newDEP&&useDep){
|
|
|
|
|
+ //新旧为同一个,修改当前就可以了
|
|
|
|
|
+ if (updatedep ==1&& updateParam){
|
|
|
|
|
+ updateOrderAndChangeExamine(ad, roleType);
|
|
|
|
|
+ //新旧不是同一个,俩个都要修改
|
|
|
|
|
+ }else if (updatedep ==2){
|
|
|
|
|
+ updateOrderAndChangeExamine(ad, roleType);
|
|
|
|
|
+ updateOrderAndChangeExamine(usead, roleType);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if (!newDEP&&useDep){
|
|
|
|
|
+ updateOrderAndChangeExamine(usead, roleType);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.SALESMAN)){
|
|
|
|
|
+ if (!ad.getManagerId().equals(usead.getManagerId())){
|
|
|
|
|
+ updateOrderAndChangeExamine(ad, roleType);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else {
|
|
|
|
|
+ if (updateParam){
|
|
|
|
|
+ updateOrderAndChangeExamine(ad, roleType);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private boolean Rolescontains(List<Role> roles, String roleType) {
|
|
|
|
|
+ for (Role role : roles) {
|
|
|
|
|
+ if (role.getRoleType().equals(Integer.valueOf(roleType))){
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ /**
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param ad
|
|
|
|
|
+ * @param roleType
|
|
|
|
|
+ */
|
|
|
|
|
+ public void updateOrderAndChangeExamine(Admin ad, String roleType) {
|
|
|
|
|
+ if (roleType.equals(AFTConstants.SALESMAN_ADMIN)){
|
|
|
|
|
+ updateSalesmanAdminExamine(ad.getId());
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.SALESMAN)){
|
|
|
|
|
+ updateSalesmanExamine(ad.getManagerId());
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.SALESMAN_MANAGER)){
|
|
|
|
|
+// 订单 0=营销员,1=经理,2=营销管理员,3=财务专员,4=总裁,5=技术总监,6部分分配,7全部分配
|
|
|
|
|
+// 变更 流程状态 0=营销员,1=营销经理,2=营销管理员,3=技术员,4=技术经理,5=技术总监,6=财务专员,7=财务总监,8=总裁,9=董事长
|
|
|
|
|
+ updateSalesmanManagerExamine(ad);
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.FINANCE)){
|
|
|
|
|
+ updateFinanceExamine(ad.getId());
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.TECH)) {
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(ad.getId(), OrderChangeProcess.JSY.getCode());
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.TECH_MANAGER)) {
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(ad.getId(), OrderChangeProcess.JSJL.getCode());
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.TECH_ADMIN)) {
|
|
|
|
|
+ tOrderNewMapper.updateExamineById(null, ProcessStatus.YPZXSGLY.getCode());
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(null, OrderChangeProcess.JSZJ.getCode());
|
|
|
|
|
+ }else if (roleType.equals(AFTConstants.FINANCE_ADMIN)) {
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(null, OrderChangeProcess.CWZJ.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void updateSalesmanExamine(String id) {
|
|
|
|
|
+ tOrderNewMapper.updateExamineById(id,ProcessStatus.YPYXY.getCode());
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(id,OrderChangeProcess.YXY.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void updateSalesmanAdminExamine(String id) {
|
|
|
|
|
+ tOrderNewMapper.updateExamineById(id,ProcessStatus.YPYXGLY.getCode());
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(id,OrderChangeProcess.YXGLY.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void updateSalesmanManagerExamine(Admin ad) {
|
|
|
|
|
+ updateSalesmanManagerExamine(ad.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private void updateSalesmanManagerExamine(String id) {
|
|
|
|
|
+ tOrderNewMapper.updateExamineById(id, ProcessStatus.YPYXJL.getCode());
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(id, OrderChangeProcess.YXJL.getCode());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void updateFinanceExamine(String id) {
|
|
|
|
|
+ tOrderNewMapper.updateExamineById(id,ProcessStatus.YPCWZY.getCode());
|
|
|
|
|
+ newOrderChangeMapper.updateExamineById(id,OrderChangeProcess.CWZY.getCode());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|