From 058229e8c49c335aec5e916b29365bee538e6585 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Wed, 29 Apr 2026 08:52:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=8A=9F=E8=83=BD=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../csdevice/api/CsEdDataFeignClient.java | 9 ++- .../api/CsUpgradeLogsFeignClient.java | 22 ++++++ .../CsEdDataFeignClientFallbackFactory.java | 6 ++ .../CsUpgradeLogsClientFallbackFactory.java | 36 +++++++++ .../com/njcn/csdevice/pojo/po/CsEdDataPO.java | 5 +- .../njcn/csdevice/pojo/po/CsUpgradeLogs.java | 75 +++++++++++++++++++ .../njcn/csdevice/pojo/vo/DevVersionVO.java | 4 +- .../equipment/CsSoftInfoController.java | 2 - .../equipment/CsUpgradeLogsController.java | 56 ++++++++++++++ .../project/CsEdDataController.java | 11 +++ .../csdevice/mapper/CsUpgradeLogsMapper.java | 12 +++ .../service/CsUpgradeLogsService.java | 11 +++ .../service/impl/CsEdDataServiceImpl.java | 6 +- .../impl/CsUpgradeLogsServiceImpl.java | 15 ++++ 14 files changed, 256 insertions(+), 14 deletions(-) create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsUpgradeLogsFeignClient.java create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsUpgradeLogsClientFallbackFactory.java create mode 100644 cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsUpgradeLogs.java create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsUpgradeLogsMapper.java create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsUpgradeLogsService.java create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsUpgradeLogsServiceImpl.java diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsEdDataFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsEdDataFeignClient.java index 20d62e3..ea93b64 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsEdDataFeignClient.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsEdDataFeignClient.java @@ -1,16 +1,14 @@ package com.njcn.csdevice.api; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.response.HttpResult; 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.vo.CsEdDataVO; import org.springframework.cloud.openfeign.FeignClient; 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.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -18,7 +16,7 @@ import java.util.List; /** * @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 { @PostMapping("/findByDevTypeId") @@ -26,4 +24,7 @@ public interface CsEdDataFeignClient { @PostMapping("/getAll") HttpResult> getAll(@RequestParam("devType") String devType); + + @GetMapping("/getById") + HttpResult getById(@RequestParam("id") String id); } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsUpgradeLogsFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsUpgradeLogsFeignClient.java new file mode 100644 index 0000000..1fdab89 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/CsUpgradeLogsFeignClient.java @@ -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); + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsEdDataFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsEdDataFeignClientFallbackFactory.java index 27c9a96..d119364 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsEdDataFeignClientFallbackFactory.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsEdDataFeignClientFallbackFactory.java @@ -39,6 +39,12 @@ public class CsEdDataFeignClientFallbackFactory implements FallbackFactory getById(String id) { + log.error("{}异常,降级处理,异常为:{}","根据id获取装置类型",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsUpgradeLogsClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsUpgradeLogsClientFallbackFactory.java new file mode 100644 index 0000000..d06c084 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/CsUpgradeLogsClientFallbackFactory.java @@ -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 { + @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); + } + }; + } +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEdDataPO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEdDataPO.java index 2c3b571..19105e2 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEdDataPO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEdDataPO.java @@ -7,7 +7,7 @@ import com.njcn.db.bo.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; +import java.time.LocalDateTime; /** * Description: @@ -61,7 +61,7 @@ public class CsEdDataPO extends BaseEntity { * 版本日期 */ @TableField(value = "version_date") - private Date versionDate; + private LocalDateTime versionDate; /** * 描述 @@ -94,5 +94,4 @@ public class CsEdDataPO extends BaseEntity { private String crc; - } \ No newline at end of file diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsUpgradeLogs.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsUpgradeLogs.java new file mode 100644 index 0000000..7494fd4 --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsUpgradeLogs.java @@ -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; +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevVersionVO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevVersionVO.java index c0af57a..3f98762 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevVersionVO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/vo/DevVersionVO.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.time.LocalDateTime; -import java.util.Date; /** * @author caozehui @@ -34,7 +33,8 @@ public class DevVersionVO { /** * 版本日期 */ - private Date versionDate; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime versionDate; /** * 设备型号 diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsSoftInfoController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsSoftInfoController.java index 10f8710..8b3c7ff 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsSoftInfoController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsSoftInfoController.java @@ -66,7 +66,5 @@ public class CsSoftInfoController extends BaseController { csSoftInfoService.removeById(id); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } - - } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java new file mode 100644 index 0000000..4c3630e --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsUpgradeLogsController.java @@ -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> getByDevId(@RequestBody String devId) { + String methodDescribe = getMethodDescribe("getByDevId"); + List result = csUpgradeLogsService.lambdaQuery().eq(CsUpgradeLogs::getDevId, devId).list(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsEdDataController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsEdDataController.java index cac4e0a..0718b4d 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsEdDataController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/project/CsEdDataController.java @@ -9,6 +9,7 @@ import com.njcn.common.utils.HttpResultUtil; import com.njcn.csdevice.pojo.param.CsEdDataAddParm; import com.njcn.csdevice.pojo.param.CsEdDataAuditParm; 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.service.CsEdDataService; import com.njcn.web.controller.BaseController; @@ -79,4 +80,14 @@ public class CsEdDataController extends BaseController { 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 getById(@Validated @RequestParam("id") String id){ + String methodDescribe = getMethodDescribe("getById"); + CsEdDataPO dataPO = csEdDataService.getById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataPO, methodDescribe); + } + } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsUpgradeLogsMapper.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsUpgradeLogsMapper.java new file mode 100644 index 0000000..2afc830 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/mapper/CsUpgradeLogsMapper.java @@ -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 { +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsUpgradeLogsService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsUpgradeLogsService.java new file mode 100644 index 0000000..2792e3d --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsUpgradeLogsService.java @@ -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 { +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEdDataServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEdDataServiceImpl.java index 7eca960..0092f34 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEdDataServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEdDataServiceImpl.java @@ -43,8 +43,8 @@ public class CsEdDataServiceImpl extends ServiceImpl public boolean addEdData(CsEdDataAddParm csEdDataAddParm) { CsEdDataPO csEdDataPO = new CsEdDataPO(); BeanUtils.copyProperties(csEdDataAddParm, csEdDataPO); - String remoteDir = OssPath.EDDATA + csEdDataAddParm.getDevTypeName() + StrUtil.SLASH + csEdDataAddParm.getVersionNo() + StrUtil.SLASH; - String filePath = fileStorageUtil.uploadMultipart(csEdDataAddParm.getFile(), remoteDir); + String remoteDir = StrUtil.SLASH + OssPath.EDDATA + csEdDataAddParm.getDevTypeName() + StrUtil.SLASH + csEdDataAddParm.getVersionNo() + StrUtil.SLASH; + String filePath = fileStorageUtil.uploadMultipart(csEdDataAddParm.getFile(), remoteDir, true); csEdDataPO.setCrc(csEdDataAddParm.getCrcInfo()); csEdDataPO.setFilePath(filePath); csEdDataPO.setStatus("1"); @@ -58,7 +58,7 @@ public class CsEdDataServiceImpl extends ServiceImpl CsEdDataPO csEdDataPO = new CsEdDataPO(); BeanUtils.copyProperties(csEdDataAuditParm, csEdDataPO); 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); } boolean b = this.updateById(csEdDataPO); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsUpgradeLogsServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsUpgradeLogsServiceImpl.java new file mode 100644 index 0000000..56a55b1 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsUpgradeLogsServiceImpl.java @@ -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 implements CsUpgradeLogsService { +}