升级功能调整
This commit is contained in:
@@ -1,16 +1,14 @@
|
|||||||
package com.njcn.csdevice.api;
|
package com.njcn.csdevice.api;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import com.njcn.common.pojo.constant.ServerInfo;
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.csdevice.api.fallback.CsEdDataFeignClientFallbackFactory;
|
import com.njcn.csdevice.api.fallback.CsEdDataFeignClientFallbackFactory;
|
||||||
import com.njcn.csdevice.pojo.param.CsEdDataQueryParm;
|
|
||||||
import com.njcn.csdevice.pojo.po.CsEdDataPO;
|
import com.njcn.csdevice.pojo.po.CsEdDataPO;
|
||||||
import com.njcn.csdevice.pojo.vo.CsEdDataVO;
|
import com.njcn.csdevice.pojo.vo.CsEdDataVO;
|
||||||
import org.springframework.cloud.openfeign.FeignClient;
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -18,7 +16,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* @author xy
|
* @author xy
|
||||||
*/
|
*/
|
||||||
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/edData", fallbackFactory = CsEdDataFeignClientFallbackFactory.class,contextId = "edData")
|
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/edData", fallbackFactory = CsEdDataFeignClientFallbackFactory.class, contextId = "edData")
|
||||||
public interface CsEdDataFeignClient {
|
public interface CsEdDataFeignClient {
|
||||||
|
|
||||||
@PostMapping("/findByDevTypeId")
|
@PostMapping("/findByDevTypeId")
|
||||||
@@ -26,4 +24,7 @@ public interface CsEdDataFeignClient {
|
|||||||
|
|
||||||
@PostMapping("/getAll")
|
@PostMapping("/getAll")
|
||||||
HttpResult<List<CsEdDataPO>> getAll(@RequestParam("devType") String devType);
|
HttpResult<List<CsEdDataPO>> getAll(@RequestParam("devType") String devType);
|
||||||
|
|
||||||
|
@GetMapping("/getById")
|
||||||
|
HttpResult<CsEdDataPO> getById(@RequestParam("id") String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.njcn.csdevice.api;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.constant.ServerInfo;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.csdevice.api.fallback.CsUpgradeLogsClientFallbackFactory;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsUpgradeLogs;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
*/
|
||||||
|
@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/csUpgradeLogs", fallbackFactory = CsUpgradeLogsClientFallbackFactory.class,contextId = "csSoftInfo")
|
||||||
|
public interface CsUpgradeLogsFeignClient {
|
||||||
|
@PostMapping("/add")
|
||||||
|
HttpResult add(@RequestBody CsUpgradeLogs csUpgradeLogs);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -39,6 +39,12 @@ public class CsEdDataFeignClientFallbackFactory implements FallbackFactory<CsEdD
|
|||||||
log.error("{}异常,降级处理,异常为:{}","根据装置型号获取装置类型",cause.toString());
|
log.error("{}异常,降级处理,异常为:{}","根据装置型号获取装置类型",cause.toString());
|
||||||
throw new BusinessException(finalExceptionEnum);
|
throw new BusinessException(finalExceptionEnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HttpResult<CsEdDataPO> getById(String id) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}","根据id获取装置类型",cause.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package com.njcn.csdevice.api.fallback;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.csdevice.api.CsUpgradeLogsFeignClient;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsUpgradeLogs;
|
||||||
|
import feign.hystrix.FallbackFactory;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class CsUpgradeLogsClientFallbackFactory implements FallbackFactory<CsUpgradeLogsFeignClient> {
|
||||||
|
@Override
|
||||||
|
public CsUpgradeLogsFeignClient create(Throwable cause) {
|
||||||
|
//判断抛出异常是否为解码器抛出的业务异常
|
||||||
|
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
|
||||||
|
if (cause.getCause() instanceof BusinessException) {
|
||||||
|
BusinessException businessException = (BusinessException) cause.getCause();
|
||||||
|
}
|
||||||
|
Enum<?> finalExceptionEnum = exceptionEnum;
|
||||||
|
|
||||||
|
return new CsUpgradeLogsFeignClient() {
|
||||||
|
@Override
|
||||||
|
public HttpResult add(CsUpgradeLogs csUpgradeLogs) {
|
||||||
|
log.error("{}异常,降级处理,异常为:{}", "新增升级日志异常", cause.toString());
|
||||||
|
throw new BusinessException(finalExceptionEnum);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@ import com.njcn.db.bo.BaseEntity;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Description:
|
* Description:
|
||||||
@@ -61,7 +61,7 @@ public class CsEdDataPO extends BaseEntity {
|
|||||||
* 版本日期
|
* 版本日期
|
||||||
*/
|
*/
|
||||||
@TableField(value = "version_date")
|
@TableField(value = "version_date")
|
||||||
private Date versionDate;
|
private LocalDateTime versionDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 描述
|
* 描述
|
||||||
@@ -94,5 +94,4 @@ public class CsEdDataPO extends BaseEntity {
|
|||||||
private String crc;
|
private String crc;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package com.njcn.csdevice.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
* @description 设备升级日志
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName(value = "cs_upgrade_logs")
|
||||||
|
public class CsUpgradeLogs {
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备id
|
||||||
|
*/
|
||||||
|
@TableField(value = "dev_id")
|
||||||
|
private String devId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本号
|
||||||
|
*/
|
||||||
|
@TableField(value = "version_no")
|
||||||
|
private String versionNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 升级结果(0:失败 1:成功)
|
||||||
|
*/
|
||||||
|
private Integer result;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名称
|
||||||
|
*/
|
||||||
|
@TableField(value = "user_name")
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录名称
|
||||||
|
*/
|
||||||
|
@TableField(value = "login_name")
|
||||||
|
private String loginName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建用户
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT, insertStrategy = FieldStrategy.IGNORED)
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT, insertStrategy = FieldStrategy.IGNORED)
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新用户
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE, insertStrategy = FieldStrategy.IGNORED)
|
||||||
|
private String updateBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE, insertStrategy = FieldStrategy.IGNORED)
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
}
|
||||||
@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author caozehui
|
* @author caozehui
|
||||||
@@ -34,7 +33,8 @@ public class DevVersionVO {
|
|||||||
/**
|
/**
|
||||||
* 版本日期
|
* 版本日期
|
||||||
*/
|
*/
|
||||||
private Date versionDate;
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime versionDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设备型号
|
* 设备型号
|
||||||
|
|||||||
@@ -66,7 +66,5 @@ public class CsSoftInfoController extends BaseController {
|
|||||||
csSoftInfoService.removeById(id);
|
csSoftInfoService.removeById(id);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package com.njcn.csdevice.controller.equipment;
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
|
import com.njcn.common.pojo.constant.OperateType;
|
||||||
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsUpgradeLogs;
|
||||||
|
import com.njcn.csdevice.service.CsUpgradeLogsService;
|
||||||
|
import com.njcn.web.controller.BaseController;
|
||||||
|
import com.njcn.web.utils.RequestUtil;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/csUpgradeLogs")
|
||||||
|
@Api(tags = "装置升级日志")
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Validated
|
||||||
|
public class CsUpgradeLogsController extends BaseController {
|
||||||
|
private final CsUpgradeLogsService csUpgradeLogsService;
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD)
|
||||||
|
@PostMapping("/add")
|
||||||
|
@ApiOperation("新增升级日志")
|
||||||
|
@ApiImplicitParam(name = "csUpgradeLogs", value = "日志参数", required = true)
|
||||||
|
public HttpResult add(@RequestBody CsUpgradeLogs csUpgradeLogs) {
|
||||||
|
csUpgradeLogs.setUserName(RequestUtil.getUsername());
|
||||||
|
csUpgradeLogs.setLoginName(RequestUtil.getLoginName());
|
||||||
|
String methodDescribe = getMethodDescribe("add");
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(csUpgradeLogsService.save(csUpgradeLogs) ? CommonResponseEnum.SUCCESS : CommonResponseEnum.FAIL, null, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD)
|
||||||
|
@GetMapping("/getByDevId")
|
||||||
|
@ApiOperation("查询指定devId的所有升级日志")
|
||||||
|
@ApiImplicitParam(name = "devId", value = "装置Id", required = true)
|
||||||
|
public HttpResult<List<CsUpgradeLogs>> getByDevId(@RequestBody String devId) {
|
||||||
|
String methodDescribe = getMethodDescribe("getByDevId");
|
||||||
|
List<CsUpgradeLogs> result = csUpgradeLogsService.lambdaQuery().eq(CsUpgradeLogs::getDevId, devId).list();
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ import com.njcn.common.utils.HttpResultUtil;
|
|||||||
import com.njcn.csdevice.pojo.param.CsEdDataAddParm;
|
import com.njcn.csdevice.pojo.param.CsEdDataAddParm;
|
||||||
import com.njcn.csdevice.pojo.param.CsEdDataAuditParm;
|
import com.njcn.csdevice.pojo.param.CsEdDataAuditParm;
|
||||||
import com.njcn.csdevice.pojo.param.CsEdDataQueryParm;
|
import com.njcn.csdevice.pojo.param.CsEdDataQueryParm;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsEdDataPO;
|
||||||
import com.njcn.csdevice.pojo.vo.CsEdDataVO;
|
import com.njcn.csdevice.pojo.vo.CsEdDataVO;
|
||||||
import com.njcn.csdevice.service.CsEdDataService;
|
import com.njcn.csdevice.service.CsEdDataService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
@@ -79,4 +80,14 @@ public class CsEdDataController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@GetMapping("/getById")
|
||||||
|
@ApiOperation("根据id查询")
|
||||||
|
@ApiImplicitParam(name = "id", value = "id", required = true)
|
||||||
|
public HttpResult<CsEdDataPO> getById(@Validated @RequestParam("id") String id){
|
||||||
|
String methodDescribe = getMethodDescribe("getById");
|
||||||
|
CsEdDataPO dataPO = csEdDataService.getById(id);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataPO, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.njcn.csdevice.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsUpgradeLogs;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
*/
|
||||||
|
public interface CsUpgradeLogsMapper extends BaseMapper<CsUpgradeLogs> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.njcn.csdevice.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsUpgradeLogs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
*/
|
||||||
|
public interface CsUpgradeLogsService extends IService<CsUpgradeLogs> {
|
||||||
|
}
|
||||||
@@ -43,8 +43,8 @@ public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO>
|
|||||||
public boolean addEdData(CsEdDataAddParm csEdDataAddParm) {
|
public boolean addEdData(CsEdDataAddParm csEdDataAddParm) {
|
||||||
CsEdDataPO csEdDataPO = new CsEdDataPO();
|
CsEdDataPO csEdDataPO = new CsEdDataPO();
|
||||||
BeanUtils.copyProperties(csEdDataAddParm, csEdDataPO);
|
BeanUtils.copyProperties(csEdDataAddParm, csEdDataPO);
|
||||||
String remoteDir = OssPath.EDDATA + csEdDataAddParm.getDevTypeName() + StrUtil.SLASH + csEdDataAddParm.getVersionNo() + StrUtil.SLASH;
|
String remoteDir = StrUtil.SLASH + OssPath.EDDATA + csEdDataAddParm.getDevTypeName() + StrUtil.SLASH + csEdDataAddParm.getVersionNo() + StrUtil.SLASH;
|
||||||
String filePath = fileStorageUtil.uploadMultipart(csEdDataAddParm.getFile(), remoteDir);
|
String filePath = fileStorageUtil.uploadMultipart(csEdDataAddParm.getFile(), remoteDir, true);
|
||||||
csEdDataPO.setCrc(csEdDataAddParm.getCrcInfo());
|
csEdDataPO.setCrc(csEdDataAddParm.getCrcInfo());
|
||||||
csEdDataPO.setFilePath(filePath);
|
csEdDataPO.setFilePath(filePath);
|
||||||
csEdDataPO.setStatus("1");
|
csEdDataPO.setStatus("1");
|
||||||
@@ -58,7 +58,7 @@ public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO>
|
|||||||
CsEdDataPO csEdDataPO = new CsEdDataPO();
|
CsEdDataPO csEdDataPO = new CsEdDataPO();
|
||||||
BeanUtils.copyProperties(csEdDataAuditParm, csEdDataPO);
|
BeanUtils.copyProperties(csEdDataAuditParm, csEdDataPO);
|
||||||
if (!Objects.isNull(csEdDataAuditParm.getFile())) {
|
if (!Objects.isNull(csEdDataAuditParm.getFile())) {
|
||||||
String filePath = fileStorageUtil.uploadMultipart(csEdDataAuditParm.getFile(), OssPath.EDDATA);
|
String filePath = fileStorageUtil.uploadMultipart(csEdDataAuditParm.getFile(), StrUtil.SLASH + OssPath.EDDATA + csEdDataAuditParm.getDevTypeName() + StrUtil.SLASH + csEdDataAuditParm.getVersionNo() + StrUtil.SLASH, true);
|
||||||
csEdDataPO.setFilePath(filePath);
|
csEdDataPO.setFilePath(filePath);
|
||||||
}
|
}
|
||||||
boolean b = this.updateById(csEdDataPO);
|
boolean b = this.updateById(csEdDataPO);
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package com.njcn.csdevice.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.njcn.csdevice.mapper.CsUpgradeLogsMapper;
|
||||||
|
import com.njcn.csdevice.pojo.po.CsUpgradeLogs;
|
||||||
|
import com.njcn.csdevice.service.CsUpgradeLogsService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2026-04-23
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CsUpgradeLogsServiceImpl extends ServiceImpl<CsUpgradeLogsMapper, CsUpgradeLogs> implements CsUpgradeLogsService {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user