浏览代码

Merge branch '20200918' of http://114.135.61.188:53000/ZONIOT/water-iot into 20200918

oppadmin 4 年之前
父节点
当前提交
c40e74465c

+ 4 - 4
smart-city-platform/src/main/java/com/bz/smart_city/entity/pay/PayControlRule.java

@@ -79,19 +79,19 @@ public class PayControlRule {
                 }
                 case 3: {
                     condition = ">";
-                    return new BigDecimal(value).compareTo(data) == 1;
+                    return new BigDecimal(value).compareTo(data) == -1;
                 }
                 case 4: {
                     condition = "<";
-                    return new BigDecimal(value).compareTo(data) == -1;
+                    return new BigDecimal(value).compareTo(data) == 1;
                 }
                 case 5: {
                     condition = ">=";
-                    return new BigDecimal(value).compareTo(data) != -1;
+                    return new BigDecimal(value).compareTo(data) != 1;
                 }
                 case 6: {
                     condition = "<=";
-                    return new BigDecimal(value).compareTo(data) != 1;
+                    return new BigDecimal(value).compareTo(data) != -1;
                 }
             }
         }

+ 8 - 5
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/pay/PayFeeServiceImp.java

@@ -335,12 +335,12 @@ public class PayFeeServiceImp implements PayFeeService {
         List<PayControlRule> payControlRules = payFeeMapper.getValveRulesByType(1,types,siteId,customerId);
 
         for(PayValveStateInfo payValveStateInfo : payValveStateInfos){
-            if(payValveStateInfo != null && payValveStateInfo.getDebt()!= null
+            if(payValveStateInfo != null
                     && ((payValveStateInfo.getValveState()!= null && payValveStateInfo.getValveState() == 0)
                             || payValveStateInfo.getValveState() == null)){
 
                 for(PayControlRule payControlRule : payControlRules){
-                    if(payControlRule.getConditionId() == 2 && payControlRule.checkCondition(payValveStateInfo.getDebt())){
+                    if(payControlRule.getConditionId() == 2 && payValveStateInfo.getDebt() != null && payControlRule.checkCondition(payValveStateInfo.getDebt())){
                         payValveStateInfo.setControlRuleId(payControlRule.getId().intValue());
                         payValveStateInfo.setOperation(1);
                         payValveStateInfo.setSiteId(BigInteger.valueOf(siteId));
@@ -348,7 +348,7 @@ public class PayFeeServiceImp implements PayFeeService {
                         Boolean sendValveCommondResult = this.sendValveCommond(payValveStateInfo);
                         break;
                     }
-                    if(payControlRule.getConditionId() == 3 && payControlRule.checkCondition(payValveStateInfo.getRemaining())){
+                    if(payControlRule.getConditionId() == 3 && payValveStateInfo.getRemaining() != null && payControlRule.checkCondition(payValveStateInfo.getRemaining())){
                         payValveStateInfo.setControlRuleId(payControlRule.getId().intValue());
                         payValveStateInfo.setOperation(1);
                         payValveStateInfo.setSiteId(BigInteger.valueOf(siteId));
@@ -356,7 +356,7 @@ public class PayFeeServiceImp implements PayFeeService {
                         Boolean sendValveCommondResult = this.sendValveCommond(payValveStateInfo);
                         break;
                     }
-                    if(payControlRule.getConditionId() == 4 && payControlRule.checkCondition(payValveStateInfo.getBalance())){
+                    if(payControlRule.getConditionId() == 4 && payValveStateInfo.getBalance() != null && payControlRule.checkCondition(payValveStateInfo.getBalance())){
                         payValveStateInfo.setControlRuleId(payControlRule.getId().intValue());
                         payValveStateInfo.setOperation(1);
                         payValveStateInfo.setSiteId(BigInteger.valueOf(siteId));
@@ -364,7 +364,7 @@ public class PayFeeServiceImp implements PayFeeService {
                         Boolean sendValveCommondResult = this.sendValveCommond(payValveStateInfo);
                         break;
                     }
-                    if(payControlRule.getConditionId() == 7 && payControlRule.checkCondition(payValveStateInfo.getRemaining().subtract(payValveStateInfo.getDebt()))){
+                    if(payControlRule.getConditionId() == 7 && payValveStateInfo.getRemaining() != null && payValveStateInfo.getDebt() != null && payControlRule.checkCondition(payValveStateInfo.getRemaining().subtract(payValveStateInfo.getDebt()))){
                         payValveStateInfo.setControlRuleId(payControlRule.getId().intValue());
                         payValveStateInfo.setOperation(1);
                         payValveStateInfo.setSiteId(BigInteger.valueOf(siteId));
@@ -703,6 +703,8 @@ public class PayFeeServiceImp implements PayFeeService {
             payfeeResult.setMsg("充值金额:"+String.format("%.2f", transAmount)+"元");
         }
 
+        openValveByPayFee(new BigInteger(accountId), loginUser.getSiteId(),loginUser.getCustomerId());
+
         return payfeeResult;
     }
 
@@ -765,6 +767,7 @@ public class PayFeeServiceImp implements PayFeeService {
             throw new ServiceException(ResultStatus.PAYFEE_QUERY_NO_CUSTOMER);
         }
         String payseriesno = recharge(transAmount, payway, siteId, customerId, userId, paywayName, localDateTime, payCustomRechargeDto);
+        openValveByPayFee(payCustomRechargeDto.getAccountId(), loginUser.getSiteId(),loginUser.getCustomerId());
         return payseriesno;
     }
 

+ 3 - 3
smart-city-platform/src/main/resources/mapper/pay/payFeeMapper.xml

@@ -408,10 +408,10 @@
             ,d.water_meter_no as "eleno"
             ,ifnull(d.water_meter_no,d.metercode )as "metercode"
             ,d.control_status as "valveState"
-            ,(select sum(debt) from pay_pay_receivable where debt>0 and account_id=#{accountId}) as "debt"
+            ,ifnull((select sum(debt) from pay_pay_receivable where debt>0 and account_id=#{accountId}),0) as "debt"
             ,cs.customer_no as "customerNo"
-            ,r.remaining
-            ,r.balance
+            ,ifnull(r.remaining,0) remaining
+            ,ifnull(r.balance,0) balance
         from sc_device d
         left join pay_base_customerandmeterrela c on c.watermeter_id=d.id
         left join pay_pay_rechargeaccount r on r.account_id = c.account_id