|
@@ -188,6 +188,7 @@ public class PayOrderController {
|
|
|
if (list != null && list.size() > 0) {
|
|
|
if(list.get(0).containsKey("personnelName") && list.get(0).get("personnelName") !=null && list.get(0).get("personnelName").toString() !=""){
|
|
|
payOrder.setOilPersonnel(list.get(0).get("personnelName").toString());
|
|
|
+ payOrder.setOilPersonnelId(list.get(0).get("personnelId").toString());
|
|
|
payOrderMapper.insertSelective(payOrder);
|
|
|
resultData = ResultData.success(resultMap);
|
|
|
}else {
|
|
@@ -205,14 +206,19 @@ public class PayOrderController {
|
|
|
logger.info("加油员信息:"+ mapResultList.toString());
|
|
|
if(mapResultList != null && mapResultList.size() > 0){
|
|
|
String oilPersonnel = "";
|
|
|
+ String oilPersonnelId ="";
|
|
|
for (Map per : mapResultList){
|
|
|
if(per.containsKey("personnelName") && per.get("personnelName").toString() !=null && per.get("personnelName").toString() !=""){
|
|
|
oilPersonnel += per.get("personnelName").toString() +",";
|
|
|
+ oilPersonnelId += per.get("personnelId").toString() +",";
|
|
|
}
|
|
|
}
|
|
|
if(oilPersonnel !=""){
|
|
|
payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1)); //加油员
|
|
|
+ payOrder.setOilPersonnelId(oilPersonnelId.substring(0, oilPersonnelId.length()-1));
|
|
|
}
|
|
|
+// payOrder.setOilPersonnel(mapResultList.get(0).get("").toString()); //加油员
|
|
|
+// payOrder.setOilPersonnelId(oilPersonnelId.substring(0, oilPersonnelId.length()-1));
|
|
|
payOrderMapper.insertSelective(payOrder);
|
|
|
resultData = ResultData.success(resultMap);
|
|
|
}else {
|
|
@@ -436,7 +442,7 @@ public class PayOrderController {
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //标签方案优惠金额
|
|
|
BigDecimal dzkDiscountAmt = new BigDecimal(0); //电子卡优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0);
|
|
|
+ BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
|
|
|
//加油升数
|
|
@@ -470,14 +476,18 @@ public class PayOrderController {
|
|
|
case "1": //按加油升数
|
|
|
if(oilLiters.compareTo(discountAmt_B) ==1 || oilLiters.compareTo(discountAmt_B) ==0 ){
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(labelRuleDetailList.get(0).getDiscountLitersAmt()));
|
|
|
- discountAmt = oilLiters.multiply(new BigDecimal(labelRuleDetailList.get(0).getDiscountLitersAmt()));
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(new BigDecimal(labelRuleDetailList.get(0).getDiscountLitersAmt()));
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
break;
|
|
|
case "2": //按加油金额
|
|
|
if(receivableAmt.compareTo(discountAmt_B) ==1 || receivableAmt.compareTo(discountAmt_B) ==0 ){
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(labelRuleDetailList.get(0).getDiscountLitersAmt()));
|
|
|
- discountAmt = oilLiters.multiply(new BigDecimal(labelRuleDetailList.get(0).getDiscountLitersAmt()));
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(new BigDecimal(labelRuleDetailList.get(0).getDiscountLitersAmt()));
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
break;
|
|
@@ -486,7 +496,12 @@ public class PayOrderController {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+
|
|
|
+ //amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ amt = amt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(amt.toString().equals("0.00")){
|
|
|
+ amt = new BigDecimal("0.01");
|
|
|
+ }
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
//discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
@@ -558,7 +573,7 @@ public class PayOrderController {
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //营销方案优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0);
|
|
|
+ BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
BigDecimal gradeDiscountPriceAmt = new BigDecimal(0); //等级优惠价格
|
|
@@ -586,7 +601,9 @@ public class PayOrderController {
|
|
|
if(discountTerm.equals("1")){
|
|
|
if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
String vipDiscountyPlus = m.get("vipDiscountyPlus").toString();
|
|
@@ -595,13 +612,16 @@ public class PayOrderController {
|
|
|
//如果叠加等级优惠
|
|
|
discountPrice = discountPrice.subtract(gradeDiscountPriceAmt);
|
|
|
discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
+ amt = receivableAmt.subtract(discountAmt);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
}else if(discountTerm.equals("2")){
|
|
|
if(receivableAmt.compareTo(discountAmt_b) ==1 || receivableAmt.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
String vipDiscountyPlus = m.get("vipDiscountyPlus").toString();
|
|
@@ -610,13 +630,18 @@ public class PayOrderController {
|
|
|
//如果叠加等级优惠
|
|
|
discountPrice = discountPrice.subtract(gradeDiscountPriceAmt);
|
|
|
discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
+ amt = receivableAmt.subtract(discountAmt);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ //amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ amt = amt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(amt.toString().equals("0.00")){
|
|
|
+ amt = new BigDecimal("0.01");
|
|
|
+ }
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
//discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
@@ -702,7 +727,7 @@ public class PayOrderController {
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //营销方案优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0);
|
|
|
+ BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
BigDecimal gradeDiscountPriceAmt = new BigDecimal("0");
|
|
@@ -732,7 +757,9 @@ public class PayOrderController {
|
|
|
case "1": //按加油升数
|
|
|
if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+// discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
//会员活动是否开启:1是;0否'
|
|
|
if(customerMarkertPlanList.get(0).containsKey("discountSettingFlag") && customerMarkertPlanList.get(0).get("discountSettingFlag").toString() !="") {
|
|
@@ -746,7 +773,9 @@ public class PayOrderController {
|
|
|
boolean b = isActivityDay(discountType, discountDate);
|
|
|
if (b) {
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(discountActivityAmt));
|
|
|
- discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
}
|
|
@@ -757,7 +786,9 @@ public class PayOrderController {
|
|
|
case "2": //按加油金额
|
|
|
if(receivableAmt.compareTo(discountAmt_b) ==1 || receivableAmt.compareTo(discountAmt_b) ==0){
|
|
|
discountPrice = oilPrice.subtract(gasoilDiscountAmt_b);
|
|
|
- discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(gasoilDiscountAmt_b);
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
//会员活动是否开启:1是;0否'
|
|
|
if(customerMarkertPlanList.get(0).containsKey("discountSettingFlag") && customerMarkertPlanList.get(0).get("discountSettingFlag").toString() !="") {
|
|
@@ -771,7 +802,9 @@ public class PayOrderController {
|
|
|
boolean b = isActivityDay(discountType, discountDate);
|
|
|
if (b) {
|
|
|
discountPrice = oilPrice.subtract(new BigDecimal(discountActivityAmt));
|
|
|
- discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
+ amt = discountPrice.multiply(oilLiters);
|
|
|
+ discountAmt = receivableAmt.subtract(amt);
|
|
|
+ //discountAmt = oilLiters.multiply(new BigDecimal(discountActivityAmt));
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
|
|
@@ -788,9 +821,14 @@ public class PayOrderController {
|
|
|
//如果叠加等级优惠
|
|
|
discountPrice = discountPrice.subtract(gradeDiscountPriceAmt);
|
|
|
discountAmt = discountAmt.add(gradeDiscountAmt);
|
|
|
+ amt = receivableAmt.subtract(discountAmt);
|
|
|
}
|
|
|
}
|
|
|
- amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+// amt = receivableAmt.subtract(discountAmt); //应收金额
|
|
|
+ amt = amt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if(amt.toString().equals("0.00")){
|
|
|
+ amt = new BigDecimal("0.01");
|
|
|
+ }
|
|
|
amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
|
|
|
//discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? discountPrice : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格
|
|
|
payOrderResultInfo.setAmt(amt.toString());
|
|
@@ -878,7 +916,7 @@ public class PayOrderController {
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0);
|
|
|
+ BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
BigDecimal dzkGradeDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需等级优惠金额值
|
|
@@ -1012,7 +1050,7 @@ public class PayOrderController {
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0);
|
|
|
+ BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountAmt = new BigDecimal(0); //等级优惠金额
|
|
|
BigDecimal dzkGradeDiscountAmt = new BigDecimal(0); //计算电子卡金额时所需等级优惠金额值
|
|
@@ -1153,7 +1191,7 @@ public class PayOrderController {
|
|
|
BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
BigDecimal discountAmt = new BigDecimal(0); //优惠金额
|
|
|
BigDecimal dzkDiscountAmt = discountAmt; //优惠金额
|
|
|
- BigDecimal amt = new BigDecimal(0);
|
|
|
+ BigDecimal amt = receivableAmt;
|
|
|
BigDecimal discountPrice = oilPrice;
|
|
|
BigDecimal gradeDiscountPriceAmt = new BigDecimal("0"); //价格优惠金额
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|