Compare commits
10 Commits
99e3a161a8
...
96c9fff97c
Author | SHA1 | Date | |
---|---|---|---|
96c9fff97c | |||
74f577ad3c | |||
8b6616ae2b | |||
74c08db0d7 | |||
91eeee4a8a | |||
9f254172a3 | |||
9fe7cc2a1c | |||
bc34078089 | |||
6eae096ba7 | |||
ee536f7386 |
@ -62,7 +62,8 @@ server:
|
||||
spring:
|
||||
# 环境配置,dev=开发环境,prod=生产环境
|
||||
profiles:
|
||||
active: dev # 环境配置,dev=开发环境,prod=生产环境
|
||||
# active: dev # 环境配置,dev=开发环境,prod=生产环境
|
||||
active: prod # 环境配置,dev=开发环境,prod=生产环境
|
||||
# 资源信息
|
||||
messages:
|
||||
# 国际化资源文件路径
|
||||
|
@ -33,6 +33,7 @@ import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Component;
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
@ -119,8 +120,8 @@ public class DeviceOtherMsgConsumer {
|
||||
LambdaUpdateChainWrapper<DeviceReportInfo> up = new LambdaUpdateChainWrapper<>(deviceReportInfoMapper)
|
||||
.eq(DeviceReportInfo::getSerialNumber, serialNumber);
|
||||
//获取流量计累计用水量/瞬时流量
|
||||
Float meterSum = data1.getFloat("meterSum");
|
||||
Float meterIns = data1.getFloat("meterIns");
|
||||
BigDecimal meterSum = data1.getBigDecimal("meterSum");
|
||||
BigDecimal meterIns = data1.getBigDecimal("meterIns");
|
||||
|
||||
//获取瞬时功率/累计电量
|
||||
Float insPower = data1.getFloat("insPower");
|
||||
@ -134,7 +135,7 @@ public class DeviceOtherMsgConsumer {
|
||||
Integer addr = data1.getInt("meterAddr");
|
||||
|
||||
//获取水单价
|
||||
Float waterFees = data1.getFloat("waterFees");
|
||||
BigDecimal waterFees = data1.getBigDecimal("waterFees");
|
||||
Integer runStatus = null;
|
||||
if(valveState==0){
|
||||
runStatus=2;
|
||||
@ -151,13 +152,13 @@ public class DeviceOtherMsgConsumer {
|
||||
up.set(DeviceReportInfo::getAddr,addr);
|
||||
}
|
||||
if(waterFees!=null){
|
||||
up.set(DeviceReportInfo::getWaterFree,waterFees);
|
||||
up.set(DeviceReportInfo::getWaterFree,waterFees.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
}
|
||||
if(meterIns!=null){
|
||||
up.set(DeviceReportInfo::getInsFlow,meterIns);
|
||||
up.set(DeviceReportInfo::getInsFlow,meterIns.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
}
|
||||
if(meterSum!=null){
|
||||
up.set(DeviceReportInfo::getSumFlow,meterSum);
|
||||
up.set(DeviceReportInfo::getSumFlow,meterSum.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
}
|
||||
//同步数据
|
||||
up.update();
|
||||
@ -185,8 +186,8 @@ public class DeviceOtherMsgConsumer {
|
||||
LambdaUpdateChainWrapper<DeviceReportInfo> up = new LambdaUpdateChainWrapper<>(deviceReportInfoMapper)
|
||||
.eq(DeviceReportInfo::getSerialNumber, serialNumber);
|
||||
//获取流量计累计用水量/瞬时流量
|
||||
Float meterSum = data1.getFloat("meterSum");
|
||||
Float meterIns = data1.getFloat("meterIns");
|
||||
BigDecimal meterSum = data1.getBigDecimal("meterSum");
|
||||
BigDecimal meterIns = data1.getBigDecimal("meterIns");
|
||||
//获取瞬时功率/累计电量
|
||||
Float insPower = data1.getFloat("insPower");
|
||||
Float sumEle = data1.getFloat("sumEle");
|
||||
@ -198,7 +199,7 @@ public class DeviceOtherMsgConsumer {
|
||||
Integer addr = data1.getInt("meterAddr");
|
||||
|
||||
//获取水单价
|
||||
Float waterFees = data1.getFloat("waterFees");
|
||||
BigDecimal waterFees = data1.getBigDecimal("waterFees");
|
||||
Integer runStatus = null;
|
||||
if(valveState==0){
|
||||
runStatus=2;
|
||||
@ -215,13 +216,13 @@ public class DeviceOtherMsgConsumer {
|
||||
up.set(DeviceReportInfo::getAddr,addr);
|
||||
}
|
||||
if(waterFees!=null){
|
||||
up.set(DeviceReportInfo::getWaterFree,waterFees);
|
||||
up.set(DeviceReportInfo::getWaterFree,waterFees.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
}
|
||||
if(meterIns!=null){
|
||||
up.set(DeviceReportInfo::getInsFlow,meterIns);
|
||||
up.set(DeviceReportInfo::getInsFlow,meterIns.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
}
|
||||
if(meterSum!=null){
|
||||
up.set(DeviceReportInfo::getSumFlow,meterSum);
|
||||
up.set(DeviceReportInfo::getSumFlow,meterSum.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
}
|
||||
//同步数据
|
||||
up.update();
|
||||
@ -285,7 +286,7 @@ public class DeviceOtherMsgConsumer {
|
||||
ngCardSwipeRecords.setAreaCode(areaCode);//区域号
|
||||
ngCardSwipeRecords.setCardSwipeType(0);//开阀
|
||||
ngCardSwipeRecords.setCardSwipeTime(DateUtils.getNowDate());//刷卡时间
|
||||
ngCardSwipeRecords.setAmountDue(userBalance);//用户余额
|
||||
ngCardSwipeRecords.setAmountDue(userBalance.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));//用户余额
|
||||
if(cardInfo!=null && cardInfo.getUserId()!=null){
|
||||
ngCardSwipeRecords.setUserId(cardList.get(0).getUserId());//用户id
|
||||
}
|
||||
@ -300,7 +301,7 @@ public class DeviceOtherMsgConsumer {
|
||||
}
|
||||
|
||||
// userIrrigationRecord.setDeptId(deptId);
|
||||
|
||||
//添加一条灌溉记录
|
||||
DateTime currentTime=DateTime.now();//获取当前时间作为开阀时间
|
||||
userIrrigationRecord.setStartTime(currentTime);//开阀时间
|
||||
System.err.println("currentTime"+currentTime);
|
||||
@ -361,7 +362,7 @@ public class DeviceOtherMsgConsumer {
|
||||
BigDecimal currentFlow=closeCumFlow.subtract(irrigationRecordList.get(0).getOpenCumFlow());//计算结果为当前用水量
|
||||
//当前用水量
|
||||
log.info("设备{}本次灌溉用户当前用水量{}",serialNumber,currentFlow);
|
||||
userIrrigationRecord.setCurFlow(currentFlow);
|
||||
userIrrigationRecord.setCurFlow(currentFlow.divide(BigDecimal.valueOf(10000), 2, RoundingMode.HALF_UP));
|
||||
|
||||
BigDecimal userBalance=dataJson.getBigDecimal("userBalance");//用户余额
|
||||
System.err.println("用户余额:"+userBalance);
|
||||
@ -376,9 +377,18 @@ public class DeviceOtherMsgConsumer {
|
||||
{
|
||||
log.error("设备{}灌溉记录修改失败",serialNumber);
|
||||
}
|
||||
//同步购水卡余额-----------------------------------
|
||||
String areaCode=dataJson.getStr("areaCode");
|
||||
boolean update = new LambdaUpdateChainWrapper<>(userRechargeCardsMapper)
|
||||
.set(UserRechargeCards::getBalance, userBalance)
|
||||
.eq(UserRechargeCards::getCardNumber, cardNumber)
|
||||
.eq(UserRechargeCards::getAreaCode, areaCode)
|
||||
.update();
|
||||
if(!update){
|
||||
log.error("设备{}关阀报文同步购水卡{}余额失败",serialNumber,cardNumber);
|
||||
}
|
||||
|
||||
//添加一条刷卡记录
|
||||
String areaCode=dataJson.getStr("areaCode");
|
||||
// UserRechargeCards cardInfo=userRechargeCardsMapper.selectUserRechargeCardsByCardNumberAndAreaCode(cardNumber,areaCode);//查询卡号+区域号信息
|
||||
|
||||
NgCardSwipeRecords ngCardSwipeRecords=new NgCardSwipeRecords();
|
||||
@ -387,7 +397,7 @@ public class DeviceOtherMsgConsumer {
|
||||
ngCardSwipeRecords.setAreaCode(areaCode);//区域号
|
||||
ngCardSwipeRecords.setCardSwipeType(1);//关阀
|
||||
ngCardSwipeRecords.setCardSwipeTime(DateUtils.getNowDate());//刷卡时间
|
||||
ngCardSwipeRecords.setAmountDue(userBalance);//用户余额
|
||||
ngCardSwipeRecords.setAmountDue(userBalance.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));//用户余额
|
||||
|
||||
// ngCardSwipeRecords.setUserId(cardList.get(0).getUserId());//用户id
|
||||
|
||||
|
@ -1,9 +1,6 @@
|
||||
package com.fastbee.data.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@ -56,37 +53,50 @@ public class DeviceReportInfoController extends BaseController
|
||||
* 查询设备上电审核前上报的基础信息列表
|
||||
*/
|
||||
// @PreAuthorize("@ss.hasPermi('iot:info:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询设备上电审核前上报的基础信息列表")
|
||||
public TableDataInfo list(DeviceReportInfo deviceReportInfo)
|
||||
{
|
||||
startPage();
|
||||
List<DeviceReportInfo> list = deviceReportInfoService.selectDeviceReportInfoList(deviceReportInfo);
|
||||
System.err.println("查询条件:"+deviceReportInfo.getOnLine());
|
||||
System.err.println("设备总长度:"+list.size());
|
||||
//查询设备在线状态
|
||||
list.forEach(d->{
|
||||
if(d.getType()==1){
|
||||
Boolean hassed = stringRedisTemplate.hasKey("neixiang_device_online_status:" + 147 + ":" + d.getSerialNumber());
|
||||
if(hassed){
|
||||
d.setOnLine(1);
|
||||
}else{
|
||||
d.setOnLine(0);
|
||||
}
|
||||
} else if ( d.getType()==2) {
|
||||
//展连流量计设备在线状态判断
|
||||
d.setType(0);
|
||||
}
|
||||
});
|
||||
// //处理在线/离线筛选
|
||||
// if(deviceReportInfo.getOnLine()!=null){
|
||||
// //根据online状态的值过滤集合
|
||||
// list= list.stream().filter(d -> Objects.equals(d.getOnLine(), deviceReportInfo.getOnLine()))
|
||||
// .collect(Collectors.toList());
|
||||
// }
|
||||
System.err.println("过滤后总长度:"+list.size());
|
||||
return getDataTable(list);
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询设备上电审核前上报的基础信息列表")
|
||||
public TableDataInfo list(DeviceReportInfo deviceReportInfo)
|
||||
{
|
||||
System.err.println(deviceReportInfo.getSearchValue());
|
||||
List<DeviceReportInfo> list=new ArrayList<>();
|
||||
if(deviceReportInfo.getSearchValue()!=null){
|
||||
deviceReportInfo.setSerialNumber(deviceReportInfo.getSearchValue());
|
||||
}
|
||||
|
||||
startPage();
|
||||
list = deviceReportInfoService.selectDeviceReportInfoList(deviceReportInfo);
|
||||
|
||||
if (list.isEmpty()){
|
||||
deviceReportInfo.setSerialNumber(null);
|
||||
deviceReportInfo.setName(deviceReportInfo.getSearchValue());
|
||||
list = deviceReportInfoService.selectDeviceReportInfoList(deviceReportInfo);
|
||||
}
|
||||
|
||||
//查询设备在线状态
|
||||
list.forEach(d->{
|
||||
if(d.getType()==1){
|
||||
Boolean hassed = stringRedisTemplate.hasKey("neixiang_device_online_status:" + 147 + ":" + d.getSerialNumber());
|
||||
if(hassed){
|
||||
d.setOnLine(1);
|
||||
}else{
|
||||
d.setOnLine(0);
|
||||
}
|
||||
} else if ( d.getType()==2) {
|
||||
//展连流量计设备在线状态判断
|
||||
d.setType(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// //处理在线/离线筛选
|
||||
// if(deviceReportInfo.getOnLine()!=null){
|
||||
// //根据online状态的值过滤集合
|
||||
// list= list.stream().filter(d -> Objects.equals(d.getOnLine(), deviceReportInfo.getOnLine()))
|
||||
// .collect(Collectors.toList());
|
||||
// }
|
||||
System.err.println("过滤后总长度:"+list.size());
|
||||
return getDataTable(list);
|
||||
}
|
||||
//统计是设备相关信息
|
||||
@GetMapping("/list/count")
|
||||
@ApiOperation("统计是设备相关信息")
|
||||
|
@ -6,6 +6,7 @@ import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.hutool.json.ObjectMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.dtflys.forest.annotation.Success;
|
||||
import com.fastbee.common.core.controller.BaseController;
|
||||
import com.fastbee.common.core.domain.AjaxResult;
|
||||
@ -141,9 +142,19 @@ public class WeChatPayController extends BaseController {
|
||||
|
||||
System.out.println("生成订单");
|
||||
int flag=0;
|
||||
List<NgMerchants> merchantsList=new LambdaQueryChainWrapper<>(ngMerchantsMapper)
|
||||
.eq(NgMerchants::getAreaCode,String.valueOf(recharge.getAreacode()))
|
||||
.list();
|
||||
if(merchantsList.size()==0)
|
||||
{
|
||||
return error("不存在此区域号对应的商户");
|
||||
}
|
||||
NgMerchants ngMerchants=merchantsList.get(0);
|
||||
recharge.setDeptId(ngMerchants.getDeptId());
|
||||
UserRechargeCards userRechargeCards=new UserRechargeCards();
|
||||
userRechargeCards.setCardNumber(String.valueOf(recharge.getCardnumber()));
|
||||
userRechargeCards.setAreaCode(String.valueOf(recharge.getAreacode()));
|
||||
userRechargeCards.setDeptId(recharge.getDeptId());
|
||||
List<UserRechargeCards> list=userRechargeCardsMapper.selectUserRechargeCardsList(userRechargeCards);
|
||||
|
||||
if(list.size()==0)
|
||||
|
@ -100,13 +100,15 @@ public class DeviceReportSSEController extends BaseController {
|
||||
return AjaxResultPro.success(1102,"voiceType不能为空!",null);
|
||||
}
|
||||
if(StringUtils.isBlank(reportInfo.getFacType())){
|
||||
return AjaxResultPro.success(111,"facType不能为空!",null);
|
||||
return AjaxResultPro.success(1102,"facType不能为空!",null);
|
||||
|
||||
}
|
||||
if(StringUtils.isBlank(reportInfo.getTestRecord())){
|
||||
return AjaxResultPro.success(111,"testRecord不能为空!",null);
|
||||
return AjaxResultPro.success(1102,"testRecord不能为空!",null);
|
||||
}
|
||||
if(StringUtils.isBlank(reportInfo.getAreaCode())){
|
||||
return AjaxResultPro.success(1102,"areaCode不能为空!",null);
|
||||
}
|
||||
|
||||
|
||||
// String deviceNumber = generateDeviceNumber();
|
||||
//映射字段
|
||||
@ -123,6 +125,7 @@ public class DeviceReportSSEController extends BaseController {
|
||||
deviceReportInfo.setVoiceManufacturer(Long.valueOf(reportInfo.getVoiceType()));
|
||||
deviceReportInfo.setReplaceManufacturer(Long.valueOf(reportInfo.getFacType()));
|
||||
deviceReportInfo.setTestRecord(reportInfo.getTestRecord());
|
||||
deviceReportInfo.setAreaCode(reportInfo.getAreaCode());
|
||||
//设置状态为未审核
|
||||
deviceReportInfo.setStatus(0);
|
||||
//设备编码查重
|
||||
@ -152,6 +155,7 @@ public class DeviceReportSSEController extends BaseController {
|
||||
.set(DeviceReportInfo::getVoiceManufacturer, Long.valueOf(reportInfo.getVoiceType()))
|
||||
.set(DeviceReportInfo::getReplaceManufacturer, Long.valueOf(reportInfo.getFacType()))
|
||||
.set(DeviceReportInfo::getTestRecord,reportInfo.getTestRecord())
|
||||
.set(DeviceReportInfo::getAreaCode,reportInfo.getAreaCode())
|
||||
.eq(DeviceReportInfo::getImei, deviceReportInfo.getImei())
|
||||
.update();
|
||||
if (update) {
|
||||
@ -187,7 +191,7 @@ public class DeviceReportSSEController extends BaseController {
|
||||
if(inserted==0){
|
||||
return AjaxResultPro.success(1104,"设备上电审核信息插入失败!",null);
|
||||
}
|
||||
//插入成功后,插入设备信息
|
||||
//插入成功后,插入设备信息----------------------------------------------插入即可mqtt连接--------------------------------
|
||||
Device device= new Device();
|
||||
device.setDeviceName(genDeviceNumber);
|
||||
device.setProductName("内乡县水电双计设备02");
|
||||
|
@ -17,7 +17,8 @@ public class DevicePowerDTO {
|
||||
private String framType;
|
||||
private String facType;
|
||||
private String testRecord;
|
||||
|
||||
|
||||
private String areaCode;
|
||||
//---------------------------------
|
||||
String serialNumber;
|
||||
}
|
@ -69,4 +69,9 @@ private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty("平台证书序列号")
|
||||
private String platformCertificateSerialNumber;
|
||||
|
||||
/** 区域号 */
|
||||
@Excel(name = "区域号")
|
||||
@ApiModelProperty("区域号")
|
||||
private String areaCode;
|
||||
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ public class NgUserRechargeRecordsServiceImpl implements INgUserRechargeRecordsS
|
||||
//查询用户充值卡信息
|
||||
String cardNumber=String.valueOf(rechargecardUser.getCardnumber());
|
||||
String areaCode=String.valueOf(rechargecardUser.getAreacode());
|
||||
Long deptId=rechargecardUser.getDeptId();
|
||||
UserRechargeCards info=userRechargeCardsMapper.selectUserRechargeCardsByCardNumberAndAreaCode(cardNumber,areaCode);
|
||||
/*if (info == null) {
|
||||
// 如果没有找到对应的记录,返回0或者一个错误码
|
||||
|
@ -60,7 +60,7 @@ public class UserWechatPayServiceImpl implements IUserWechatPayService {
|
||||
//支付结果回调地址
|
||||
// public static String notify_url="https://1f647120.r3.cpolar.cn/pay/getresult";//https://1f647120.r3.cpolar.cn
|
||||
//TODO 生产环境支付结果异步通知地址
|
||||
public static String notify_url="https://farmh5.hze2.com/prod-api/pay/getresult";
|
||||
public static String notify_url="https://www.farm315.com/prod-api/pay/getresult";
|
||||
//https://5f655ed0.r3.cpolar.cn
|
||||
//微信小程序appid
|
||||
public static String appId="wx308612d2a8423311";
|
||||
|
@ -15,10 +15,11 @@
|
||||
<result property="platformCertificates" column="platform_certificates" />
|
||||
<result property="wechatPublicKeyId" column="wechat_public_key_id" />
|
||||
<result property="platformCertificateSerialNumber" column="platform_certificate_serial_number" />
|
||||
<result property="areaCode" column="area_code" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectNgMerchantsVo">
|
||||
select id, mch_id, private_key_path, serial_no, api_v3_key, public_key_path, dept_id, platform_certificates, wechat_public_key_id, platform_certificate_serial_number from ng_merchants
|
||||
select id, mch_id, private_key_path, serial_no, api_v3_key, public_key_path, dept_id, platform_certificates, wechat_public_key_id, platform_certificate_serial_number,area_code from ng_merchants
|
||||
</sql>
|
||||
|
||||
<select id="selectNgMerchantsList" parameterType="NgMerchants" resultMap="NgMerchantsResult">
|
||||
@ -53,6 +54,7 @@
|
||||
<if test="platformCertificates != null">platform_certificates,</if>
|
||||
<if test="wechatPublicKeyId != null">wechat_public_key_id,</if>
|
||||
<if test="platformCertificateSerialNumber != null">platform_certificate_serial_number,</if>
|
||||
<if test="areaCode != null">area_code,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="mchId != null">#{mchId},</if>
|
||||
@ -64,6 +66,7 @@
|
||||
<if test="platformCertificates != null">#{platformCertificates},</if>
|
||||
<if test="wechatPublicKeyId != null">#{wechatPublicKeyId},</if>
|
||||
<if test="platformCertificateSerialNumber != null">#{platformCertificateSerialNumber},</if>
|
||||
<if test="areaCode != null">#{areaCode},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -79,6 +82,7 @@
|
||||
<if test="platformCertificates != null">platform_certificates = #{platformCertificates},</if>
|
||||
<if test="wechatPublicKeyId != null">wechat_public_key_id = #{wechatPublicKeyId},</if>
|
||||
<if test="platformCertificateSerialNumber != null">platform_certificate_serial_number = #{platformCertificateSerialNumber},</if>
|
||||
<if test="areaCode != null">area_code = #{areaCode},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
Reference in New Issue
Block a user