Browse Source

变更流程修改开发

anderx 3 years ago
parent
commit
bb1611e3c5

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

@@ -221,6 +221,7 @@ public class OrderChangeApiController extends CertifyApiController {
 	}
 	/**
 	 * 变更修改
+	 * @param changeType 0发起修改 1财务修改
 	 */
 	@RequestMapping(value = "/updateOrderChange", method = RequestMethod.POST)
 	public Result orderChangeDetails(NewOrderChangeBo t ,Integer changeType,String startRemarks){

+ 9 - 8
src/main/java/com/goafanti/order/enums/OrderChangeProcess.java

@@ -11,14 +11,15 @@ import java.util.Map;
 public enum OrderChangeProcess {
 
 	YXY(0,"营销员"),
-	YXGLY(1,"营销管理员"),
-	JSY(2,"技术员"),
-	JSJL(3, "技术经理"),
-	JSZJ(4, "技术总监"),
-	CWZY(5, "财务专员"),
-	CWZJ(6, "财务总监 "),
-	ZC(7, "总裁"),
-	DSZ(8, "董事长"),
+	YXJL(1,"营销经理"),
+	YXGLY(2,"营销管理员"),
+	JSY(3,"技术员"),
+	JSJL(4, "技术经理"),
+	JSZJ(5, "技术总监"),
+	CWZY(6, "财务专员"),
+	CWZJ(7, "财务总监 "),
+	ZC(8, "总裁"),
+	DSZ(9, "董事长"),
 	INVALID(10, "无效");
 
 	private OrderChangeProcess(Integer code, String desc) {

+ 89 - 57
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -256,63 +256,86 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		if (status==2) {
 			//变更类型 0退单退款 1项目及金额变更 2仅项目变更 3仅金额变更 4重报 5赠送 6退单不退款 7仅变更合同
 			if(nb.getType() !=null){
-				//仅合同变更只需要 营销管理员与财务专员审核
 				if(nb.getType()==OrderChangeType.JBGGT.getCode()){
-					if(nb.getProcessState()==1){
-						nb.setProcessState(5);
-					}else if(nb.getProcessState()==5){
+					//仅合同图片修改:营销-营销总经理
+					if(nb.getProcessState()==OrderChangeProcess.YXGLY.getCode()){
+						nb.setProcessState(OrderChangeProcess.YXGLY.getCode());
+					}else if(nb.getProcessState()==OrderChangeProcess.YXGLY.getCode()){
 						nb.setStatus(4);
 						pushCompleteOrderChange(nb);
 						return 1;
 					}
-				}else {
-					if(nb.getProcessState()==8) {//董事长项目变更通过
-						nb.setStatus(2);
-					}
-					if (nb.getChangeAmount().compareTo(new BigDecimal("0.2"))<0) {//小于则总裁通过,大于则董事长
-						if(nb.getProcessState()==7) {//总裁项目变更通过
-							nb.setStatus(2);
+				} else {
+/*				 	 赠送:营销-经理-总经理审核-财务(已收款情况)-总裁
+				 	 重报:营销-经理-总经理审核-技术员-财务-财务总监-总裁
+					仅项目:营销-经理-总经理审核-技术员-技术总监-财务-财务总监-总裁
+				 项目&金额:营销-经理-总经理审核-技术员-经理经理-技术总监-财务-财务总监-总裁
+				  退单退款:营销-经理-总经理审核-技术员-经理经理-技术总监-财务-财务总监-总裁-董事长(大于2K,需董事长审核)-财务退票
+				 退单不退款:营销-经理-总经理审核-技术员-经理经理-技术总监-财务-财务总监-总裁-财务退票
+					仅金额:营销-经理-总经理审核-技术总监-财务-财务总监-总裁
+				 */
+					if (nb.getProcessState()==OrderChangeProcess.YXJL.getCode()){
+						nb.setProcessState(OrderChangeProcess.YXGLY.getCode());
+					}else if (nb.getProcessState()==OrderChangeProcess.YXGLY.getCode()){
+						if (nb.getType()==OrderChangeType.CB.getCode()||nb.getType()==OrderChangeType.JXMBG.getCode()||
+								nb.getType()==OrderChangeType.XMJJEBG.getCode()||nb.getType()==OrderChangeType.TDTK.getCode()||
+								nb.getType()==OrderChangeType.TDBTK.getCode()){
+							if (orderExamineMapper.checkCountStatus(orderNo, null, null) < 1) {
+								insertOrderExamine(orderNo);
+							} else {
+								orderExamineMapper.updateByOrderNo(orderNo, null);
+							}
+							nb.setProcessState(OrderChangeProcess.JSY.getCode());
+						}else if (nb.getType()==OrderChangeType.JJEBG.getCode()){
+							nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
+						}else if (nb.getType()==OrderChangeType.JJEBG.getCode()){
+							nb.setProcessState(OrderChangeProcess.CWZY.getCode());
 						}
-					}else {
-						if(nb.getProcessState()==7) {
-							nb.setProcessState(nb.getProcessState()+1);
+					}else if (nb.getProcessState()==OrderChangeProcess.JSY.getCode()){
+						if (nb.getType()==OrderChangeType.CB.getCode()){
+							nb.setProcessState(OrderChangeProcess.CWZY.getCode());
+						}else if (nb.getType()==OrderChangeType.JXMBG.getCode()){
+							nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
+						}else if (nb.getType()==OrderChangeType.XMJJEBG.getCode()||nb.getType()==OrderChangeType.TDTK.getCode()||
+								nb.getType()==OrderChangeType.TDBTK.getCode()){
+							nb.setProcessState(OrderChangeProcess.JSJL.getCode());
 						}
-					}
-					//营销管理通过则设置技术管理员通过表
-					if(nb.getProcessState()==1){
-						if (orderExamineMapper.checkCountStatus(orderNo,null,null)<1) {
-							insertOrderExamine(orderNo);
-						} else {
-							orderExamineMapper.updateByOrderNo(orderNo,null);
+					}else if (nb.getProcessState()==OrderChangeProcess.JSJL.getCode()){
+						nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
+					}else if (nb.getProcessState()==OrderChangeProcess.JSZJ.getCode()){
+						nb.setProcessState(OrderChangeProcess.CWZY.getCode());
+					}else if (nb.getProcessState()==OrderChangeProcess.CWZY.getCode()){
+						if (nb.getType()==OrderChangeType.ZS.getCode()){
+							nb.setProcessState(OrderChangeProcess.ZC.getCode());
+						}else {
+							nb.setProcessState(OrderChangeProcess.CWZJ.getCode());
 						}
-						nb.setProcessState(nb.getProcessState()+1);
-					}
-					//必须放置在咨询师与咨询师经理前,否则会直接通过不走咨询师管理员
-					if(nb.getProcessState()==4||nb.getProcessState()==5) {
-						nb.setProcessState(nb.getProcessState()+1);
-					}else if (nb.getProcessState()==6){
+					}else if (nb.getProcessState()==OrderChangeProcess.CWZJ.getCode()){
+						//财务总监审核,曹津不走总裁走董事长
 						TOrderNew tOrderNew = tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
-						if (tOrderNew.getSalesmanId().equals(AFTConstants.CAOJIN_AID)){
-							nb.setProcessState(8);
-						} else{
-							nb.setProcessState(7);
+						if (tOrderNew.getSalesmanId().equals(AFTConstants.CAOJIN_AID)) {
+							nb.setProcessState(OrderChangeProcess.DSZ.getCode());
+						}else {
+							nb.setProcessState(OrderChangeProcess.ZC.getCode());
 						}
-					}
-					if(nb.getProcessState()==2){//咨询师
-						//找出当时人的审核改为通过
-						orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),0);
-						//全部通过了则跳下个流程
-						if (orderExamineMapper.checkCountStatus(orderNo,0,0)<1) {
-							nb.setProcessState(nb.getProcessState()+1);
-						}
-					}
-					if(nb.getProcessState()==3){//咨询师经理
-						//找出当时人的审核改为通过
-						orderExamineMapper.updateByOrderNoAndAid(orderNo,TokenManager.getAdminId(),1);
-						//全部通过了则跳下个流程
-						if (orderExamineMapper.checkCountStatus(orderNo,1,0)<1) {
-							nb.setProcessState(nb.getProcessState()+1);
+					}else if (nb.getProcessState()==OrderChangeProcess.ZC.getCode()){
+						if (nb.getType()==OrderChangeType.TDTK.getCode()) {
+							if (nb.getChangeAmount().compareTo(new BigDecimal("0.2")) < 0) {
+								//小于则总裁通过,大于则董事长
+								nb.setStatus(2);
+							}else {
+								nb.setProcessState(OrderChangeProcess.DSZ.getCode());
+							}
+						}else if (nb.getType()==OrderChangeType.TDBTK.getCode()){
+							nb.setStatus(2);
+						}else {
+							nb.setStatus(4);
+							pushCompleteOrderChange(nb);
+							return 1;
 						}
+
+					}else if (nb.getProcessState()==OrderChangeProcess.DSZ.getCode()){
+						nb.setStatus(2);
 					}
 				}
 			}
@@ -369,7 +392,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		//获取客户信息
 		TOrderNewBo o=tOrderNewMapper.getSaleIdByOno(nb.getOrderNo());
 		//获取接收者
-		//流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长
+		//流程状态 0=营销员,1=营销经理,2=营销管理员,3=技术员,4=技术经理,5=技术总监,6=财务专员,7=财务总监,8=总裁,9=董事长
 		List<String> alist = new ArrayList<>();
 		//获取部门负责财务人员
 		switch (nb.getProcessState()) {
@@ -377,41 +400,45 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			alist.add(o.getSalesmanId());
 			break;
 		case 1:
-			alist.addAll(adminMapper.listNameByDepAndName(a.getDepartmentId(), AFTConstants.SALESMAN_ADMIN));
+			Admin saleaman = adminMapper.selectByPrimaryKey(o.getSalesmanId());
+			alist.add(saleaman.getManagerId());
 			break;
 		case 2:
-			alist.addAll(tOrderTaskMapper.listNameByDepAndName(o.getOrderNo(),0));
+			alist.addAll(adminMapper.listNameByDepAndName(a.getDepartmentId(), AFTConstants.SALESMAN_ADMIN));
 			break;
 		case 3:
-			alist.addAll(tOrderTaskMapper.listNameByDepAndName(o.getOrderNo(),1));
+			alist.addAll(tOrderTaskMapper.listNameByDepAndName(o.getOrderNo(),0));
 			break;
 		case 4:
+			alist.addAll(tOrderTaskMapper.listNameByDepAndName(o.getOrderNo(),1));
+			break;
+		case 5:
 			for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN)) {
 				alist.add(admin.getId());
 			}
 			break;
-		case 5:
+		case 6:
 			alist.add(o.getFinanceId());
 			break;
-		case 6:
+		case 7:
 			for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.FINANCE_ADMIN)) {
 				alist.add(admin.getId());
 			}
 			break;
-		case 7:
+		case 8:
 			if(nb.getStatus()==2) {
 				alist.add(o.getFinanceId());
 			}else {
-				for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.CED)) {
+				for (Admin admin : adminMapper.selectAdminByRoleType(AFTConstants.CED)) {
 					alist.add(admin.getId());
 				}
 			}
 			break;
-		case 8:
+		case 9:
 			if(nb.getStatus()==2) {
 				alist.add(o.getFinanceId());
 			}else {
-				for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.APPROVAL_DECISION)) {
+				for (Admin admin : adminMapper.selectAdminByRoleType(AFTConstants.APPROVAL_DECISION)) {
 					alist.add(admin.getId());
 				}
 			}
@@ -567,7 +594,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			noc.setChangeAmount(t.getChangeAmount());
 			noc.setApplicant(t.getApplicant());
 			noc.setStatus(1);//订单置为正常
-			noc.setProcessState(1);//流程置为营销管理员
+			noc.setProcessState(OrderChangeProcess.YXJL.getCode());
 			noc.setDepName(t.getDepName());
 			OrderChangeLog ocl=new OrderChangeLog();
 			ocl.setAuditor(TokenManager.getAdminId());
@@ -595,6 +622,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		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();