Browse Source

订单变更BUG修复

anderx 3 years ago
parent
commit
07e4881e6d

+ 1 - 1
src/main/java/com/goafanti/common/dao/OrderExamineMapper.java

@@ -113,7 +113,7 @@ public interface OrderExamineMapper {
      * @param aid
      * @param type 0咨询师 1经理
      */
-    void deleteByAidAndStatus(@Param("aid")String aid,  @Param("type")Integer type);
+    void deleteByAidAndStatus(@Param("orderNo")String orderNo,@Param("aid")String aid,  @Param("type")Integer type);
 
 
     void updateBack(@Param("aid")String aid, @Param("taskReceiverId")String taskReceiverId);

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

@@ -340,7 +340,16 @@
 
   <delete id="deleteByAidAndStatus">
     delete  from order_examine
-    where status=0 and  aid=#{aid} and type=#{type}
+    where status=0
+    <if  test="orderNo != null">
+      and  order_no=#{orderNo}
+    </if>
+    <if  test="aid != null">
+    and  aid=#{aid}
+    </if>
+    <if  test="type != null">
+    and type=#{type}
+    </if>
   </delete>
   <update id="updateBack">
     update order_examine

+ 48 - 27
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -187,27 +187,46 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	/*
 	 * 新增审核流程中的
 	 */
-	private void insertOrderExamine(String orderNo) {
+	private void pushOrderExamine(String orderNo,Integer type) {
+		orderExamineMapper.deleteByAidAndStatus(orderNo,null,null);
 		List<TOrderTaskBo> list=tOrderTaskMapper.selectOrderTaskAll(orderNo,null);
 		for (TOrderTaskBo t : list) {
-			if (t.getConsultantId()!=null) {
+			if (type==OrderChangeType.CB.getCode()||type==OrderChangeType.JXMBG.getCode()){
+				Integer receiverType=null;
+				if (t.getTaskReceiver().equals(t.getConsultantId())) {
+					receiverType=0;
+				}else if  (t.getTaskReceiver().equals(t.getConsultantId())){
+					receiverType=1;
+				}
 				OrderExamine o=new OrderExamine();
 				o.setAid(t.getConsultantId());
 				o.setOrderNo(orderNo);
 				o.setCreateTime(new Date());
-				o.setType(0);//咨询师
-				o.setStatus(0);//正常
-				orderExamineMapper.insertSelective(o);
-			}
-			if (t.getManagerId()!=null) {
-				OrderExamine o=new OrderExamine();
-				o.setAid(t.getManagerId());
-				o.setOrderNo(orderNo);
-				o.setCreateTime(new Date());
-				o.setType(1);//咨询师经理
+				o.setType(receiverType);//咨询师
 				o.setStatus(0);//正常
 				orderExamineMapper.insertSelective(o);
+			}else if (type==OrderChangeType.XMJJEBG.getCode()||type==OrderChangeType.TDBTK.getCode() ||
+						type==OrderChangeType.TDTK.getCode()){
+				if (t.getConsultantId()!=null) {
+					OrderExamine o=new OrderExamine();
+					o.setAid(t.getConsultantId());
+					o.setOrderNo(orderNo);
+					o.setCreateTime(new Date());
+					o.setType(0);//咨询师
+					o.setStatus(0);//正常
+					orderExamineMapper.insertSelective(o);
+				}
+				if (t.getManagerId()!=null) {
+					OrderExamine o=new OrderExamine();
+					o.setAid(t.getManagerId());
+					o.setOrderNo(orderNo);
+					o.setCreateTime(new Date());
+					o.setType(1);//咨询师经理
+					o.setStatus(0);//正常
+					orderExamineMapper.insertSelective(o);
+				}
 			}
+
 		}
 	}
 
@@ -275,30 +294,32 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 								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);
-							}
+							//刷新订单审核技术员与经理
+							pushOrderExamine(orderNo,nb.getType());
+
 							int zxs=orderExamineMapper.checkCountStatus(orderNo,0,null);
 							int zxsjl=orderExamineMapper.checkCountStatus(orderNo,1,null);
 							if (zxs>0){
 								nb.setProcessState(OrderChangeProcess.JSY.getCode());
 							}else {
-								//重报 没有技术员跳入财务
-								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()||
+								 if (nb.getType()==OrderChangeType.XMJJEBG.getCode()||
 										nb.getType()==OrderChangeType.TDTK.getCode()||
-										nb.getType()==OrderChangeType.TDBTK.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 {
-										nb.setProcessState(OrderChangeProcess.JSZJ.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{
+											nb.setProcessState(OrderChangeProcess.JSZJ.getCode());
+										}
 									}
 								}
 							}

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

@@ -255,11 +255,11 @@ public class NewRoleServiceImpl extends BaseMybatisDao<RoleMapper> implements Ne
 			}else if (useType==0&&newType==1){//下转上 下清空
 				tOrderTaskMapper.updateDimissionTransfer(aid, transferId, 3);
 				orderExamineMapper.updateDimissionTransfer(aid, transferId,newType);
-				orderExamineMapper.deleteByAidAndStatus(aid,useType);
+				orderExamineMapper.deleteByAidAndStatus(null,aid,useType);
 			}else if (useType==1&&newType==0){//上转下  上清空
 				tOrderTaskMapper.updateDimissionTransfer(aid, transferId, 4);
 				orderExamineMapper.updateDimissionTransfer(aid, transferId,newType);
-				orderExamineMapper.deleteByAidAndStatus(aid,useType);
+				orderExamineMapper.deleteByAidAndStatus(null,aid,useType);
 			}
 			List<Integer> clist=new ArrayList<>();
 			for (TChangeTask tct : list) {