diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/ProcessFeignClient.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/ProcessFeignClient.java new file mode 100644 index 0000000..473b41a --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/ProcessFeignClient.java @@ -0,0 +1,24 @@ +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.ProcessFeignClientFallbackFactory; +import com.njcn.csdevice.pojo.po.CsEquipmentProcessPO; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * @author xy + */ +@FeignClient(value = ServerInfo.CS_DEVICE_BOOT, path = "/process", fallbackFactory = ProcessFeignClientFallbackFactory.class,contextId = "process") + +public interface ProcessFeignClient { + + @PostMapping("/add") + @ApiOperation("新增记录") + HttpResult add(@RequestBody @Validated CsEquipmentProcessPO csEquipmentProcess); + +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/ProcessFeignClientFallbackFactory.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/ProcessFeignClientFallbackFactory.java new file mode 100644 index 0000000..bb8e85c --- /dev/null +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/api/fallback/ProcessFeignClientFallbackFactory.java @@ -0,0 +1,41 @@ +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.ProcessFeignClient; +import com.njcn.csdevice.pojo.po.CsEquipmentProcessPO; +import com.njcn.csdevice.utils.CsDeviceEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/4/10 20:09 + */ +@Slf4j +@Component +public class ProcessFeignClientFallbackFactory implements FallbackFactory { + @Override + public ProcessFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if (cause.getCause() instanceof BusinessException) { + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = CsDeviceEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new ProcessFeignClient() { + + @Override + public HttpResult add(CsEquipmentProcessPO csEquipmentProcess) { + log.error("{}异常,降级处理,异常为:{}","新增记录",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentProcessPO.java b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentProcessPO.java index e85dde4..0b342ff 100644 --- a/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentProcessPO.java +++ b/cs-device/cs-device-api/src/main/java/com/njcn/csdevice/pojo/po/CsEquipmentProcessPO.java @@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.util.Date; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.LocalDateTime; + /** * * Description: @@ -41,13 +40,13 @@ public class CsEquipmentProcessPO { * 起始时间 */ @TableField(value = "start_time") - private Date startTime; + private LocalDateTime startTime; /** * 结束时间 */ @TableField(value = "end_time") - private Date endTime; + private LocalDateTime endTime; /** @@ -55,4 +54,11 @@ public class CsEquipmentProcessPO { */ @TableField(value = "`process`") private Integer process; + + /** + * 流程状态 0:取消 1:成功 + */ + @TableField(value = "status") + private Integer status; + } \ No newline at end of file diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEquipmentProcessController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEquipmentProcessController.java new file mode 100644 index 0000000..bf7c0f9 --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsEquipmentProcessController.java @@ -0,0 +1,52 @@ +package com.njcn.csdevice.controller.equipment; + +import com.njcn.common.pojo.annotation.OperateInfo; +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.CsEquipmentProcessPO; +import com.njcn.csdevice.service.CsEquipmentProcessPOService; +import com.njcn.web.controller.BaseController; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 类的介绍:设备调试日志记录 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/9/14 10:01 + */ +@Slf4j +@RestController +@RequestMapping("/process") +@Api(tags = "设备调试日志") +@AllArgsConstructor +public class CsEquipmentProcessController extends BaseController { + + private final CsEquipmentProcessPOService csEquipmentProcessPOService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/add") + @ApiOperation("新增记录") + @ApiImplicitParam(name = "clDev", value = "逻辑子设备标识", required = true) + public HttpResult add(@RequestBody @Validated CsEquipmentProcessPO csEquipmentProcess){ + String methodDescribe = getMethodDescribe("add"); + boolean result = csEquipmentProcessPOService.save(csEquipmentProcess); + if (result){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe); + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "fail", methodDescribe); + } + + +} diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsLogController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsLogController.java index 3f07491..6a0de3e 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsLogController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/CsLogController.java @@ -1,36 +1,27 @@ package com.njcn.csdevice.controller.equipment; -import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.metadata.IPage; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.dto.DeviceLogDTO; -import com.njcn.common.pojo.dto.LogInfoDTO; 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.param.CsMarketDataParam; import com.njcn.csdevice.pojo.po.CsLogsPO; -import com.njcn.csdevice.service.impl.CsLogsPOService; -import com.njcn.user.enums.AppRoleEnum; +import com.njcn.csdevice.service.CsLogsPOService; import com.njcn.web.controller.BaseController; import com.njcn.web.pojo.param.BaseParam; -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.apache.commons.lang.StringUtils; -import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; - /** * Description: * Date: 2023/8/7 14:21【需求编号】 diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java index 221a39a..e90f6f8 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/controller/equipment/EquipmentDeliveryController.java @@ -224,12 +224,10 @@ public class EquipmentDeliveryController extends BaseController { @ResponseBody @ApiOperation("联调完成") @PostMapping(value = "testcompletion") - public HttpResult testCompletion(@RequestParam("deviceId") String deviceId){ + public HttpResult testCompletion(@RequestParam("deviceId") String deviceId,@RequestParam("type") String type){ String methodDescribe = getMethodDescribe("testCompletion"); - csEquipmentDeliveryService.testCompletion(deviceId); - + csEquipmentDeliveryService.testCompletion(deviceId,type); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); - } diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/handler/MqttMessageHandler.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/handler/MqttMessageHandler.java index ea7d0d4..3443946 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/handler/MqttMessageHandler.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/handler/MqttMessageHandler.java @@ -4,25 +4,16 @@ package com.njcn.csdevice.handler; import com.github.tocrhz.mqtt.annotation.MqttSubscribe; import com.github.tocrhz.mqtt.annotation.Payload; -import com.github.tocrhz.mqtt.publisher.MqttPublisher; import com.njcn.common.pojo.dto.DeviceLogDTO; import com.njcn.common.utils.PubUtils; -import com.njcn.csdevice.service.impl.CsLogsPOService; +import com.njcn.csdevice.service.CsLogsPOService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttMessage; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import java.nio.charset.StandardCharsets; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @author xuyang diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java index 870a1ed..382bf18 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/CsEquipmentDeliveryService.java @@ -97,5 +97,5 @@ public interface CsEquipmentDeliveryService extends IService csLedgerQueryWrapper = new QueryWrapper<>(); /** @@ -442,7 +448,6 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl csLinePOQueryWrapper = new QueryWrapper<>(); csLinePOQueryWrapper.clear(); @@ -453,25 +458,21 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl implements CsLogsPOService{ +public class CsLogsPOServiceImpl extends ServiceImpl implements CsLogsPOService { @Override // @Transactional(rollbackFor = {Exception.class})