|
@@ -51,7 +51,7 @@ public class PayOrderController {
|
|
|
@ResponseBody
|
|
|
@Transactional
|
|
|
public String AddPayOrderInfoNew(@RequestBody PayOrderRequest payOrderRequest){
|
|
|
- logger.info("获取订单前端传来参数openId:"+ payOrderRequest.getOpenId());
|
|
|
+ logger.info("生成订单前端传来参数油站ID:"+payOrderRequest.getStationId()+"; 用户openId:"+ payOrderRequest.getOpenId() +"; 加油员ID:" +payOrderRequest.getPersonnelId()+ ";");
|
|
|
Gson gson =new Gson();
|
|
|
ResultData resultData =null;
|
|
|
AppUserInfo appUserInfo =new AppUserInfo(); //查询客户信息传递参数
|
|
@@ -111,9 +111,9 @@ public class PayOrderController {
|
|
|
payOrder.setScore(payOrderRequest.getScore()); //积分
|
|
|
payOrder.setStationId(payOrderRequest.getStationId()); //油站id
|
|
|
payOrder.setStatus("0"); //创建订单 未支付状态 0
|
|
|
- payOrder.setCreatedDate(new Timestamp(new Date().getTime())); //创建时间
|
|
|
- payOrder.setOrderType(payOrderRequest.getOrderType()); //订单类型
|
|
|
- payOrder.setOilGun(payOrderRequest.getOilGun()); //油枪号
|
|
|
+ payOrder.setCreatedDate(new Timestamp(new Date().getTime())); //创建时间
|
|
|
+ payOrder.setOrderType(payOrderRequest.getOrderType()); //订单类型
|
|
|
+ payOrder.setOilGun(payOrderRequest.getOilGun()); //油枪号
|
|
|
payOrder.setReceivableAmt(Double.valueOf(payOrderRequest.getReceivableAmt())); //订单应收金额
|
|
|
String oilName = payOrderRequest.getOilName();
|
|
|
//获取该油品所属哪一类
|
|
@@ -121,53 +121,17 @@ public class PayOrderController {
|
|
|
oil.setOilName(oilName);
|
|
|
oil.setDictType("oil_name");
|
|
|
Oil oilInfo = sysDictDataService.selectOilType(oil);
|
|
|
- payOrder.setOilType(oilInfo.getOilsType()); //油品类型
|
|
|
- String oilsType = oilInfo.getOilsType(); //获取订单类型
|
|
|
+ payOrder.setOilType(oilInfo.getOilsType()); //油品类型
|
|
|
+ String oilsType = oilInfo.getOilsType(); //获取订单类型
|
|
|
logger.info("订单油品类型:" + oilsType);
|
|
|
- payOrderRequest.setCardOilsType(oilInfo.getOilsType()); //电子卡类型;注:用于获取客户电子卡参数查询
|
|
|
- payOrder.setOilName(oilName); //油品名称
|
|
|
+ payOrderRequest.setCardOilsType(oilInfo.getOilsType()); //电子卡类型;注:用于获取客户电子卡参数查询
|
|
|
+ payOrder.setOilName(oilName); //油品名称
|
|
|
|
|
|
- //根据油站和油枪获取加油员
|
|
|
- if (payOrderRequest.getPersonnelId() != null) {
|
|
|
- //表示为一人一码:一个加油员一个码
|
|
|
- Map<String, Object> params = new HashMap<>();
|
|
|
- params.put("personnelId", payOrderRequest.getPersonnelId());
|
|
|
- List<Map<String, Object>> list = stationOilGunService.selectOilGunByPersonalId(params);
|
|
|
- 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());
|
|
|
- }else {
|
|
|
- payOrder.setOilPersonnel("--");
|
|
|
- }
|
|
|
- } else {
|
|
|
- payOrder.setOilPersonnel("--");
|
|
|
- }
|
|
|
- } else {
|
|
|
- //根据油站和油枪获取加油员
|
|
|
- HashMap<String, Object> params = new HashMap<>();
|
|
|
- params.put("oliGunNo", payOrderRequest.getOilGun());
|
|
|
- params.put("stationId", payOrderRequest.getStationId());
|
|
|
- List<Map> mapResultList = payOrderMapper.selectPersonelName(params); //使用list原因:一个枪号对应多个加油员场景
|
|
|
- logger.info("加油员信息:"+ mapResultList.toString());
|
|
|
- if(mapResultList != null && mapResultList.size() > 0){
|
|
|
- String oilPersonnel = "";
|
|
|
- for (Map per : mapResultList){
|
|
|
- if(per.containsKey("personnelName") && per.get("personnelName").toString() !=null && per.get("personnelName").toString() !=""){
|
|
|
- oilPersonnel += per.get("personnelName").toString() +",";
|
|
|
- }
|
|
|
- }
|
|
|
- if(oilPersonnel !=""){
|
|
|
- payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1)); //加油员
|
|
|
- }
|
|
|
- }else {
|
|
|
- payOrder.setOilPersonnel("--");
|
|
|
- }
|
|
|
- }
|
|
|
- if(oilsType.equals("3")){ //订单类型是油品时计算
|
|
|
+ if(oilsType.equals("3")){ //订单类型是油品时计算
|
|
|
payOrder.setOrderType("2");
|
|
|
payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt())); //非油品金额
|
|
|
payOrder.setDiscountAmt(Double.valueOf(0)); //优惠金额
|
|
|
- payOrder.setOilPirce(payOrderRequest.getReceivableAmt()); //非油品价格
|
|
|
+ payOrder.setOilPirce(payOrderRequest.getReceivableAmt()); //非油品价格
|
|
|
payOrder.setOrderLiters("0");
|
|
|
resultMap.put("oilsCardFlag", "0");
|
|
|
resultMap.put("discountAmt", "0"); //优惠价格
|
|
@@ -176,7 +140,8 @@ public class PayOrderController {
|
|
|
resultMap.put("oilLiters", "0");
|
|
|
resultMap.put("discountPrice", "0");
|
|
|
resultMap.put("ordNo", ordNo);
|
|
|
- payOrderMapper.insertSelective(payOrder);
|
|
|
+ logger.info("返回前端的结果:" +resultMap.toString());
|
|
|
+ //payOrderMapper.insertSelective(payOrder);
|
|
|
}else {
|
|
|
PayOrderResultInfo payOrderResultInfo = this.calculateAmt(payOrderRequest); //计算订单金额 价格 加油升数 等等
|
|
|
payOrder.setOilPirce(payOrderResultInfo.getOilPrice());
|
|
@@ -197,20 +162,63 @@ public class PayOrderController {
|
|
|
payOrder.setSellAmt(Double.valueOf(payOrderResultInfo.getSellAmt()));
|
|
|
payOrder.setSellDiscountAmt(Double.valueOf(payOrderResultInfo.getSellDiscountAmt()));
|
|
|
payOrder.setSellOilPrice(Double.valueOf(payOrderResultInfo.getSellPrice()));
|
|
|
- //resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
|
|
|
+ payOrder.setDriverDiscountAmt(Double.valueOf(payOrderResultInfo.getDriverDiscountAmt()));
|
|
|
+ resultMap.put("driverDiscountAmt", payOrderResultInfo.getDriverDiscountAmt());
|
|
|
+ resultMap.put("sellDiscountAmt", payOrderResultInfo.getSellDiscountAmt());
|
|
|
}
|
|
|
payOrder.setDriverOilPrice(Double.valueOf(payOrderResultInfo.getDiscountPrice()));
|
|
|
- resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt()); //应收价格
|
|
|
+ resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt()); //应收价格
|
|
|
resultMap.put("oilLiters", payOrderResultInfo.getOilLiters());
|
|
|
resultMap.put("amt_dzk", payOrderResultInfo.getDzkAmt());
|
|
|
- resultMap.put("discountAmt_dzk", payOrderResultInfo.getDzkDiscountAmt()); //电子卡优惠金额
|
|
|
- resultMap.put("balance", payOrderResultInfo.getBalance()); //电子卡余额
|
|
|
- resultMap.put("cardOilsType", payOrderResultInfo.getCardOilsType()); //电子卡类型1.汽油; 2.柴油
|
|
|
+ resultMap.put("discountAmt_dzk", payOrderResultInfo.getDzkDiscountAmt()); //电子卡优惠金额
|
|
|
+ resultMap.put("balance", payOrderResultInfo.getBalance()); //电子卡余额
|
|
|
+ resultMap.put("cardOilsType", payOrderResultInfo.getCardOilsType()); //电子卡类型1.汽油; 2.柴油
|
|
|
resultMap.put("ordNo", ordNo);
|
|
|
logger.info("返回前端的结果:" +resultMap.toString());
|
|
|
- payOrderMapper.insertSelective(payOrder);
|
|
|
+ //payOrderMapper.insertSelective(payOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ //根据油站和油枪获取加油员
|
|
|
+ if (payOrderRequest.getPersonnelId() != null && payOrderRequest.getPersonnelId() != "" && !payOrderRequest.getPersonnelId().equals("undefined")) {
|
|
|
+ //表示为一人一码:一个加油员一个码
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("personnelId", payOrderRequest.getPersonnelId());
|
|
|
+ params.put("stationId", payOrderRequest.getStationId());
|
|
|
+ List<Map<String, Object>> list = stationOilGunService.selectOilGunByPersonalId(params);
|
|
|
+ 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());
|
|
|
+ payOrderMapper.insertSelective(payOrder);
|
|
|
+ resultData = ResultData.success(resultMap);
|
|
|
+ }else {
|
|
|
+ resultData = ResultData.error(CodeMsg.NO_PERSONNAL);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ resultData = ResultData.error(CodeMsg.NO_PERSONNAL);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //根据油站和油枪获取加油员
|
|
|
+ HashMap<String, Object> params = new HashMap<>();
|
|
|
+ params.put("oliGunNo", payOrderRequest.getOilGun());
|
|
|
+ params.put("stationId", payOrderRequest.getStationId());
|
|
|
+ List<Map> mapResultList = payOrderMapper.selectPersonelName(params); //使用list原因:一个枪号对应多个加油员场景
|
|
|
+ logger.info("加油员信息:"+ mapResultList.toString());
|
|
|
+ if(mapResultList != null && mapResultList.size() > 0){
|
|
|
+ String oilPersonnel = "";
|
|
|
+ for (Map per : mapResultList){
|
|
|
+ if(per.containsKey("personnelName") && per.get("personnelName").toString() !=null && per.get("personnelName").toString() !=""){
|
|
|
+ oilPersonnel += per.get("personnelName").toString() +",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(oilPersonnel !=""){
|
|
|
+ payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1)); //加油员
|
|
|
+ }
|
|
|
+ payOrderMapper.insertSelective(payOrder);
|
|
|
+ resultData = ResultData.success(resultMap);
|
|
|
+ }else {
|
|
|
+ resultData = ResultData.error(CodeMsg.NO_PERSONNAL);
|
|
|
+ }
|
|
|
}
|
|
|
- resultData = ResultData.success(resultMap);
|
|
|
}else {
|
|
|
//登录人验证失败
|
|
|
resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
|
|
@@ -288,7 +296,22 @@ public class PayOrderController {
|
|
|
payOrderResultInfo = this.calculateLabelDiscount(params);
|
|
|
//是否强制将该扫码用户拉入此标签:0、否;1、是;
|
|
|
if(payOrderResultInfo.getIsAddLabel() !=null && payOrderResultInfo.getIsAddLabel().equals("1")){
|
|
|
- labelService.updateCustomerLabel(customerLabel);
|
|
|
+ CustomerLabel customerLabel_info = labelService.getCustomerLabel(customerLabel);
|
|
|
+ if(customerLabel_info !=null){
|
|
|
+ customerLabel.setUpdateTime(new Date());
|
|
|
+// customerLabel.setCreateBy(payOrderResultInfo.getLabelCreateBy());
|
|
|
+// if(payOrderResultInfo.getLabelUpdateBy() !=null){
|
|
|
+// customerLabel.setUpdateBy(payOrderResultInfo.getLabelUpdateBy());
|
|
|
+// }
|
|
|
+ customerLabel.setLabelId(payOrderRequest.getLabelId());
|
|
|
+ labelService.updateCustomerLabel(customerLabel);
|
|
|
+ }else {
|
|
|
+ customerLabel.setCreateTime(new Date());
|
|
|
+ customerLabel.setDelFlag("0");
|
|
|
+ //customerLabel.setCreateBy(payOrderResultInfo.getLabelCreateBy());
|
|
|
+ customerLabel.setLabelId(payOrderRequest.getLabelId());
|
|
|
+ labelService.insertCustomerLabel(customerLabel);
|
|
|
+ }
|
|
|
}
|
|
|
}else {
|
|
|
//按照正常优惠计算
|
|
@@ -325,16 +348,17 @@ public class PayOrderController {
|
|
|
//计算集团下站点LNG平台加气
|
|
|
public PayOrderResultInfo calculateLngGroupStaDiscount(Map<String ,Object> params){
|
|
|
PayOrderResultInfo payOrderResultInfo = new PayOrderResultInfo();
|
|
|
- BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
+ BigDecimal oilPrice = new BigDecimal(params.get("oilPrice").toString()); //油品价格
|
|
|
BigDecimal receivableAmt = new BigDecimal(params.get("receivableAmt").toString()); //应收金额
|
|
|
- BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
- BigDecimal discountAmt = new BigDecimal(0); //油站销售价后优惠金额
|
|
|
- BigDecimal sellDiscountAmt = new BigDecimal(0); //油站销售价后优惠金额
|
|
|
- BigDecimal dzkDiscountAmt = new BigDecimal(0); //电子卡优惠金额
|
|
|
- BigDecimal amt = receivableAmt; //司机价后支付金额
|
|
|
- BigDecimal sellAmt = new BigDecimal(0); //油站结算价支付金额
|
|
|
- BigDecimal discountPrice = oilPrice; //司机销售价
|
|
|
- BigDecimal sellPrice = discountPrice; //油站销售价
|
|
|
+ BigDecimal oilLiters = new BigDecimal("0.00"); //加油升数
|
|
|
+ BigDecimal discountAmt = new BigDecimal(0); //油站销售价后优惠金额
|
|
|
+ BigDecimal sellDiscountAmt = new BigDecimal(0); //油站销售价后优惠金额
|
|
|
+ BigDecimal dzkDiscountAmt = new BigDecimal(0); //电子卡优惠金额
|
|
|
+ BigDecimal amt = receivableAmt; //司机价后支付金额
|
|
|
+ BigDecimal sellAmt = new BigDecimal(0); //油站结算价支付金额
|
|
|
+ BigDecimal discountPrice = oilPrice; //司机销售价
|
|
|
+ BigDecimal sellPrice = discountPrice; //油站销售价
|
|
|
+ BigDecimal driverDiscountAmt = new BigDecimal("0"); //司机价优惠金额
|
|
|
//加油升数
|
|
|
oilLiters = receivableAmt.divide(oilPrice,2, BigDecimal.ROUND_HALF_UP);
|
|
|
// if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){
|
|
@@ -350,7 +374,6 @@ public class PayOrderController {
|
|
|
sellPrice = oilPrice.subtract(new BigDecimal(params.get("settlementPrice").toString()));
|
|
|
sellAmt = sellPrice.multiply(oilLiters); //优惠价实付金额
|
|
|
sellDiscountAmt = receivableAmt.subtract(sellAmt);
|
|
|
- sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
break;
|
|
|
case "2": //折扣
|
|
@@ -359,7 +382,7 @@ public class PayOrderController {
|
|
|
sellPrice = oilPrice.multiply(new BigDecimal(params.get("settlementPrice").toString())).divide(new BigDecimal("100"));
|
|
|
sellAmt =sellPrice.multiply(oilLiters);
|
|
|
sellDiscountAmt = receivableAmt.subtract(sellAmt);
|
|
|
- sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
@@ -368,7 +391,9 @@ public class PayOrderController {
|
|
|
//司机价
|
|
|
discountPrice = sellPrice.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
|
|
|
amt = sellAmt.multiply(new BigDecimal(params.get("driverPrice").toString())).divide(new BigDecimal("100"));
|
|
|
+ //driverDiscountAmt = sellDiscountAmt.multiply(new BigDecimal("1").subtract(new BigDecimal(params.get("driverPrice").toString()).divide(new BigDecimal("100"))));
|
|
|
discountAmt = receivableAmt.subtract(amt);
|
|
|
+ driverDiscountAmt = discountAmt.subtract(sellDiscountAmt);
|
|
|
discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
discountPrice = discountPrice.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
}
|
|
@@ -381,16 +406,20 @@ public class PayOrderController {
|
|
|
payOrderResultInfo.setOilPrice(oilPrice.toString()); //油机价
|
|
|
payOrderResultInfo.setAmt(amt.toString()); //司机价后时候金额
|
|
|
payOrderResultInfo.setDiscountPrice(discountPrice.toString()); //司机价
|
|
|
- payOrderResultInfo.setDiscountAmt(discountAmt.toString()); //司机价后优惠金额
|
|
|
+ payOrderResultInfo.setDiscountAmt(discountAmt.toString()); //司机价后优惠总金额
|
|
|
+
|
|
|
+ driverDiscountAmt = driverDiscountAmt.setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
+ payOrderResultInfo.setDriverDiscountAmt(driverDiscountAmt.toString()); //司机价后优惠金额
|
|
|
|
|
|
payOrderResultInfo.setSellAmt(sellAmt.toString()); //销售价后支付金额
|
|
|
sellPrice = sellPrice.setScale(2, BigDecimal.ROUND_HALF_UP); //销售价
|
|
|
payOrderResultInfo.setSellPrice(sellPrice.toString()); //销售价
|
|
|
+ sellDiscountAmt = sellDiscountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
payOrderResultInfo.setSellDiscountAmt(sellDiscountAmt.toString()); //销售价后优惠金额
|
|
|
|
|
|
//LNG加气平台没有电子卡功能:此下参数无用用作填充参数值 0:代表否;4:代表LNG油品
|
|
|
- payOrderResultInfo.setDzkAmt(amt.toString()); //电子卡支付金额
|
|
|
- payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString()); //电子卡优惠金额
|
|
|
+ payOrderResultInfo.setDzkAmt(amt.toString()); //电子卡支付金额
|
|
|
+ payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString()); //电子卡优惠金额
|
|
|
payOrderResultInfo.setBalance("0");
|
|
|
payOrderResultInfo.setCardOilsType("4");
|
|
|
|
|
@@ -419,33 +448,42 @@ public class PayOrderController {
|
|
|
//获取该油站的标签规则
|
|
|
LabelRule labelRule = new LabelRule();
|
|
|
labelRule.setStationId(Integer.valueOf(params.get("stationId").toString())); //油站ID
|
|
|
- labelRule.setOilName(params.get("oilName").toString()); //oilName
|
|
|
+ //labelRule.setOilName(params.get("oilName").toString()); //oilName
|
|
|
+ labelRule.setDelFlag("0");
|
|
|
labelRule.setLabelId(Integer.valueOf(params.get("labelId").toString()));//
|
|
|
List<LabelRule> labelRuleList = labelService.getLabelRuleList(labelRule);
|
|
|
if(labelRuleList !=null && labelRuleList.size()> 0){
|
|
|
payOrderResultInfo.setIsAddLabel(labelRuleList.get(0).getIsAddLabel()); //'是否强制将该扫码用户拉入此标签:0、否;1、是
|
|
|
+ payOrderResultInfo.setLabelCreateBy(labelRuleList.get(0).getCreateBy()); //标签创建人
|
|
|
+ payOrderResultInfo.setLabelUpdateBy(labelRuleList.get(0).getUpdateBy()); //标签更新人
|
|
|
+ payOrderResultInfo.setLabelCreateTime(labelRuleList.get(0).getCreateTime()); //标签创建时间
|
|
|
//获取该油品的优惠明细
|
|
|
- List<LabelRuleDetail> labelRuleDetailList = labelRuleList.get(0).getLabelRuleDetailList();
|
|
|
- if(labelRuleDetailList !=null && labelRuleDetailList.size() ==1){
|
|
|
- BigDecimal discountAmt_B = new BigDecimal(labelRuleDetailList.get(0).getDiscountAmt()); //满足享受优惠条件(满多少升、满多少元)
|
|
|
- String discountTerm = labelRuleDetailList.get(0).getDiscountTerm();
|
|
|
- switch (discountTerm){
|
|
|
- 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()));
|
|
|
- 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()));
|
|
|
- discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
- }
|
|
|
- break;
|
|
|
+ labelRule.setOilName(params.get("oilName").toString());
|
|
|
+ labelRule.setDelFlagDetail("0");
|
|
|
+ List<LabelRule> labelRuleList_oilName = labelService.getLabelRuleList(labelRule);
|
|
|
+ if(labelRuleList_oilName !=null && labelRuleList_oilName.size() >0){
|
|
|
+ List<LabelRuleDetail> labelRuleDetailList = labelRuleList_oilName.get(0).getLabelRuleDetailList();
|
|
|
+ if(labelRuleDetailList !=null && labelRuleDetailList.size() ==1){
|
|
|
+ BigDecimal discountAmt_B = new BigDecimal(labelRuleDetailList.get(0).getDiscountAmt()); //满足享受优惠条件(满多少升、满多少元)
|
|
|
+ String discountTerm = labelRuleDetailList.get(0).getDiscountTerm();
|
|
|
+ switch (discountTerm){
|
|
|
+ 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()));
|
|
|
+ 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()));
|
|
|
+ discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
}
|
|
|
- dzkDiscountAmt = discountAmt; //赋值电子卡优惠金额
|
|
|
}
|
|
|
}
|
|
|
amt = receivableAmt.subtract(discountAmt); //应收金额
|