|
|
@@ -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("");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|