Browse Source

订单提交时新增总金额、项目金额总计、催款金额总计一致验证

anderx 3 years ago
parent
commit
0d9786ded0

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

@@ -55,4 +55,5 @@ public interface TOrderNewMapper {
     List<Map<String, Object>> selectOrderByuid(String uid);
 
     List<OutOrderSalesSource> orderSalesSource(InputOrderSalesSource in);
+
 }

+ 2 - 2
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -215,8 +215,8 @@ public class AdminNewOrderApiController extends CertifyApiController {
 				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "主项目"));
 				return res;
 			}
-			if (orderNewService.checkORderDun(t.getOrderNo())) {
-				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "催款信息"));
+			if (orderNewService.checkOrderAmount(t)) {
+				res.getError().add(buildError( "总金额、项目金额总计、催款金额总计必须一致"));
 				return res;
 			}
 		}

+ 1 - 1
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -157,7 +157,7 @@ public interface OrderNewService {
 	 */
 	void addTimingTaskNewDunNoticAndSendEmail( OutNewOrderDunBo o,Integer type);
 
-	boolean checkORderDun(String orderNo);
+	boolean checkOrderAmount(TOrderNewWithBLOBs t);
 
 	int updateFinance(String orderNo, String newFinance);
 	List<TOrderLogBo> selectOrderLog(String orderNo);

+ 19 - 6
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -1307,14 +1307,27 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 	@Override
-	public boolean checkORderDun(String orderNo) {
-		List<OutNewOrderDunBo> list=newOrderDunMapper.selectListNewOrderDun(orderNo,  null);
-		if (list==null||list.size()<1) {
-			return true;
-		}else {
-			return false;
+	public boolean checkOrderAmount(TOrderNewWithBLOBs t) {
+		BigDecimal orderAmount=t.getTotalAmount();
+		if (orderAmount==null){
+			TOrderNew tOrderNew=tOrderNewMapper.getOrderNewDetail(t.getOrderNo());
+			orderAmount=tOrderNew.getTotalAmount();
 		}
 
+		List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(t.getOrderNo());
+		List<OutNewOrderDunBo> tOrderDuns = newOrderDunMapper.selectListNewOrderDun(t.getOrderNo(),null);
+		BigDecimal taskAmount=new BigDecimal(0);
+		for (TOrderTaskBo tOrderTaskBo : tOrderTaskBos) {
+			taskAmount=taskAmount.add(tOrderTaskBo.getCommodityPrice().multiply(new BigDecimal(tOrderTaskBo.getCommodityQuantity())));
+		}
+		BigDecimal dunAmount=new BigDecimal(0);
+		for (OutNewOrderDunBo tOrderDun : tOrderDuns) {
+			dunAmount=dunAmount.add(tOrderDun.getMoney());
+		}
+		if (orderAmount.compareTo(taskAmount)==0&&orderAmount.compareTo(dunAmount)==0){
+			return false;
+		}
+		return true;
 	}
 
 	/**