anderx 1 год назад
Родитель
Сommit
91d89ad4df

+ 2 - 2
src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml

@@ -760,8 +760,8 @@
     <select id="releaseAndExpenseCount" resultType="com.goafanti.weChat.bo.releaseAndExpenseCountOut">
     <select id="releaseAndExpenseCount" resultType="com.goafanti.weChat.bo.releaseAndExpenseCountOut">
         select
         select
             a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,b.salesman_name salesmanName,b.dep_name depName,
             a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,b.salesman_name salesmanName,b.dep_name depName,
-            toc.max_duration maxDuration ,toc.actual_duration actualDuration ,
-            toc.exceed_duration exceedDuration, a.total_amount totalAmount,a.settlement_amount settlementAmount,b.bid_type bidType,
+            toc.actual_duration actualDuration ,
+            a.total_amount totalAmount,a.settlement_amount settlementAmount,b.bid_type bidType,
             c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,d.paymentAmount,c.days,c.amount expenseAmount
             c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,d.paymentAmount,c.days,c.amount expenseAmount
         from t_order_new a left join t_order_mid b on a.order_no =b.order_no
         from t_order_new a left join t_order_mid b on a.order_no =b.order_no
         left join t_order_public_release_count toc on a.order_no =toc.order_no
         left join t_order_public_release_count toc on a.order_no =toc.order_no

+ 23 - 0
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -790,6 +790,29 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 						orderYearMaxDurationMapper.insert(orderYearMaxDuration);
 						orderYearMaxDurationMapper.insert(orderYearMaxDuration);
 					}
 					}
 				}
 				}
+			}else {
+				//异常单处理
+				OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
+				orderYearMaxDuration.setYear(0);
+				orderYearMaxDuration.setOrderNo(orderNew.getOrderNo());
+				if (orderNew.getTotalAmount().compareTo(new BigDecimal(-1))==0){
+					orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
+					orderYearMaxDuration.setStatus(1);
+				}else {
+					BigDecimal maxDuration = pushMaxDuration(orderNew.getTotalAmount());
+					if (maxDuration.compareTo(new BigDecimal(-1))==0){
+						orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
+						orderYearMaxDuration.setStatus(1);
+					}
+					orderYearMaxDuration.setMaxDuration(maxDuration);
+					orderYearMaxDuration.setStatus(0);
+				}
+				int x = orderYearMaxDurationMapper.queryAllByCount(new OrderYearMaxDuration(orderNew.getOrderNo(), 0));
+				if (x>0){
+					orderYearMaxDurationMapper.updateByOrderNoAndYear(orderYearMaxDuration);
+				}else {
+					orderYearMaxDurationMapper.insert(orderYearMaxDuration);
+				}
 			}
 			}
 		}
 		}
 
 

+ 30 - 2
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -2059,9 +2059,37 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 					e.setExceedType(1);
 					e.setExceedType(1);
 				}
 				}
 			}
 			}
-			if (e.getMaxDuration()!=null){
-				if(e.getMaxDuration().equals("-1")){
+			//获取年份
+			if (StringUtils.isNotEmpty(e.getOrderNo())){
+				List<OrderYearMaxDuration> yearMaxDurationList = orderYearMaxDurationMapper.selectByOrderNo(e.getOrderNo());
+				int year = LocalDate.now().getYear();
+				OrderYearMaxDuration useOyd = null;
+				for (int i = 0; i < yearMaxDurationList.size(); i++) {
+					OrderYearMaxDuration oyd = yearMaxDurationList.get(i);
+					//年份为0不是会员直接获取跳出循环,否则获取当前年份,获取不到获取最后一年
+					if (oyd.getYear()==0){
+						useOyd=oyd;
+						break;
+					}else {
+						if (oyd.getYear().equals(year)){
+							useOyd = oyd;
+							break;
+						}
+						if(i==yearMaxDurationList.size()-1&&useOyd==null){
+							useOyd = yearMaxDurationList.get(i);
+						}
+					}
+
+				}
+				if(useOyd.getStatus()==1){
 					e.setMaxDuration("不限制");
 					e.setMaxDuration("不限制");
+				}else {
+					e.setMaxDuration(useOyd.getMaxDuration().toString());
+					if (useOyd.getMaxDuration().compareTo(new BigDecimal(e.getActualDuration()))>=0){
+						e.setExceedDuration("0");
+					}else {
+						e.setExceedDuration(new BigDecimal(e.getActualDuration()).subtract(useOyd.getMaxDuration()).toString());
+					}
 				}
 				}
 			}
 			}
 		});
 		});