fix(service): 修复设备文件上传中的参数传递错误

- 修正了CsEquipmentDeliveryServiceImpl中设备ID参数传递错误的问题
- 将所有使用错误参数id的地方改为正确的nDid参数
- 修复了Redis缓存键值中使用错误参数导致的清理问题
- 修改CslineController中queryLineById方法的参数接收方式从RequestParam改为RequestBody
- 更新CsLineFeignClient接口中queryLineById方法的参数注解从RequestParam改为RequestBody以保持一致
This commit is contained in:
xy
2026-07-22 09:22:24 +08:00
parent b7db768a46
commit 2ef044f41b
3 changed files with 16 additions and 16 deletions

View File

@@ -27,7 +27,7 @@ import java.util.Map;
public interface CsLineFeignClient {
@PostMapping("/queryLineById")
HttpResult<List<CsLinePO>> queryLineById(@RequestParam("ids") List<String> ids );
HttpResult<List<CsLinePO>> queryLineById(@RequestBody List<String> ids );
@PostMapping("/queryLineByDevId")
HttpResult<List<CsLinePO>> queryLineByDevId(@RequestParam("id") String id);

View File

@@ -53,7 +53,7 @@ public class CslineController extends BaseController {
@PostMapping("/queryLineById")
@ApiOperation("监测点查询通过id获取")
@ApiImplicitParam(name = "ids", value = "设备id获集合", required = true)
public HttpResult<List<CsLinePO>> queryLineById(@RequestParam List<String> ids){
public HttpResult<List<CsLinePO>> queryLineById(@RequestBody List<String> ids){
String methodDescribe = getMethodDescribe("queryLineById");
List<CsLinePO> csLinePOS = csLinePOService.listByIds(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csLinePOS, methodDescribe);

View File

@@ -1455,19 +1455,19 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
for (int i = 1; i <= times; i++) {
//发送数据给前端
String json = "{fileName:"+po.getFilePath()+",allStep:"+times+",nowStep:"+i+"}";
publisher.send("/Web/Progress/" + id, new Gson().toJson(json), 1, false);
publisher.send("/Web/Progress/" + nDid, new Gson().toJson(json), 1, false);
LogMessage logDto = new LogMessage();
byte[] lsBytes;
if (length > 50*1024) {
lsBytes = Arrays.copyOfRange(bytes, (i - 1) * cap, i * cap);
ReqAndResDto.Req req = getPojo(i,path,bytes.length,lsBytes,(i-1)*cap);
publisher.send("/Pfm/DevFileCmd/" + version + "/" + id, new Gson().toJson(req), 1, false);
logDto.setOperate(id + "设备上送文件,这是第" + i + "");
publisher.send("/Pfm/DevFileCmd/" + version + "/" + nDid, new Gson().toJson(req), 1, false);
logDto.setOperate(nDid + "设备上送文件,这是第" + i + "");
logDto.setResult(1);
length = length - cap;
//判断是否重发
sendNextStep(logDto,path,bytes.length,lsBytes,(i-1)*cap,version,id,i,false);
FileRedisDto fileRedisDto = (FileRedisDto) redisUtil.getObjectByKey(AppRedisKey.UPLOAD.concat(id).concat(String.valueOf(i)));
sendNextStep(logDto,path,bytes.length,lsBytes,(i-1)*cap,version,nDid,i,false);
FileRedisDto fileRedisDto = (FileRedisDto) redisUtil.getObjectByKey(AppRedisKey.UPLOAD.concat(nDid).concat(String.valueOf(i)));
//重发之后判断继续循环还是跳出循环
if (!Objects.isNull(fileRedisDto) && !Objects.equals(fileRedisDto.getCode(),200)) {
redisUtil.delete("uploading:" + nDid);
@@ -1476,11 +1476,11 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
} else {
lsBytes = Arrays.copyOfRange(bytes, (i - 1) * cap, bytes.length);
ReqAndResDto.Req req = getPojo(i,path,bytes.length,lsBytes,(i-1)*cap);
publisher.send("/Pfm/DevFileCmd/" + version + "/" + id, new Gson().toJson(req), 1, false);
publisher.send("/Pfm/DevFileCmd/" + version + "/" + nDid, new Gson().toJson(req), 1, false);
logDto.setOperate(id + "设备上送文件,这是最后一帧,为第" + i + "");
logDto.setResult(1);
//判断是否重发
sendNextStep(logDto,path,bytes.length,lsBytes,(i-1)*cap,version,id,i,true);
sendNextStep(logDto,path,bytes.length,lsBytes,(i-1)*cap,version,nDid,i,true);
}
logMessageTemplate.sendMember(logDto);
}
@@ -1488,17 +1488,17 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
String json = "{fileName:"+path+",allStep:\""+1+"\",nowStep:"+1+"}";
publisher.send("/Web/Progress", new Gson().toJson(json), 1, false);
ReqAndResDto.Req req = getPojo(1,path,length,bytes,0);
publisher.send("/Pfm/DevFileCmd/" + version + "/" + id, new Gson().toJson(req), 1, false);
publisher.send("/Pfm/DevFileCmd/" + version + "/" + nDid, new Gson().toJson(req), 1, false);
LogMessage logDto = new LogMessage();
logDto.setOperate(id + "系统上送文件,当前文件只有1帧");
logDto.setOperate(nDid + "系统上送文件,当前文件只有1帧");
logDto.setResult(1);
logMessageTemplate.sendMember(logDto);
//判断是否重发
sendNextStep(logDto,path,length,bytes,0,version,id,1,false);
sendNextStep(logDto,path,length,bytes,0,version,nDid,1,false);
}
} catch (IOException e) {
redisUtil.delete("uploading:" + id);
redisUtil.delete("fileDowning:" + id);
redisUtil.delete("uploading:" + nDid);
redisUtil.delete("fileDowning:" + nDid);
LogMessage logDto = new LogMessage();
logDto.setResult(0);
logDto.setOperate("系统上传升级文件,获取文件流");
@@ -1506,8 +1506,8 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
logMessageTemplate.sendMember(logDto);
throw new BusinessException("获取文件流失败");
} catch (Exception e) {
redisUtil.delete("uploading:" + id);
redisUtil.delete("fileDowning:" + id);
redisUtil.delete("uploading:" + nDid);
redisUtil.delete("fileDowning:" + nDid);
LogMessage logDto = new LogMessage();
logDto.setResult(0);
logDto.setOperate("系统上传升级文件");