From f0f31fbd0ef291f2fe6d9de81259fd8fb5fe6385 Mon Sep 17 00:00:00 2001 From: guochaojie Date: Mon, 15 Jul 2024 10:26:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/yunxi/controller/DeviceController.java | 99 ++++++------------- .../cc/yunxi/service/impl/WxServiceImpl.java | 22 ----- .../java/cc/yunxi/NxhsApplicationTest.java | 10 +- 3 files changed, 39 insertions(+), 92 deletions(-) diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/DeviceController.java b/nxhs-service/src/main/java/cc/yunxi/controller/DeviceController.java index 12b53bd..625ea69 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/DeviceController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/DeviceController.java @@ -17,6 +17,7 @@ import cc.yunxi.utils.RedisTool; import cc.yunxi.utils.UserContext; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -326,8 +327,10 @@ public class DeviceController { return ""; } for (Snap snap : snaps) { - FileUploadRespVO uploadRespVO = fileService.uploadImage(snap.getImage(), snap.getFileName()); - list.add(uploadRespVO); + if (null != snap && StrUtil.isNotEmpty(snap.getImage())) { + FileUploadRespVO uploadRespVO = fileService.uploadImage(snap.getImage(), snap.getFileName()); + list.add(uploadRespVO); + } } return JSONUtil.toJsonStr(list); } @@ -519,12 +522,12 @@ public class DeviceController { order.setBagNo(orderVO.getBagNo()); order.setLoginType("2"); List images = orderVO.getImages(); - if (images == null || images.size() == 0) { - throw new BizIllegalException("上传失败:未上传抓拍图片!!"); - } else { - String result = uploadImages(images); - order.setPhoto(result); - } +// if (images == null || images.size() == 0) { +// throw new BizIllegalException("上传失败:未上传抓拍图片!!"); +// } else { + String result = uploadImages(images); + order.setPhoto(result); +// } order.setAdjustSet(Integer.valueOf(adjustSet)); //审核 if ("1".equals(adjustSet)) { @@ -621,14 +624,6 @@ public class DeviceController { if (!exist) { return CommonResult.error(400, "设备不在线,命令不能下发!"); } -// Object value = redisTool.getValue(deviceCode); -// Long expire = redisTool.getKeyExpire(deviceCode, TimeUnit.SECONDS); -// log.info("@@@@@ 过期时间:{}", expire); -// if (null == value) return CommonResult.error(400, "设备不在线"); -// DeviceStatus status = JSONUtil.toBean(value.toString(), DeviceStatus.class); -// // 判断设备是否在线 -// boolean online = status.isOnline(); -// if (!online) return CommonResult.error(400, "设备不在线"); boolean connected = mqttClient.isConnected(); if (!connected) return CommonResult.error(400, "与mqtt服务器连接中断,请稍后重试!"); // 下发指令 @@ -638,7 +633,11 @@ public class DeviceController { event.setDeviceCode(deviceCode); event.setBucketCode("");//桶编码 if (null != cmd.getData() && StrUtil.isNotEmpty(cmd.getData().toString())) { - event.setBucketCode(cmd.getData().toString());//桶编码 + JSONObject _data = JSONUtil.parseObj(cmd.getData()); + String bucketCode = _data.getStr("bucketCode"); + if (StrUtil.isNotEmpty(bucketCode)) { + event.setBucketCode(bucketCode.toString()); + }//桶编码 } RecycleDevice device = deviceService.getByDeviceCode(deviceCode); event.setEventType(cmd.getCmd().getValue()); @@ -663,14 +662,20 @@ public class DeviceController { List list = snapVO.getSnapList(); if (list == null || list.size() == 0) { log.error("上传失败,图片为空!deviceCode{},orderNo{}", deviceCode, orderNo); - return CommonResult.error(400, "上传失败,图片为空!"); +// return CommonResult.error(400, "上传失败,图片为空!"); + return CommonResult.success(""); } ArrayList result = new ArrayList<>(); list.forEach(snap -> { - FileUploadRespVO respVO = fileService.uploadImage(snap.getImage(), snap.getFileName()); - result.add(respVO); + if (null == snap || StrUtil.isEmpty(snap.getImage())) { + log.error("上传失败,图片为空!deviceCode{},orderNo{}", deviceCode, orderNo); + } else { + FileUploadRespVO respVO = fileService.uploadImage(snap.getImage(), snap.getFileName()); + result.add(respVO); + } }); + log.info("上传成功,orderNo{},json", orderNo, JSONUtil.toJsonStr(result)); Duration duration = Duration.ofSeconds(60 * 10);//3分钟过期 if (StrUtil.isNotEmpty(orderNo)) { if (orderNo.contains(BusinessCodeEnum.DELIVERY.getCode())) { @@ -745,50 +750,6 @@ public class DeviceController { bucketService.updateStatus(status); } } -// des.setOnline(true);//在线 -// log.info("设备编码:{},状态上报:{}", deviceCode, JSONUtil.toJsonStr(des)); -// Object value = redisTool.getValue(deviceCode); -// if (value == null) { -// //更新设备状态 -//// deviceService.updateDevice(des); -// log.info("首次更新设备状态:{},详情:{}", des.getDeviceCode(), JSONUtil.toJsonStr(des)); -// //更新桶配置 -// des.getBucketList().forEach(bucket -> { -// bucketService.updateStatus(bucket); -// log.info("首次更新桶状态:{},详情:{}", bucket.getBucketCode(), JSONUtil.toJsonStr(bucket)); -// }); -// } else { -// DeviceStatus status = JSONUtil.toBean(value.toString(), DeviceStatus.class); -// //判断是否发生了改变 -// boolean changed = deviceService.isChanged(status, des); -// if (changed) { -// deviceService.updateDevice(des); -// log.info("更新设备状态:{},详情:{}", des.getDeviceCode(), JSONUtil.toJsonStr(des)); -// } - //更新设备状态 -// List oldList = status.getBucketList(); -// List newList = des.getBucketList(); -// for (BucketStatus now : newList) { -// //判断是否在旧桶列表中 -// Optional first = oldList.stream() -// .filter(old -> old.getBucketCode().equals(now.getBucketCode())) -// .findFirst(); -// if (first.isPresent()) { -// BucketStatus old = first.get(); -// boolean flag = bucketService.isChanged(old, now); -// if (flag) { -// bucketService.updateStatus(now); -// log.info("更新桶状态:{},详情:{}", now.getBucketCode(), JSONUtil.toJsonStr(now)); -// } -// } else { -// bucketService.updateStatus(now); -// log.info("首次更新桶状态:{},详情:{}", now.getBucketCode(), JSONUtil.toJsonStr(now)); -// } -// } -// } -// redisTool.setValue(deviceCode, JSONUtil.toJsonStr(des), 1000 * 60 * 5L);//5分钟 -// CommonResult success = CommonResult.success(deviceCode); -// success.setMsg("success"); Duration duration = Duration.ofSeconds(60 * 3); redisTool.setValueNow("status_" + bucketCode, JSONUtil.toJsonStr(status), duration);//3分钟 return CommonResult.success(bucketCode, "success"); @@ -799,7 +760,7 @@ public class DeviceController { public CommonResult weight(@RequestBody WeightVO weight) { String key = "weight_" + weight.getDeviceCode() + "_" + weight.getBucketCode(); // redisTool. - Duration duration = Duration.ofSeconds(60*3);//3分钟过期 + Duration duration = Duration.ofSeconds(60 * 3);//3分钟过期 redisTool.setValueNow(key, JSONUtil.toJsonStr(weight), duration); log.info("上传重量:{}", JSONUtil.toJsonStr(weight)); return CommonResult.success("success"); @@ -863,6 +824,7 @@ public class DeviceController { String deviceCode = authVO.getDeviceCode(); Duration duration = Duration.ofSeconds(60 * 3); redisTool.setValueNow("auth_" + deviceCode, JSONUtil.toJsonStr(authVO), duration); + log.info("写入控制权:{}", JSONUtil.toJsonStr(authVO)); return CommonResult.success("success"); } @@ -871,10 +833,10 @@ public class DeviceController { public CommonResult getControlAuth(@RequestBody DeviceVO deviceVO) { String deviceCode = deviceVO.getDeviceCode(); Object value = redisTool.getValue("auth_" + deviceCode); - long expire = redisTool.getKeyExpire("auth_" + deviceCode, TimeUnit.SECONDS); - if (null == value || expire <= 0) { + if (null == value) { return CommonResult.error(400, "获取控制权失败"); } else { + log.info("读取控制权:value:{}", value); ControlAuthVO bean = JSONUtil.toBean(value.toString(), ControlAuthVO.class); return CommonResult.success(bean); } @@ -946,7 +908,8 @@ public class DeviceController { //抓拍信息 Object value = redisTool.getValue(orderNo); if (null != value) { - order.setPhoto(value.toString()); + log.info("投递成功,获取到抓拍信息:{}", value); + order.setPhoto(JSONUtil.toJsonStr(value)); } //审核信息 order.setAdjustSet(Integer.valueOf(adjustSet)); diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/WxServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/WxServiceImpl.java index 4095ea2..6c9270d 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/WxServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/WxServiceImpl.java @@ -4,10 +4,8 @@ import cc.yunxi.common.exception.BizIllegalException; import cc.yunxi.config.props.WxHsyProperties; import cc.yunxi.config.props.WxShProperties; import cc.yunxi.domain.vo.file.FileUploadRespVO; -import cc.yunxi.domain.vo.vxmessage.AccessToken; import cc.yunxi.domain.vo.vxmessage.QRCodeVo; import cc.yunxi.service.IWxService; -import cc.yunxi.utils.VerifyUtil; import cc.yunxi.utils.WeChatMessageUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.Header; @@ -40,8 +38,6 @@ public class WxServiceImpl implements IWxService { private WxHsyProperties wxHsyProperties; @Resource private FileServiceImpl fileService; - @Resource - private WeChatMessageUtil weChatMessageUtil; @Override public void syncTest() { @@ -115,13 +111,6 @@ public class WxServiceImpl implements IWxService { .timeout(2000) .execute(); return res; -// log.info("响应状态:" + res.getStatus()); -// log.info("Cache-Control:" + res.header("Cache-Control")); -// log.info("Content-disposition:" + res.header("Content-disposition")); -// log.info("Content-Length:" + res.header("Content-Length")); -// log.info("Content-Type:" + res.header("Content-Type")); -// log.info("Response Body:" + res.body()); -// log.info("<--- getResDevQrCode"); } catch (RuntimeException e) { log.error(":" + e.getMessage()); e.printStackTrace(); @@ -134,17 +123,6 @@ public class WxServiceImpl implements IWxService { // resDevQrCode --- 微信二维码Res @Override public FileUploadRespVO saveDevQrCode(String strDevCode, HttpResponse response) { -// log.info("---> saveDevQrCode(设备二维码保存)"); -// try { -// byte[] bytes = response.bodyBytes(); -// return fileService.uploadImage(bytes, strDevCode); -// String filePath = System.getProperty("user.dir") + java.io.File.separator + "qrcode" + java.io.File.separator + "dev" + java.io.File.separator + "dev-" + strDevCode + ".jpg"; -// Img.from(response.bodyStream()).write(FileUtil.file(filePath)); -// } catch (RuntimeException e) { -//// log.error("getToken:" + e.toString()); -// } -// log.info("<--- saveDevQrCode"); - byte[] bytes = response.bodyBytes(); return fileService.uploadImage(bytes, strDevCode + ".jpg"); } diff --git a/nxhs-service/src/test/java/cc/yunxi/NxhsApplicationTest.java b/nxhs-service/src/test/java/cc/yunxi/NxhsApplicationTest.java index d657a2f..c44d3ff 100644 --- a/nxhs-service/src/test/java/cc/yunxi/NxhsApplicationTest.java +++ b/nxhs-service/src/test/java/cc/yunxi/NxhsApplicationTest.java @@ -5,6 +5,8 @@ import cc.yunxi.domain.vo.recycleorder.shorder.SHRecycleOrderRespVO; import cc.yunxi.service.IRecyclerService; import cc.yunxi.service.ITestService; import cc.yunxi.utils.JwtTool; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Filter; import cn.hutool.core.util.ReflectUtil; import org.junit.jupiter.api.Test; @@ -16,6 +18,7 @@ import java.lang.invoke.MethodType; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.math.BigDecimal; +import java.util.Date; @SpringBootTest public class NxhsApplicationTest { @@ -64,8 +67,11 @@ public class NxhsApplicationTest { // Filter fieldFilter = field -> field.getName().startsWith("name") || field.getType().equals(String.class); // Field[] fields = ReflectUtil.getFields(SHRecycleOrderRespVO.class, fieldFilter); // System.out.println(fields.length); - BigDecimal number = new BigDecimal("123.00"); - System.out.println(number.stripTrailingZeros().scale() <= 0); +// BigDecimal number = new BigDecimal("123.00"); +// System.out.println(number.stripTrailingZeros().scale() <= 0); + Date ste = new Date(); + String now = DateUtil.format(ste, "yyyy-MM-dd'T'HH:mm:ssXXX"); + System.out.println(now); } }