Browse Source

付全款代码修改

anderx 6 years ago
parent
commit
7b8c3dd90d

+ 1 - 6
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1050,9 +1050,7 @@
   		<if test='o.liquidationStatus != null and o.liquidationStatus != ""'>
 	  	and o.liquidation_status = #{o.liquidationStatus,jdbcType=INTEGER}
 	  	</if>
-  		<if test='o.liquidationStatus == null or o.liquidationStatus == ""'>
-	  	and o.liquidation_status &lt; 2
-	  	</if>
+  		
   		<if test='o.orderNo != null and o.orderNo != ""'>
 	  	and o.order_no = #{o.orderNo,jdbcType=VARCHAR}
 	  	</if>
@@ -1095,9 +1093,6 @@
 	  	<if test='o.liquidationStatus != null and o.liquidationStatus != ""'>
 	  	and o.liquidation_status = #{o.liquidationStatus,jdbcType=VARCHAR}
 	  	</if>
-  		<if test='o.liquidationStatus == null or o.liquidationStatus == ""'>
-	  	and o.liquidation_status &lt; 2
-	  	</if>
   		<if test='o.orderNo != null and o.orderNo != ""'>
 	  	and o.order_no = #{o.orderNo,jdbcType=VARCHAR}
 	  	</if>

+ 15 - 16
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -209,21 +209,22 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			//发放给技术员如果付完款所有参与这个项目任务的人都会有结算奖
 			//获得所有的任务负责人
 			List<TOrderTask> l = taskMapper.getReceiverByOid(billNew.getOrderNo());
-			if(null == l || l.size() == 0){
-				return -3;//没有给将任务分给咨询师(技术员)
-			}
+//			取消没有技术员不能支付全款
+//			if(null == l || l.size() == 0){
+//				return -3;//没有给将任务分给咨询师(技术员)
+//			}
 			for (TOrderTask tOrderTask : l) {
-				if(null == tOrderTask ||null == tOrderTask.getTaskReceiver()){
-					return -3;
-				}
-				bonus.setTaskId(tOrderTask.getId());//任务id
-				bonus.setGrantTarget(tOrderTask.getTaskReceiver());
-				bonus.setGrantType(1);
-				int c = bonusMapper.checkByOnoAndSub(bonus);
-				//不存在就设置
-				if(c==0){
-					bonus.setId(UUID.randomUUID().toString());
-					bonusMapper.insertSelective(bonus);
+				if(null != tOrderTask &&null != tOrderTask.getTaskReceiver()){
+					bonus.setTaskId(tOrderTask.getId());//任务id
+					bonus.setGrantTarget(tOrderTask.getTaskReceiver());
+					bonus.setGrantType(1);
+					int c = bonusMapper.checkByOnoAndSub(bonus);
+					//不存在就设置
+					if(c==0){
+						bonus.setId(UUID.randomUUID().toString());
+						bonusMapper.insertSelective(bonus);
+					}
+					
 				}
 				
 			}
@@ -246,10 +247,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		}
 		//否则新增流水信息
 		billNew.setBillNo(UUID.randomUUID().toString().replaceAll("-", ""));
-		//System.out.println("*****************"+billNew.getBillNo());
 		billNew.setCreater(TokenManager.getAdminId());
 		int result = billNewMapper.insertSelective(billNew);
-		
 		//修改订单结算金额和结算状态
 		//如果已经首付并且流程状态是没有派给咨询师的修改流程状态为4
 		TOrderNew orderNew = new TOrderNew();

+ 37 - 2
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -1,6 +1,7 @@
 package com.goafanti.order.service.impl;
 
 import java.lang.reflect.InvocationTargetException;
+import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -39,6 +40,7 @@ import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.TOrderTaskBo;
 import com.goafanti.order.bo.TOrderTaskDetailBo;
 import com.goafanti.order.bo.TOrderTaskListBo;
+import com.goafanti.order.enums.BonusSubject;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.enums.ProjectNewStage;
 import com.goafanti.order.service.OrderProjectService;
@@ -167,6 +169,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			contactBook.setMobile(t.getContactMobile());
 			organizationContactBookMapper.insertSelective(contactBook);
 		}
+		//新增结算奖金信息
+		checkSettlementAward(tn,task);
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		try {
 			if(StringUtils.isNotBlank(t.getStartDate()))task.setTaskStartTime(sdf.parse(t.getStartDate()));
@@ -193,15 +197,46 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		return 1;
 	}
 
+	private void checkSettlementAward(TOrderNew tn,TOrderTask task) {
+		if(task.getTaskStatus()==TaskState.COMPLETE.getCode()&&tn.getTotalAmount().compareTo(tn.getSettlementAmount())==0) {
+			List<TOrderTask> l = tOrderTaskMapper.getReceiverByOid(tn.getOrderNo());
+//					取消没有技术员不能支付全款
+//					if(null == l || l.size() == 0){
+//						return -3;//没有给将任务分给咨询师(技术员)
+//					}
+			for (TOrderTask tOrderTask : l) {
+				if(null != tOrderTask &&null != tOrderTask.getTaskReceiver()){
+					TOrderBonus bonus = new TOrderBonus();
+					bonus.setId(UUID.randomUUID().toString());
+					bonus.setOrderNo(tn.getOrderNo());
+					bonus.setGrantBy(tn.getFinanceId());
+					bonus.setBonusSubject(BonusSubject.WK.getCode());//12
+					bonus.setTaskId(tOrderTask.getId());//任务id
+					bonus.setGrantTarget(tOrderTask.getTaskReceiver());
+					bonus.setGrantType(1);
+					int c = tOrderBonusMapper.checkByOnoAndSub(bonus);
+					//不存在就设置
+					if(c==0){
+						bonus.setId(UUID.randomUUID().toString());
+						tOrderBonusMapper.insertSelective(bonus);
+					}
+					
+				}
+				
+			}
+		}
+	}
+
 	private void meanwhileUpdateOrder(TOrderTask task) {
+		
 		if (task.getMain()==1) {//是否是主要项目
 			//更改订单项目状态
 			TOrderNew tNew=new TOrderNew();
 			tNew.setProjectStatus(task.getProjectStatus());
 			tNew.setOrderNo(task.getOrderNo());
 			tOrderNewMapper.updateByPrimaryKeySelective(tNew);
-			//新增奖金信息
-			System.out.println(task.getProjectStatus());
+			
+			
 			if (task.getProjectStatus()==ProjectNewStage.YTJ.getCode()||task.getProjectStatus()==ProjectNewStage.LS.getCode()||
 					task.getProjectStatus()==ProjectNewStage.GS.getCode()) {
 				TOrderBonus tb=new TOrderBonus();