Browse Source

离职技术员、经理转交修改开发

anderx 3 years ago
parent
commit
ba7e9f8733

+ 2 - 0
src/main/java/com/goafanti/common/dao/TChangeTaskMapper.java

@@ -56,4 +56,6 @@ public interface TChangeTaskMapper {
     void updateSuperServiceYear(TChangeTask tChangeTask);
 
     void updateChangeSuperServiceYear(TChangeTask tChangeTask);
+
+
 }

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

@@ -485,4 +485,5 @@
     set a.service_year =x.counts
     where a.id =x.change_split_super
   </update>
+    <update id="updateDimissionTransfer"></update>
 </mapper>

+ 4 - 2
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -1188,7 +1188,9 @@
     where order_no = #{orderNo,jdbcType=VARCHAR} and task_status &gt; 0 and super_id is null
   </select>
   <update id="updateDimissionTransfer" parameterType="java.lang.String">
-    update t_order_task set task_allocator= #{aid,jdbcType=VARCHAR},task_receiver= #{transferId,jdbcType=VARCHAR}
+    update t_order_task a,admin b,t_change_task c
+    set task_allocator= #{aid,jdbcType=VARCHAR},task_receiver= #{transferId,jdbcType=VARCHAR},
+        a.receiver_name=b.name,c.receiver_name=b.name
     <if test="type==0">
       ,consultant_id=#{transferId,jdbcType=VARCHAR}
     </if>
@@ -1206,7 +1208,7 @@
     <if test="type==1">
       ,manager_id= null
     </if>
-    where task_receiver=#{aid,jdbcType=VARCHAR}
+    where task_receiver=#{aid,jdbcType=VARCHAR} and b.id=#{transferId,jdbcType=VARCHAR} and a.id=c.tid
   </update>
 
   <select id="selectEstimateCost" resultType="java.lang.String">

+ 210 - 0
src/main/java/com/goafanti/common/utils/AsyncUtils.java

@@ -9,6 +9,7 @@ import java.util.UUID;
 import javax.mail.MessagingException;
 
 import com.goafanti.admin.bo.AdminListBo;
+import com.goafanti.common.bo.OrderExamineBo;
 import com.goafanti.common.bo.OrderOperator;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.*;
@@ -18,7 +19,9 @@ import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.NewOrderChangeBo;
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.enums.OrderChangeProcess;
+import com.goafanti.order.enums.OrderChangeType;
 import com.goafanti.order.enums.ProcessStatus;
+import com.goafanti.organization.bo.OrganizationListOut;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -38,6 +41,21 @@ public class AsyncUtils {
 	private TOrderNewMapper tOrderNewMapper;
 	@Autowired
 	private TOrderTaskMapper tOrderTaskMapper;
+	@Autowired
+	private NewOrderChangeMapper newOrderChangeMapper;
+	@Autowired
+	private OrderExamineMapper orderExamineMapper;
+	@Autowired
+	private TaskAttributionLogMapper taskAttributionLogMapper;
+	@Autowired
+	private TTaskLogMapper tTaskLogMapper;
+	@Autowired
+	private DepartmentMapper departmentMapper;
+	@Autowired
+	private OrderChangeLogMapper orderChangeLogMapper;
+	@Autowired
+	private TChangeTaskMapper tChangeTaskMapper;
+
 
 
 
@@ -235,4 +253,196 @@ 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);
+			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);
+			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("");
+			}
+		}
+	}
 }

+ 3 - 79
src/main/java/com/goafanti/permission/service/impl/NewRoleServiceImpl.java

@@ -13,6 +13,7 @@ import java.util.UUID;
 import com.goafanti.common.bo.OrderExamineBo;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.model.*;
+import com.goafanti.common.utils.AsyncUtils;
 import com.goafanti.order.bo.NewOrderChangeBo;
 import com.goafanti.order.bo.TOrderTaskBo;
 import com.goafanti.order.enums.ChangeState;
@@ -70,7 +71,7 @@ public class NewRoleServiceImpl extends BaseMybatisDao<RoleMapper> implements Ne
 	@Autowired
 	private TOrderLogMapper	tOrderLogMapper;
 	@Autowired
-	private TChangeTaskMapper tChangeTaskMapper;
+	private AsyncUtils asyncUtils;
 	@Autowired
 	private NewOrderChangeMapper newOrderChangeMapper;
 
@@ -231,7 +232,7 @@ public class NewRoleServiceImpl extends BaseMybatisDao<RoleMapper> implements Ne
 				tOrderMidMapper.updateSalesmanId(aid, transferId);
 			}else if (s == roleResources.XMRW.getCode()) {
 				// 获取被转角色判断修改对应任务角色
-				pushTechTransfer(admin,tadmin,date);
+				asyncUtils.pushTechTransfer(admin,tadmin,date);
 
 			}else if (s==roleResources.QDYW.getCode()) {
 				roleResourcesMapper.updateDimissionTransfer(s,aid,transferId);
@@ -241,87 +242,10 @@ public class NewRoleServiceImpl extends BaseMybatisDao<RoleMapper> implements Ne
 	}
 
 
-	/**
-	 * @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);
-			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);
-			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 = orderChangeService.orderChangeDetailsById(i);
-				pushZXSJL(changeBo,date,1);
-				orderChangeService.pushOrderCangeProcess(changeBo);
-				newOrderChangeMapper.updateByPrimaryKeySelective(changeBo);
-			}
-		}
-	}
 
 
-	private void pushChangeProcessZXS(List<Integer> list) {
-		if(!list.isEmpty()){
-			Date date =new Date();
-			for (Integer i : list) {
-				NewOrderChangeBo changeBo = orderChangeService.orderChangeDetailsById(i);
-				pushZXS(changeBo,date,1);
-//				if (type==4)pushZXSJL(changeBo,date,1);
-					orderChangeService.pushOrderCangeProcess(changeBo);
-					newOrderChangeMapper.updateByPrimaryKeySelective(changeBo);
-			}
-		}
-	}
-	public void pushZXS(NewOrderChangeBo nb,  Date date,Integer type) {
-		orderChangeService.pushZXS( nb,   date, type);
-
-	}
-
-	public void pushZXSJL(NewOrderChangeBo nb,Date date,Integer type) {
-		orderChangeService.pushZXSJL(nb,date,type);
 
-	}
 
 
 	@Override