master
guochaojie 3 months ago
parent 79265f86ab
commit f0f31fbd0e

@ -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,9 +327,11 @@ public class DeviceController {
return "";
}
for (Snap snap : snaps) {
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<Snap> images = orderVO.getImages();
if (images == null || images.size() == 0) {
throw new BizIllegalException("上传失败:未上传抓拍图片!!");
} else {
// 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<Snap> 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<FileUploadRespVO> result = new ArrayList<>();
list.forEach(snap -> {
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<BucketStatus> oldList = status.getBucketList();
// List<BucketStatus> newList = des.getBucketList();
// for (BucketStatus now : newList) {
// //判断是否在旧桶列表中
// Optional<BucketStatus> 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<String> 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");
@ -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<ControlAuthVO> 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));

@ -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");
}

@ -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<Field> 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);
}
}

Loading…
Cancel
Save