Merge remote-tracking branch 'origin/master'

This commit is contained in:
Lee
2023-04-07 11:08:32 +08:00
115 changed files with 2173 additions and 146 deletions

View File

@@ -0,0 +1,39 @@
package com.njcn.algorithm.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* app基础信息表
*/
@Data
public class AppBaseInformationAddParm {
/**
* 内容
*/
@ApiModelProperty(value = "内容")
@NotBlank(message="内容不能为空!")
private String content;
/**
* 类型(字典数据)
*/
@ApiModelProperty(value = "类型")
@NotBlank(message="类型不能为空!")
private String type;
}

View File

@@ -0,0 +1,69 @@
package com.njcn.algorithm.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* app个人中心-设置信息
*/
@Data
public class AppPersonSetAddParm {
/**
* 用户协议(基础信息id)
*/
@ApiModelProperty(value = "用户协议(基础信息id)")
@NotBlank(message="用户协议不能为空!")
private String userAgreement;
/**
* 系统介绍(基础信息id)
*/
@ApiModelProperty(value = "系统介绍(基础信息id)")
@NotBlank(message="系统介绍不能为空!")
private String systemIntroduction;
/**
* 使用手册(基础信息id)
*/
@ApiModelProperty(value = "使用手册(基础信息id)")
@NotBlank(message="使用手册不能为空!")
private String userManual;
/**
* 资料库(基础信息id)
*/
@ApiModelProperty(value = "资料库(基础信息id)")
@NotBlank(message="资料库不能为空!")
private String dataBase;
/**
* 公司介绍(基础信息id)
*/
@ApiModelProperty(value = "公司介绍(基础信息id)")
@NotBlank(message="公司介绍不能为空!")
private String companyProfile;
/**
* 关于我们(基础信息id)
*/
@ApiModelProperty(value = "关于我们(基础信息id)")
@NotBlank(message="关于我们id不能为空")
private String aboutUs;
}

View File

@@ -26,14 +26,9 @@ public class AppProjectAddParm {
@NotBlank(message="项目名称不能为空!") @NotBlank(message="项目名称不能为空!")
private String name; private String name;
@NotBlank(message="项目类型不能为空!") @NotBlank(message="工程id不能为空!")
private String projectType; private String engineeringId;
/**
* 关联用户Id
*/
@ApiModelProperty(value="关联用户Id")
@NotBlank(message="关联用户Id不能为空")
private String userId;
/** /**
* 地市Id * 地市Id

View File

@@ -4,7 +4,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/** /**
* Description: * Description:
@@ -23,11 +22,7 @@ public class AppProjectAuditParm {
@ApiModelProperty(value="项目名称") @ApiModelProperty(value="项目名称")
private String name; private String name;
/**
* 关联用户Id
*/
@ApiModelProperty(value="关联用户Id")
private String userId;
/** /**
* 地市Id * 地市Id
@@ -35,18 +30,6 @@ public class AppProjectAuditParm {
@ApiModelProperty(value="地市") @ApiModelProperty(value="地市")
private String area; private String area;
/**
* 中心点经度
*/
@ApiModelProperty(value="中心点经度")
private BigDecimal lng;
/**
* 中心点纬度
*/
@ApiModelProperty(value="中心点纬度")
private BigDecimal lat;
@ApiModelProperty(value="0删除 1正常") @ApiModelProperty(value="0删除 1正常")
private String status; private String status;

View File

@@ -0,0 +1,55 @@
package com.njcn.algorithm.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class CsFeedbackAddParm {
/**
* 标题
*/
@ApiModelProperty(value = "标题")
@NotNull(message="标题不能为空!")
private String title;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
@NotNull(message="描述不能为空!")
private String description;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
@NotNull(message="用户id不能为空")
private String userId;
/**
* 问题类型(字典数据)
*/
@ApiModelProperty(value = "问题类型")
@NotNull(message="问题类型不能为空!")
private String type;
@ApiModelProperty(value = "拓扑图文件")
@NotNull(message="拓扑图文件不能为空!")
private MultipartFile[] files;
}

View File

@@ -0,0 +1,34 @@
package com.njcn.algorithm.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 15:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class CsFeedbackChatAddParm {
@ApiModelProperty(value = "反馈id")
@NotNull(message="反馈id不能为空")
private String id;
@ApiModelProperty(value = "用户id")
@NotNull(message="用户id不能为空")
private String userId;
/**
* 消息内容
*/
@ApiModelProperty(value = "消息内容")
@NotNull(message="消息内容不能为空!")
private String chatContent;
}

View File

@@ -0,0 +1,32 @@
package com.njcn.algorithm.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 15:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
public class CsFeedbackChatCheckParm {
@ApiModelProperty(value = "反馈")
@NotNull(message="反馈不能为空!")
private String id;
@ApiModelProperty(value = "用户id")
@NotNull(message="用户id不能为空")
private String userId;
}

View File

@@ -0,0 +1,51 @@
package com.njcn.algorithm.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 信息反馈表
*/
@Data
public class CsFeedbackQueryParm {
@NotNull(message="当前页不能为空!")
@Min(value = 1, message = "当前页不能为0")
@ApiModelProperty(value = "当前页",name = "currentPage",dataType ="Integer",required = true)
private Integer currentPage;
/**显示条数*/
@NotNull(message="显示条数不能为空!")
@ApiModelProperty(value = "显示条数",name = "pageSize",dataType ="Integer",required = true)
private Integer pageSize;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
@NotNull(message="用户id不能为空")
private String userId;
/**
* 问题类型(字典数据)
*/
@ApiModelProperty(value = "问题类型")
private String type;
/**
* 问题状态(字典数据)
*/
@ApiModelProperty(value = "问题状态")
private String status;
}

View File

@@ -0,0 +1,44 @@
package com.njcn.algorithm.pojo.po;
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 com.njcn.db.bo.BaseEntity;
import lombok.Data;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* app基础信息表
*/
@Data
@TableName(value = "app_base_information")
public class AppBaseInformationPO extends BaseEntity {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
/**
* 内容
*/
@TableField(value = "content")
private String content;
/**
* 类型(字典数据)
*/
@TableField(value = "type")
private String type;
}

View File

@@ -0,0 +1,72 @@
package com.njcn.algorithm.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* app个人中心-设置信息
*/
@Data
@TableName(value = "app_person_set")
public class AppPersonSetPO extends BaseEntity {
/**
* id
*/
@TableField(value = "id")
private String id;
/**
* 用户协议(基础信息id)
*/
@TableField(value = "user_agreement")
private String userAgreement;
/**
* 系统介绍(基础信息id)
*/
@TableField(value = "system_introduction")
private String systemIntroduction;
/**
* 使用手册(基础信息id)
*/
@TableField(value = "user_manual")
private String userManual;
/**
* 资料库(基础信息id)
*/
@TableField(value = "data_base")
private String dataBase;
/**
* 公司介绍(基础信息id)
*/
@TableField(value = "company_profile")
private String companyProfile;
/**
* 关于我们(基础信息id)
*/
@TableField(value = "about_us")
private String aboutUs;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
}

View File

@@ -6,8 +6,6 @@ import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* *
* Description: * Description:
@@ -28,11 +26,7 @@ public class AppProjectPO extends BaseEntity {
*/ */
@MppMultiId(value = "id") @MppMultiId(value = "id")
private String id; private String id;
/**
* 项目类型
*/
@TableField(value = "project_type")
private String projectType;
/** /**
* 项目名称 * 项目名称
@@ -40,11 +34,10 @@ public class AppProjectPO extends BaseEntity {
@TableField(value = "name") @TableField(value = "name")
private String name; private String name;
/** @TableField(value = "engineering_id")
* 关联用户Id private String engineeringId;
*/
@TableField(value = "user_id")
private String userId;
/** /**
* 地市Id * 地市Id
@@ -52,17 +45,7 @@ public class AppProjectPO extends BaseEntity {
@TableField(value = "area") @TableField(value = "area")
private String area; private String area;
/**
* 中心点经度
*/
@TableField(value = "lng")
private BigDecimal lng;
/**
* 中心点纬度
*/
@TableField(value = "lat")
private BigDecimal lat;
/** /**
* 0删除 1正常 * 0删除 1正常

View File

@@ -33,11 +33,6 @@ public class AppTopologyDiagramPO extends BaseEntity {
@TableField(value = "name") @TableField(value = "name")
private String name; private String name;
/**
* 文件大小(kb)
*/
@TableField(value = "file_size")
private Integer fileSize;
/** /**
* 项目Id * 项目Id

View File

@@ -0,0 +1,80 @@
package com.njcn.algorithm.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.Data;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
@TableName(value = "cs_ed_data")
public class CsEdDataPO extends BaseEntity {
/**
* id
*/
@TableField(value = "id")
private String id;
/**
* 装置型号(字典数据)
*/
@TableField(value = "dev_type")
private String devType;
/**
* 版本号
*/
@TableField(value = "version_no")
private String versionNo;
/**
* 版本协议
*/
@TableField(value = "version_agree")
private String versionAgree;
/**
* 版本日期
*/
@TableField(value = "version_date")
private Date versionDate;
/**
* 描述
*/
@TableField(value = "describe")
private String describe;
/**
* 版本类型(字典数据)
*/
@TableField(value = "version_type")
private String versionType;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
/**
* 程序版本文件路径
*/
@TableField(value = "file_path")
private String filePath;
}

View File

@@ -0,0 +1,43 @@
package com.njcn.algorithm.pojo.po;
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 com.njcn.db.bo.BaseEntity;
import lombok.Data;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 15:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@TableName(value = "cs_feedback_chat")
public class CsFeedbackChatPO extends BaseEntity {
@TableId(value = "id", type = IdType.INPUT)
private String id;
@TableField(value = "user_id")
private String userId;
/**
* 消息内容
*/
@TableField(value = "chat_content")
private String chatContent;
/**
* 消息状态消息状态0-未读1-已读)
*/
@TableField(value = "chat_status")
private String chatStatus;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
}

View File

@@ -0,0 +1,60 @@
package com.njcn.algorithm.pojo.po;
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 com.njcn.db.bo.BaseEntity;
import lombok.Data;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 信息反馈表
*/
@Data
@TableName(value = "cs_feedback")
public class CsFeedbackPO extends BaseEntity {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
/**
* 标题
*/
@TableField(value = "title")
private String title;
/**
* 描述
*/
@TableField(value = "description")
private String description;
/**
* 用户id
*/
@TableField(value = "user_id")
private String userId;
/**
* 问题类型(字典数据)
*/
@TableField(value = "type")
private String type;
/**
* 问题状态(字典数据)
*/
@TableField(value = "status")
private String status;
}

View File

@@ -0,0 +1,43 @@
package com.njcn.algorithm.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:40【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 文件路径表
*/
@Data
@TableName(value = "cs_file_path")
public class CsFilePathPO {
/**
* 关联数据id
*/
@TableField(value = "id")
private String id;
/**
* 文件名
*/
@TableField(value = "file_name")
private String fileName;
/**
* 文件路径
*/
@TableField(value = "file_path")
private String filePath;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
}

View File

@@ -0,0 +1,41 @@
package com.njcn.algorithm.pojo.vo;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* app基础信息表
*/
@Data
public class AppBaseInformationVO extends BaseEntity {
/**
* id
*/
@ApiModelProperty(value = "id")
private String id;
/**
* 内容
*/
@ApiModelProperty(value = "内容")
private String content;
/**
* 类型(字典数据)
*/
@ApiModelProperty(value = "类型")
private String type;
}

View File

@@ -23,16 +23,15 @@ public class AppProjectVO {
* 项目Id * 项目Id
*/ */
private String id; private String id;
private String projectType;
/** /**
* 项目名称 * 项目名称
*/ */
private String name; private String name;
/** private String engineeringId;
* 关联用户Id
*/ private String engineeringName;
private String userId;
/** /**
* 用户名称 * 用户名称
*/ */

View File

@@ -31,11 +31,7 @@ public class AppTopologyDiagramVO extends BaseEntity {
@ApiModelProperty(value = "拓扑图名称") @ApiModelProperty(value = "拓扑图名称")
private String name; private String name;
/**
* 文件大小(kb)
*/
@ApiModelProperty(value = "文件大小")
private Integer fileSize;
/** /**
* 项目Id * 项目Id

View File

@@ -0,0 +1,74 @@
package com.njcn.algorithm.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.njcn.algorithm.pojo.po.CsFeedbackChatPO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 信息反馈列表
*/
@Data
public class CsFeedbackDetailVO {
/**
* id
*/
@ApiModelProperty(value = "id")
private String id;
/**
* 标题
*/
@ApiModelProperty(value = "标题")
private String title;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String description;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private String userId;
/**
* 问题类型(字典数据)
*/
@ApiModelProperty(value = "问题类型")
private String type;
/**
* 问题状态(字典数据)
*/
@ApiModelProperty(value = "问题状态")
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
private List<String> imageUrls;
private List<CsFeedbackChatPO> csFeedbackChatPOList;
}

View File

@@ -0,0 +1,68 @@
package com.njcn.algorithm.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 信息反馈列表
*/
@Data
public class CsFeedbackVO {
/**
* id
*/
@ApiModelProperty(value = "id")
private String id;
/**
* 标题
*/
@ApiModelProperty(value = "标题")
private String title;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String description;
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private String userId;
/**
* 问题类型(字典数据)
*/
@ApiModelProperty(value = "问题类型")
private String type;
/**
* 问题状态(字典数据)
*/
@ApiModelProperty(value = "问题状态")
private String status;
@ApiModelProperty(value = "未读消息条数")
private int chatCount;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,65 @@
package com.njcn.algorithm.controller.feedback;
import com.njcn.algorithm.pojo.param.CsFeedbackChatAddParm;
import com.njcn.algorithm.pojo.param.CsFeedbackChatCheckParm;
import com.njcn.algorithm.service.CsFeedbackChatService;
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.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;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/3/27 10:54【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/feedbackChat")
@Api(tags = "问题反馈聊天")
@AllArgsConstructor
public class FeedBackChatController extends BaseController {
private final CsFeedbackChatService csFeedbackChatService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/AddFeedbackChat")
@ApiOperation("新增反馈聊天")
@ApiImplicitParam(name = "csFeedbackAddParm", value = "新增反馈聊天参数", required = true)
public HttpResult<Boolean> AddFeedbackChat(@RequestBody @Validated CsFeedbackChatAddParm csFeedbackAddParm){
String methodDescribe = getMethodDescribe("AddFeedbackChat");
Boolean flag = csFeedbackChatService.AddFeedbackChat(csFeedbackAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/updateChatStatus")
@ApiOperation("更新反馈聊天状态")
@ApiImplicitParam(name = "CsFeedbackChatCheckParm", value = "新增反馈聊天参数", required = true)
public HttpResult<Boolean> updateChatStatus(@RequestBody@Validated CsFeedbackChatCheckParm CsFeedbackChatCheckParm){
String methodDescribe = getMethodDescribe("updateChatStatus");
Boolean flag = csFeedbackChatService.updateChatStatus(CsFeedbackChatCheckParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
}

View File

@@ -0,0 +1,73 @@
package com.njcn.algorithm.controller.feedback;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.algorithm.pojo.param.CsFeedbackAddParm;
import com.njcn.algorithm.pojo.param.CsFeedbackQueryParm;
import com.njcn.algorithm.pojo.vo.CsFeedbackDetailVO;
import com.njcn.algorithm.pojo.vo.CsFeedbackVO;
import com.njcn.algorithm.service.CsFeedbackService;
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.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.*;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/3/27 10:54【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/feedback")
@Api(tags = "问题反馈")
@AllArgsConstructor
public class FeedBackController extends BaseController {
private final CsFeedbackService csFeedbackService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addFeedBack")
@ApiOperation("新增反馈")
public HttpResult<Boolean> addFeedBack(@Validated CsFeedbackAddParm csFeedbackAddParm){
String methodDescribe = getMethodDescribe("addFeedBack");
Boolean flag = csFeedbackService.addFeedBack(csFeedbackAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryFeedBackPage")
@ApiOperation("查询反馈列表")
@ApiImplicitParam(name = "csFeedbackQueryParm", value = "新增反馈聊天参数", required = true)
public HttpResult<IPage<CsFeedbackVO>> queryFeedBackPage(@Validated @RequestBody CsFeedbackQueryParm csFeedbackQueryParm){
String methodDescribe = getMethodDescribe("queryFeedBackPage");
IPage<CsFeedbackVO> csFeedbackVOIPage = csFeedbackService.queryFeedBackPage(csFeedbackQueryParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csFeedbackVOIPage, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryFeedBackDetail")
@ApiOperation("查询反馈详情")
public HttpResult<CsFeedbackDetailVO> queryFeedBackDetail(@RequestParam("id")String id){
String methodDescribe = getMethodDescribe("queryFeedBackDetail");
CsFeedbackDetailVO csFeedbackDetailVO = csFeedbackService.queryFeedBackDetail(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, csFeedbackDetailVO, methodDescribe);
}
}

View File

@@ -0,0 +1,92 @@
package com.njcn.algorithm.controller.project;
import com.njcn.algorithm.pojo.param.AppBaseInformationAddParm;
import com.njcn.algorithm.pojo.param.AppPersonSetAddParm;
import com.njcn.algorithm.pojo.po.AppBaseInformationPO;
import com.njcn.algorithm.pojo.po.AppPersonSetPO;
import com.njcn.algorithm.pojo.vo.AppBaseInformationVO;
import com.njcn.algorithm.service.AppBaseInformationService;
import com.njcn.algorithm.service.AppPersonSetService;
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.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.beans.BeanUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/4 9:02【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/appinfo")
@Api(tags = "app信息")
@AllArgsConstructor
public class AppInfoController extends BaseController {
private final AppBaseInformationService appBaseInformationService;
private final AppPersonSetService appPersonSetService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addAppInfo")
@ApiOperation("新增app基础信息")
@ApiImplicitParam(name = "AppBaseInformationAddParm", value = "新增app基础信息参数", required = true)
public HttpResult<Boolean> addAppInfo(@RequestBody @Validated AppBaseInformationAddParm AppBaseInformationAddParm){
String methodDescribe = getMethodDescribe("addAppInfo");
AppBaseInformationPO appBaseInformationPO = new AppBaseInformationPO ();
BeanUtils.copyProperties (AppBaseInformationAddParm, appBaseInformationPO);
boolean save = appBaseInformationService.save (appBaseInformationPO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addPersonSet")
@ApiOperation("新增app个人中心信息")
@ApiImplicitParam(name = "appPersonSetAddParm", value = "新增apppp个人中心信参数", required = true)
public HttpResult<Boolean> addPersonSet(@RequestBody @Validated AppPersonSetAddParm appPersonSetAddParm){
String methodDescribe = getMethodDescribe("addPersonSet");
AppPersonSetPO appPersonSetPO = new AppPersonSetPO ();
BeanUtils.copyProperties (appPersonSetAddParm, appPersonSetPO);
appPersonSetPO.setStatus ("1");
boolean save = appPersonSetService.save (appPersonSetPO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryPersonSet")
@ApiOperation("查询app个人中心信息")
public HttpResult<AppPersonSetPO> queryPersonSet(){
String methodDescribe = getMethodDescribe("queryPersonSet");
List<AppPersonSetPO> list = appPersonSetService.list ( );
AppPersonSetPO appPersonSetPO = list.stream ( ).filter (temp -> Objects.equals ("1", temp.getStatus ( ))).collect (Collectors.toList ( )).get (0);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, appPersonSetPO, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryAppInfo")
@ApiOperation("查询app个人中心信息详情")
public HttpResult<AppBaseInformationVO> queryPersonSet(@RequestParam("id")String id ){
String methodDescribe = getMethodDescribe("queryPersonSet");
AppBaseInformationVO appBaseInformationVO = new AppBaseInformationVO();
AppBaseInformationPO byId = appBaseInformationService.getById (id);
BeanUtils.copyProperties (byId,appBaseInformationVO);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, appBaseInformationVO, methodDescribe);
}
}

View File

@@ -0,0 +1,16 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.AppBaseInformationPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface AppBaseInformationMapper extends BaseMapper<AppBaseInformationPO> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.AppPersonSetPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface AppPersonSetMapper extends BaseMapper<AppPersonSetPO> {
}

View File

@@ -23,12 +23,12 @@ public interface AppProjectMapper extends MppBaseMapper<AppProjectPO> {
"SELECT\n" + "SELECT\n" +
"\ta.id id,\n" + "\ta.id id,\n" +
"\ta.`name` name,\n" + "\ta.`name` name,\n" +
"\ta.user_id user_id,\n" + // "\ta.user_id user_id,\n" +
"\t\"username\" user_name,\n" + // "\t\"username\" user_name,\n" +
"\ta.area area,\n" + "\ta.area area,\n" +
// "\tb.file_path topologyDiagramPath,\n" + // "\tb.file_path topologyDiagramPath,\n" +
"\ta.lng lng,\n" + // "\ta.lng lng,\n" +
"\ta.lat lat,\n" + // "\ta.lat lat,\n" +
"\ta.`status` STATUS,\n" + "\ta.`status` STATUS,\n" +
"\ta.create_by create_by,\n" + "\ta.create_by create_by,\n" +
"\ta.create_time create_time,\n" + "\ta.create_time create_time,\n" +

View File

@@ -0,0 +1,16 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.CsEdDataPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsEdDataMapper extends BaseMapper<CsEdDataPO> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.CsFeedbackChatPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 15:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsFeedbackChatMapper extends BaseMapper<CsFeedbackChatPO> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.CsFeedbackPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsFeedbackMapper extends BaseMapper<CsFeedbackPO> {
}

View File

@@ -0,0 +1,16 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.algorithm.pojo.po.CsFilePathPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:40【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsFilePathMapper extends BaseMapper<CsFilePathPO> {
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.algorithm.mapper.AppBaseInformationMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.AppBaseInformationPO">
<!--@mbg.generated-->
<!--@Table app_base_information-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="content" jdbcType="LONGVARCHAR" property="content" />
<result column="type" jdbcType="VARCHAR" property="type" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, content, `type`, create_by, create_time, update_by, update_time
</sql>
</mapper>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.algorithm.mapper.AppPersonSetMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.AppPersonSetPO">
<!--@mbg.generated-->
<!--@Table app_person_set-->
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="user_agreement" jdbcType="TINYINT" property="userAgreement" />
<result column="system_introduction" jdbcType="TINYINT" property="systemIntroduction" />
<result column="user_manual" jdbcType="TINYINT" property="userManual" />
<result column="data_base" jdbcType="TINYINT" property="dataBase" />
<result column="company_profile" jdbcType="TINYINT" property="companyProfile" />
<result column="about_us" jdbcType="TINYINT" property="aboutUs" />
<result column="status" jdbcType="BOOLEAN" property="status" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, user_agreement, system_introduction, user_manual, data_base, company_profile,
about_us, `status`, create_by, create_time, update_by, update_time
</sql>
</mapper>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.algorithm.mapper.CsEdDataMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsEdDataPO">
<!--@mbg.generated-->
<!--@Table cs_ed_data-->
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="dev_type" jdbcType="VARCHAR" property="devType" />
<result column="version_no" jdbcType="VARCHAR" property="versionNo" />
<result column="version_agree" jdbcType="VARCHAR" property="versionAgree" />
<result column="version_date" jdbcType="TIMESTAMP" property="versionDate" />
<result column="describe" jdbcType="VARCHAR" property="describe" />
<result column="version_type" jdbcType="VARCHAR" property="versionType" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="file_path" jdbcType="VARCHAR" property="filePath" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, dev_type, version_no, version_agree, version_date, `describe`, version_type,
`status`, file_path, create_by, create_time, update_by, update_time
</sql>
</mapper>

View File

@@ -34,7 +34,6 @@
SELECT SELECT
a.id projectId, a.id projectId,
a.name projectName, a.name projectName,
a.project_type projectType,
b.id equipmentId, b.id equipmentId,
b.name equipmentName b.name equipmentName
FROM cs_project a, FROM cs_project a,

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.algorithm.mapper.CsFeedbackChatMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsFeedbackChatPO">
<!--@mbg.generated-->
<!--@Table cs_feedback_chat-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="chat_content" jdbcType="VARCHAR" property="chatContent" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, user_id, chat_content, create_by, create_time, update_by, update_time
</sql>
</mapper>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.algorithm.mapper.CsFeedbackMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsFeedbackPO">
<!--@mbg.generated-->
<!--@Table cs_feedback-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="title" jdbcType="VARCHAR" property="title" />
<result column="describe" jdbcType="VARCHAR" property="describe" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="type" jdbcType="VARCHAR" property="type" />
<result column="status" jdbcType="VARCHAR" property="status" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, title, `describe`, user_id, create_by, create_time, update_by, update_time, `type`,
`status`
</sql>
</mapper>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.algorithm.mapper.CsFilePathMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsFilePathPO">
<!--@mbg.generated-->
<!--@Table cs_file_path-->
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="file_path" jdbcType="VARCHAR" property="filePath" />
<result column="status" jdbcType="BOOLEAN" property="status" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, file_path, `status`
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
package com.njcn.algorithm.service;
import com.njcn.algorithm.pojo.po.AppBaseInformationPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface AppBaseInformationService extends IService<AppBaseInformationPO>{
}

View File

@@ -0,0 +1,17 @@
package com.njcn.algorithm.service;
import com.njcn.algorithm.pojo.po.AppPersonSetPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface AppPersonSetService extends IService<AppPersonSetPO>{
}

View File

@@ -0,0 +1,17 @@
package com.njcn.algorithm.service;
import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsEdDataService extends IService<CsEdDataPO>{
}

View File

@@ -0,0 +1,28 @@
package com.njcn.algorithm.service;
import com.njcn.algorithm.pojo.param.CsFeedbackChatAddParm;
import com.njcn.algorithm.pojo.param.CsFeedbackChatCheckParm;
import com.njcn.algorithm.pojo.po.CsFeedbackChatPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 15:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsFeedbackChatService extends IService<CsFeedbackChatPO>{
/**
* @Description: AddFeedbackChat
* @Param: [csFeedbackAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2023/4/6
*/
Boolean AddFeedbackChat(CsFeedbackChatAddParm csFeedbackAddParm);
Boolean updateChatStatus(CsFeedbackChatCheckParm csFeedbackChatCheckParm);
}

View File

@@ -0,0 +1,46 @@
package com.njcn.algorithm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.algorithm.pojo.param.CsFeedbackAddParm;
import com.njcn.algorithm.pojo.param.CsFeedbackQueryParm;
import com.njcn.algorithm.pojo.po.CsFeedbackPO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.algorithm.pojo.vo.CsFeedbackDetailVO;
import com.njcn.algorithm.pojo.vo.CsFeedbackVO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsFeedbackService extends IService<CsFeedbackPO>{
/**
* @Description: 新增反馈
* @Param: [csFeedbackAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2023/4/6
*/
Boolean addFeedBack(CsFeedbackAddParm csFeedbackAddParm);
/**
* @Description: queryFeedBackPage
* @Param: [csFeedbackQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.algorithm.pojo.vo.CsFeedbackVO>
* @Author: clam
* @Date: 2023/4/6
*/
IPage<CsFeedbackVO> queryFeedBackPage(CsFeedbackQueryParm csFeedbackQueryParm);
/**
* @Description: queryFeedBackDetail
* @Param: [id]
* @return: com.njcn.algorithm.pojo.vo.CsFeedbackDetailVO
* @Author: clam
* @Date: 2023/4/7
*/
CsFeedbackDetailVO queryFeedBackDetail(String id);
}

View File

@@ -0,0 +1,17 @@
package com.njcn.algorithm.service;
import com.njcn.algorithm.pojo.po.CsFilePathPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:40【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsFilePathService extends IService<CsFilePathPO>{
}

View File

@@ -0,0 +1,22 @@
package com.njcn.algorithm.service.impl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.pojo.po.AppBaseInformationPO;
import com.njcn.algorithm.mapper.AppBaseInformationMapper;
import com.njcn.algorithm.service.AppBaseInformationService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class AppBaseInformationServiceImpl extends ServiceImpl<AppBaseInformationMapper, AppBaseInformationPO> implements AppBaseInformationService{
}

View File

@@ -0,0 +1,22 @@
package com.njcn.algorithm.service.impl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.AppPersonSetMapper;
import com.njcn.algorithm.pojo.po.AppPersonSetPO;
import com.njcn.algorithm.service.AppPersonSetService;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:17【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class AppPersonSetServiceImpl extends ServiceImpl<AppPersonSetMapper, AppPersonSetPO> implements AppPersonSetService{
}

View File

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.algorithm.enums.AlgorithmResponseEnum;
import com.njcn.algorithm.mapper.AppProjectMapper; import com.njcn.algorithm.mapper.AppProjectMapper;
import com.njcn.algorithm.pojo.param.*; import com.njcn.algorithm.pojo.param.*;
import com.njcn.algorithm.pojo.po.AppProjectPO; import com.njcn.algorithm.pojo.po.AppProjectPO;
@@ -13,7 +12,6 @@ import com.njcn.algorithm.pojo.vo.AppProjectVO;
import com.njcn.algorithm.pojo.vo.AppTopologyDiagramVO; import com.njcn.algorithm.pojo.vo.AppTopologyDiagramVO;
import com.njcn.algorithm.service.AppProjectService; import com.njcn.algorithm.service.AppProjectService;
import com.njcn.algorithm.service.AppTopologyDiagramService; import com.njcn.algorithm.service.AppTopologyDiagramService;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.oss.utils.FileStorageUtil; import com.njcn.oss.utils.FileStorageUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
@@ -45,10 +43,10 @@ public class AppProjectServiceImpl extends MppServiceImpl<AppProjectMapper, AppP
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean addAppProject(AppProjectAddParm appProjectAddOrAuditParm) { public Boolean addAppProject(AppProjectAddParm appProjectAddOrAuditParm) {
AppProjectPO appProjectPO = new AppProjectPO ( ); AppProjectPO appProjectPO = new AppProjectPO ( );
Boolean result = checkName (appProjectAddOrAuditParm.getUserId ( ), appProjectAddOrAuditParm.getName ( )); // Boolean result = checkName (appProjectAddOrAuditParm.getUserId ( ), appProjectAddOrAuditParm.getName ( ));
if (result) { // if (result) {
throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); // throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR);
} // }
BeanUtils.copyProperties (appProjectAddOrAuditParm, appProjectPO); BeanUtils.copyProperties (appProjectAddOrAuditParm, appProjectPO);
appProjectPO.setStatus ("1"); appProjectPO.setStatus ("1");
boolean save = this.save (appProjectPO); boolean save = this.save (appProjectPO);
@@ -81,23 +79,23 @@ public class AppProjectServiceImpl extends MppServiceImpl<AppProjectMapper, AppP
QueryWrapper<AppProjectPO> queryWrapper = new QueryWrapper ( ); QueryWrapper<AppProjectPO> queryWrapper = new QueryWrapper ( );
queryWrapper.eq ("id", appProjectAuditParm.getId ( )); queryWrapper.eq ("id", appProjectAuditParm.getId ( ));
AppProjectPO appProjectPO1 = appProjectMapper.selectOne (queryWrapper); AppProjectPO appProjectPO1 = appProjectMapper.selectOne (queryWrapper);
if (appProjectAuditParm.getUserId ( ) != null || appProjectAuditParm.getName ( ) != null) { // if (appProjectAuditParm.getUserId ( ) != null || appProjectAuditParm.getName ( ) != null) {
Boolean result = checkName (appProjectAuditParm.getUserId ( ) != null ? appProjectAuditParm.getUserId ( ) : appProjectPO1.getUserId ( ), // Boolean result = checkName (appProjectAuditParm.getUserId ( ) != null ? appProjectAuditParm.getUserId ( ) : appProjectPO1.getUserId ( ),
appProjectAuditParm.getName ( ) != null ? appProjectAuditParm.getName ( ) : appProjectPO1.getName ( )); // appProjectAuditParm.getName ( ) != null ? appProjectAuditParm.getName ( ) : appProjectPO1.getName ( ));
if (result) { // if (result) {
throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); // throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR);
} // }
} // }
BeanUtils.copyProperties (appProjectAuditParm, appProjectPO); BeanUtils.copyProperties (appProjectAuditParm, appProjectPO);
UpdateWrapper<AppProjectPO> updateWrapper = new UpdateWrapper ( ); UpdateWrapper<AppProjectPO> updateWrapper = new UpdateWrapper ( );
updateWrapper.eq ("id", appProjectAuditParm.getId ( )); updateWrapper.eq ("id", appProjectAuditParm.getId ( ));
int i = appProjectMapper.update (appProjectPO, updateWrapper); int i = appProjectMapper.update (appProjectPO, updateWrapper);
Boolean result = checkName (appProjectPO.getUserId ( ), appProjectPO.getName ( )); // Boolean result = checkName (appProjectPO.getUserId ( ), appProjectPO.getName ( ));
if (result) { // if (result) {
throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR); // throw new BusinessException (AlgorithmResponseEnum.PROJECT_COMMON_ERROR);
} // }
return i == 1 ? true : false; return i == 1 ? true : false;
} }

View File

@@ -49,12 +49,10 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO(); AppTopologyDiagramPO appTopologyDiagramPO = new AppTopologyDiagramPO();
MultipartFile file = appTopologyDiagramAddParm.getFile ( ); MultipartFile file = appTopologyDiagramAddParm.getFile ( );
long size = file.getSize ( );
String filePath = fileStorageUtil.uploadMultipart (file, OssPath.TOPOLOGY); String filePath = fileStorageUtil.uploadMultipart (file, OssPath.TOPOLOGY);
appTopologyDiagramPO.setFilePath (filePath); appTopologyDiagramPO.setFilePath (filePath);
appTopologyDiagramPO.setProjectId (appTopologyDiagramAddParm.getProjectId ()==null?"":appTopologyDiagramAddParm.getProjectId ()); appTopologyDiagramPO.setProjectId (appTopologyDiagramAddParm.getProjectId ()==null?"":appTopologyDiagramAddParm.getProjectId ());
appTopologyDiagramPO.setName (appTopologyDiagramAddParm.getTopologyDiagramName ()); appTopologyDiagramPO.setName (appTopologyDiagramAddParm.getTopologyDiagramName ());
appTopologyDiagramPO.setFileSize (Integer.valueOf (size+""));
appTopologyDiagramPO.setStatus ("1"); appTopologyDiagramPO.setStatus ("1");
boolean save = this.save (appTopologyDiagramPO); boolean save = this.save (appTopologyDiagramPO);
return save; return save;
@@ -68,7 +66,6 @@ public class AppTopologyDiagramServiceImpl extends MppServiceImpl<AppTopologyDia
long size = file.getSize ( ); long size = file.getSize ( );
String filePath = fileStorageUtil.uploadMultipart (file, OssPath.TOPOLOGY); String filePath = fileStorageUtil.uploadMultipart (file, OssPath.TOPOLOGY);
appTopologyDiagramPO.setFilePath (filePath); appTopologyDiagramPO.setFilePath (filePath);
appTopologyDiagramPO.setFileSize (Integer.valueOf (size+""));
} }
if(appTopologyDiagramAuditParm.getProjectId ()!=null&&appTopologyDiagramAuditParm.getProjectId ()!=""){ if(appTopologyDiagramAuditParm.getProjectId ()!=null&&appTopologyDiagramAuditParm.getProjectId ()!=""){
appTopologyDiagramPO.setProjectId (appTopologyDiagramAuditParm.getProjectId ()); appTopologyDiagramPO.setProjectId (appTopologyDiagramAuditParm.getProjectId ());

View File

@@ -0,0 +1,20 @@
package com.njcn.algorithm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.CsEdDataMapper;
import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.njcn.algorithm.service.CsEdDataService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO> implements CsEdDataService{
}

View File

@@ -0,0 +1,50 @@
package com.njcn.algorithm.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.CsFeedbackChatMapper;
import com.njcn.algorithm.pojo.param.CsFeedbackChatAddParm;
import com.njcn.algorithm.pojo.param.CsFeedbackChatCheckParm;
import com.njcn.algorithm.pojo.po.CsFeedbackChatPO;
import com.njcn.algorithm.service.CsFeedbackChatService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 15:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CsFeedbackChatServiceImpl extends ServiceImpl<CsFeedbackChatMapper, CsFeedbackChatPO> implements CsFeedbackChatService{
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean AddFeedbackChat(CsFeedbackChatAddParm csFeedbackAddParm) {
CsFeedbackChatPO csFeedbackChatPO = new CsFeedbackChatPO ();
BeanUtils.copyProperties (csFeedbackAddParm, csFeedbackChatPO);
csFeedbackChatPO.setChatStatus ("0");
csFeedbackChatPO.setStatus ("1");
boolean save = this.save (csFeedbackChatPO);
return save;
}
@Override
public Boolean updateChatStatus(CsFeedbackChatCheckParm csFeedbackChatCheckParm) {
UpdateWrapper<CsFeedbackChatPO> updateWrapper = new UpdateWrapper<> ();
updateWrapper.clear ();
updateWrapper.eq ("id",csFeedbackChatCheckParm.getId ()).
ne ("user_id",csFeedbackChatCheckParm.getUserId ()).
set ("chat_status","1").
eq ("status", "1");
boolean update = this.update (updateWrapper);
return update;
}
}

View File

@@ -0,0 +1,112 @@
package com.njcn.algorithm.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.CsFeedbackMapper;
import com.njcn.algorithm.pojo.param.CsFeedbackAddParm;
import com.njcn.algorithm.pojo.param.CsFeedbackQueryParm;
import com.njcn.algorithm.pojo.po.CsFeedbackChatPO;
import com.njcn.algorithm.pojo.po.CsFeedbackPO;
import com.njcn.algorithm.pojo.po.CsFilePathPO;
import com.njcn.algorithm.pojo.vo.CsFeedbackDetailVO;
import com.njcn.algorithm.pojo.vo.CsFeedbackVO;
import com.njcn.algorithm.service.CsFeedbackChatService;
import com.njcn.algorithm.service.CsFeedbackService;
import com.njcn.algorithm.service.CsFilePathService;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
public class CsFeedbackServiceImpl extends ServiceImpl<CsFeedbackMapper, CsFeedbackPO> implements CsFeedbackService{
private final FileStorageUtil fileStorageUtil;
private final CsFilePathService csFilePathService;
private final CsFeedbackChatService csFeedbackChatService;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean addFeedBack(CsFeedbackAddParm csFeedbackAddParm) {
CsFeedbackPO csFeedbackPO = new CsFeedbackPO ();
BeanUtils.copyProperties (csFeedbackAddParm, csFeedbackPO);
csFeedbackPO.setStatus ("1");
boolean save = this.save (csFeedbackPO);
List<CsFilePathPO> csFilePathPOS= new ArrayList<> ();
for (int i = 0; i < csFeedbackAddParm.getFiles ( ).length; i++) {
CsFilePathPO csFilePathPO = new CsFilePathPO ( );
csFilePathPO.setId (csFeedbackPO.getId ());
String filePath = fileStorageUtil.uploadMultipart (csFeedbackAddParm.getFiles ( )[i], OssPath.FEEDBACK);
csFilePathPO.setFileName (csFeedbackAddParm.getFiles ( )[i].getOriginalFilename ( ));
csFilePathPO.setFilePath (filePath);
csFilePathPO.setStatus ("1");
csFilePathPOS.add (csFilePathPO);
}
boolean b = csFilePathService.saveBatch (csFilePathPOS);
return save&&b;
}
@Override
public IPage<CsFeedbackVO> queryFeedBackPage(CsFeedbackQueryParm csFeedbackQueryParm) {
Page<CsFeedbackPO> page = new Page<> (csFeedbackQueryParm.getCurrentPage ( ), csFeedbackQueryParm.getPageSize ( ));
Page<CsFeedbackVO> returnpage = new Page<> (csFeedbackQueryParm.getCurrentPage ( ), csFeedbackQueryParm.getPageSize ( ));
QueryWrapper<CsFeedbackPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("user_id",csFeedbackQueryParm.getUserId ()).
eq (StringUtils.isNotBlank (csFeedbackQueryParm.getType ()),"type",csFeedbackQueryParm.getType ()).
eq (StringUtils.isNotBlank (csFeedbackQueryParm.getStatus ()),"status",csFeedbackQueryParm.getStatus ());
Page<CsFeedbackPO> csFeedbackPOPage = this.getBaseMapper ( ).selectPage (page, queryWrapper);
QueryWrapper<CsFeedbackChatPO> csFeedbackChatPOQueryWrapper = new QueryWrapper<> ();
List<CsFeedbackVO> collect = csFeedbackPOPage.getRecords ( ).stream ( ).map (temp -> {
CsFeedbackVO csFeedbackVO = new CsFeedbackVO ( );
BeanUtils.copyProperties (temp, csFeedbackVO);
csFeedbackChatPOQueryWrapper.clear ();
csFeedbackChatPOQueryWrapper.eq ("id",temp.getId ()).
ne ("user_id",temp.getUserId ()).
eq ("chat_status","0").
eq ("status", "1");
int count = csFeedbackChatService.count ( );
csFeedbackVO.setChatCount (count);
return csFeedbackVO;
}).collect (Collectors.toList ( ));
returnpage.setRecords (collect);
return returnpage;
}
@Override
public CsFeedbackDetailVO queryFeedBackDetail(String id) {
CsFeedbackDetailVO csFeedbackDetailVO = new CsFeedbackDetailVO();
CsFeedbackPO byId = this.getById (id);
BeanUtils.copyProperties (byId, csFeedbackDetailVO);
QueryWrapper<CsFilePathPO> queryWrapper = new QueryWrapper();
queryWrapper.eq ("id", id).eq ("status", "1");
List<CsFilePathPO> list = csFilePathService.list (queryWrapper);
List<String> collect = list.stream ( ).map (CsFilePathPO::getFilePath).collect (Collectors.toList ( ));
csFeedbackDetailVO.setImageUrls (collect);
QueryWrapper<CsFeedbackChatPO> csFeedbackChatPOQueryWrapper = new QueryWrapper();
csFeedbackChatPOQueryWrapper.eq ("id", id).eq ("status", "1").orderByAsc ("create_time");
List<CsFeedbackChatPO> list1 = csFeedbackChatService.list (csFeedbackChatPOQueryWrapper);
csFeedbackDetailVO.setCsFeedbackChatPOList (list1);
return csFeedbackDetailVO;
}
}

View File

@@ -0,0 +1,20 @@
package com.njcn.algorithm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.CsFilePathMapper;
import com.njcn.algorithm.pojo.po.CsFilePathPO;
import com.njcn.algorithm.service.CsFilePathService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/6 11:40【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CsFilePathServiceImpl extends ServiceImpl<CsFilePathMapper, CsFilePathPO> implements CsFilePathService{
}

View File

@@ -29,7 +29,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -11,6 +11,7 @@ public interface BizParamConstant {
* 前端查询时间类型 * 前端查询时间类型
* 1年 2季度 3月份 4周 5日 * 1年 2季度 3月份 4周 5日
*/ */
String s = "测试jenkins打包";
String STAT_BIZ_YEAR = "1"; String STAT_BIZ_YEAR = "1";
String STAT_BIZ_QUARTER = "2"; String STAT_BIZ_QUARTER = "2";
String STAT_BIZ_MONTH = "3"; String STAT_BIZ_MONTH = "3";

View File

@@ -24,7 +24,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -24,7 +24,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -31,7 +31,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -24,7 +24,11 @@ import java.util.List;
* @version 1.0.0 * @version 1.0.0
* @date 2022年02月14日 14:02 * @date 2022年02月14日 14:02
*/ */
@FeignClient(value = ServerInfo.DEVICE, path = "/deviceInfo", fallbackFactory = GeneralDeviceInfoClientFallbackFactory.class, contextId = "deviceInfo") @FeignClient(
value = ServerInfo.DEVICE,
path = "/deviceInfo",
fallbackFactory = GeneralDeviceInfoClientFallbackFactory.class,
contextId = "deviceInfo")
public interface GeneralDeviceInfoClient { public interface GeneralDeviceInfoClient {

View File

@@ -22,7 +22,11 @@ import java.util.Map;
* @author denghuajun * @author denghuajun
* @date 2022/2/28 * @date 2022/2/28
*/ */
@FeignClient(value = ServerInfo.DEVICE, path = "/line", fallbackFactory = LineFeignClientFallbackFactory.class, contextId = "line") @FeignClient(
value = ServerInfo.DEVICE,
path = "/line",
fallbackFactory = LineFeignClientFallbackFactory.class,
contextId = "line")
public interface LineFeignClient { public interface LineFeignClient {
/** /**
@@ -92,7 +96,7 @@ public interface LineFeignClient {
* @return 结果 * @return 结果
*/ */
@PostMapping("getSubstationData") @PostMapping("getSubstationData")
HttpResult<List<SubstationDetailVO>> getSubstationData(@RequestParam("id") List<String> id); HttpResult<List<SubstationDetailVO>> getSubstationData(@RequestBody List<String> id);
/** /**
* 根据变电站id获取子节数据 * 根据变电站id获取子节数据
@@ -304,4 +308,7 @@ public interface LineFeignClient {
*/ */
@PostMapping("/getOnIntegrityByIds") @PostMapping("/getOnIntegrityByIds")
HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIds(@RequestBody OnlineRateParam param); HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIds(@RequestBody OnlineRateParam param);
@PostMapping("getOnIntegrityByIdsAndTime")
HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIdsAndTime(@RequestBody LineBaseQueryParam param);
} }

View File

@@ -224,10 +224,13 @@ public class LineFeignClientFallbackFactory implements FallbackFactory<LineFeign
public HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIds(OnlineRateParam param) { public HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIds(OnlineRateParam param) {
log.error("{}异常,降级处理,异常为:{}", "获取监测点数据完整率(谐波专用): ", throwable.toString()); log.error("{}异常,降级处理,异常为:{}", "获取监测点数据完整率(谐波专用): ", throwable.toString());
throw new BusinessException(finalExceptionEnum); throw new BusinessException(finalExceptionEnum);
} }
@Override
public HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIdsAndTime(LineBaseQueryParam param) {
log.error("{}异常,降级处理,异常为:{}", "获取监测点数据完整率: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
}; };
} }
} }

View File

@@ -25,4 +25,10 @@ public class LineBaseQueryParam {
@ApiModelProperty(name = "searchValue",value = "关键字搜索值") @ApiModelProperty(name = "searchValue",value = "关键字搜索值")
private String searchValue; private String searchValue;
@ApiModelProperty(name = "startTime", value = "开始时间")
private String startTime;
@ApiModelProperty(name = "endTime", value = "结束时间")
private String endTime;
} }

View File

@@ -21,6 +21,12 @@ public class AllDataVO implements Serializable {
@ApiModelProperty("部门名称") @ApiModelProperty("部门名称")
private String areaName; private String areaName;
/**
* 部门id
*/
@ApiModelProperty("部门id")
private String index;
/** /**
* 暂降事件次数 * 暂降事件次数
*/ */

View File

@@ -0,0 +1,30 @@
package com.njcn.device.pq.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/04/06
*/
@Data
public class HomeostasisAreaVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 稳态超标占比
*/
@ApiModelProperty("稳态超标占比")
private String avg;
}

View File

@@ -0,0 +1,29 @@
package com.njcn.device.pq.pojo.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class OnlineRateCensusVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* x轴 统计类型
*/
private List<String> type;
/**
* y轴 数据
*/
private List<Double> single;
/**
* y轴 同比环比数据
*/
private List<Double> ratio;
}

View File

@@ -6,12 +6,15 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
import com.njcn.device.pq.pojo.bo.BaseLineInfo; import com.njcn.device.pq.pojo.bo.BaseLineInfo;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.vo.DeptDeviceDetailVO; import com.njcn.device.pq.pojo.vo.DeptDeviceDetailVO;
import com.njcn.device.pq.pojo.vo.DeptSubstationDetailVO; import com.njcn.device.pq.pojo.vo.DeptSubstationDetailVO;
import com.njcn.device.pq.pojo.vo.ExceptionDeviceInfoVO; import com.njcn.device.pq.pojo.vo.ExceptionDeviceInfoVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.service.TerminalBaseService; import com.njcn.device.pq.service.TerminalBaseService;
import com.njcn.device.pq.service.impl.GeneralDeviceService; import com.njcn.device.pq.service.impl.GeneralDeviceService;
import com.njcn.web.controller.BaseController; import com.njcn.web.controller.BaseController;
@@ -48,6 +51,7 @@ public class GeneralDeviceInfoController extends BaseController {
private final TerminalBaseService terminalBaseService; private final TerminalBaseService terminalBaseService;
private final RStatOnlinerateDMapper onlineRateMapper;
/** /**
* 获取按部门分类的实际运行终端综合信息 * 获取按部门分类的实际运行终端综合信息
*/ */
@@ -266,4 +270,14 @@ public class GeneralDeviceInfoController extends BaseController {
} }
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getOnlineRateByDevIds")
@ApiOperation("终端在线率(谐波专用)")
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
public HttpResult<List<RStatOnlinerateVO>> getOnlineRateByDevIds(@RequestBody OnlineRateParam param) {
String methodDescribe = getMethodDescribe("getOnlineRateByDevIds");
List<RStatOnlinerateVO> onlineRateByDevIds = onlineRateMapper.getOnlineRateByDevIds(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateByDevIds,methodDescribe);
}
} }

View File

@@ -45,18 +45,15 @@ public class LineController extends BaseController {
private final LineService lineService; private final LineService lineService;
private final GeneralDeviceService generalDeviceService;
private final DeviceMapper deviceMapper; private final DeviceMapper deviceMapper;
private final LineMapper lineMapper; private final LineMapper lineMapper;
private final LineDetailMapper lineDetailMapper; private final LineDetailMapper lineDetailMapper;
private final DeptFeignClient deptFeignClient;
private final RStatIntegrityDMapper integrityDMapper; private final RStatIntegrityDMapper integrityDMapper;
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLineDetailData") @PostMapping("/getLineDetailData")
@ApiOperation("根据监测点id获取监测点详情") @ApiOperation("根据监测点id获取监测点详情")
@@ -81,7 +78,7 @@ public class LineController extends BaseController {
@PostMapping("/getSubstationData") @PostMapping("/getSubstationData")
@ApiOperation("根据变电站id获取变电站详情") @ApiOperation("根据变电站id获取变电站详情")
@ApiImplicitParam(name = "id", value = "监测点id", required = true) @ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<List<SubstationDetailVO>> getSubstationData(@RequestParam("id") List<String> id) { public HttpResult<List<SubstationDetailVO>> getSubstationData(@RequestBody List<String> id) {
String methodDescribe = getMethodDescribe("getSubstationData"); String methodDescribe = getMethodDescribe("getSubstationData");
List<SubstationDetailVO> result = lineService.getSubstationData(id); List<SubstationDetailVO> result = lineService.getSubstationData(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
@@ -421,4 +418,14 @@ public class LineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onIntegrityByIds,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onIntegrityByIds,methodDescribe);
} }
@PostMapping("/getOnIntegrityByIdsAndTime")
@ApiOperation("监测点数据完整率")
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
public HttpResult<List<RStatIntegrityVO>> getOnIntegrityByIdsAndTime(@RequestBody LineBaseQueryParam param) {
String methodDescribe = getMethodDescribe("getOnIntegrityByIdsAndTime");
List<RStatIntegrityVO> onIntegrityByIds = integrityDMapper.getOnIntegrityByIdsAndTime (param.getLineIds(),param.getStartTime(),param.getEndTime());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onIntegrityByIds,methodDescribe);
}
} }

View File

@@ -7,10 +7,12 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.mapper.OnlineRateMapper; import com.njcn.device.pq.mapper.OnlineRateMapper;
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper; import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam; import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
import com.njcn.device.pq.pojo.po.OnlineRate; import com.njcn.device.pq.pojo.po.OnlineRate;
import com.njcn.device.pq.pojo.po.RStatOnlinerateD; import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO; import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO; import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import com.njcn.device.pq.service.TerminalOnlineRateDataService; import com.njcn.device.pq.service.TerminalOnlineRateDataService;
@@ -20,6 +22,7 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@@ -57,6 +60,16 @@ public class TerminalOnlineRateDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateData,methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateData,methodDescribe);
} }
@OperateInfo
@PostMapping("/getOnlineRateDataCensus")
@ApiOperation("终端在线率图表")
@ApiImplicitParam(name = "onlineRateCensusParam", value = "终端在线率参数", required = true)
public HttpResult<OnlineRateCensusVO> getOnlineRateDataCensus(@RequestBody @Validated DeviceInfoParam.CompareBusinessParam onlineRateCensusParam){
String methodDescribe = getMethodDescribe("getOnlineRateDataCensus");
OnlineRateCensusVO onlineRateCensusVO = terminalOnlineRateDataService.getOnlineRateDataCensus(onlineRateCensusParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,onlineRateCensusVO,methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getOnlineRateByDevIds") @PostMapping("/getOnlineRateByDevIds")
@ApiOperation("终端在线率(谐波专用)") @ApiOperation("终端在线率(谐波专用)")

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.LineDataIntegrity; import com.njcn.device.pq.pojo.po.LineDataIntegrity;
import com.njcn.device.pq.pojo.po.RStatIntegrityD; import com.njcn.device.pq.pojo.po.RStatIntegrityD;
@@ -36,4 +37,6 @@ public interface RStatIntegrityDMapper extends BaseMapper<RStatIntegrityD> {
* @return List<OnlineRate> * @return List<OnlineRate>
*/ */
List<RStatIntegrityVO> getOnIntegrityByIds(@Param("param") OnlineRateParam param); List<RStatIntegrityVO> getOnIntegrityByIds(@Param("param") OnlineRateParam param);
List<RStatIntegrityVO> getOnIntegrityByIdsAndTime (@Param("list")List<String> lineIds,@Param("startTime")String startTime,@Param("endTime")String endTime);
} }

View File

@@ -23,7 +23,7 @@
AND A.Dev_Type = B.Id AND A.Dev_Type = B.Id
AND A.Update_By = C.Id AND A.Update_By = C.Id
<if test="devType != null and devType != ''"> <if test="devType != null and devType != ''">
AND A.Dev_Type = ${devType} AND A.Dev_Type = #{devType}
</if> </if>
</select> </select>

View File

@@ -24,7 +24,7 @@
r_stat_integrity_d r_stat_integrity_d
<where> <where>
<if test="param!=null and param.ids != null and param.ids.size > 0"> <if test="param!=null and param.ids != null and param.ids.size > 0">
AND Dev_Id IN AND line_index IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'> <foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item} #{item}
</foreach> </foreach>
@@ -38,4 +38,29 @@
</where> </where>
group by line_index ; group by line_index ;
</select> </select>
<select id="getOnIntegrityByIdsAndTime" resultType="com.njcn.device.pq.pojo.vo.RStatIntegrityVO">
SELECT
line_index AS lineIndex,
sum( real_time )/ sum( due_time )* 100 AS integrityRate
FROM
r_stat_integrity_d
<where>
<if test="list.size > 0">
AND line_index IN
<foreach collection='list' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="startTime != null and startTime !=''">
AND time_id >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND time_id &lt;= #{endTime}
</if>
</where>
group by line_index ;
</select>
</mapper> </mapper>

View File

@@ -8,7 +8,7 @@
from r_stat_onlinerate_d from r_stat_onlinerate_d
<where> <where>
<if test="param!=null and param.ids != null and param.ids.size > 0"> <if test="param!=null and param.ids != null and param.ids.size > 0">
AND Dev_Id IN AND dev_index IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'> <foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item} #{item}
</foreach> </foreach>

View File

@@ -2,6 +2,7 @@ package com.njcn.device.pq.service;
import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam; import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO; import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import java.util.List; import java.util.List;
@@ -20,4 +21,6 @@ public interface TerminalOnlineRateDataService {
* @return * @return
*/ */
List<TerminalOnlineRateDataVO> getOnlineRateData(TerminalOnlineRateDataParam terminalOnlineRateDataParam); List<TerminalOnlineRateDataVO> getOnlineRateData(TerminalOnlineRateDataParam terminalOnlineRateDataParam);
OnlineRateCensusVO getOnlineRateDataCensus(DeviceInfoParam.CompareBusinessParam onlineRateCensusParam);
} }

View File

@@ -191,10 +191,6 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService {
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper(); InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List<DeviceDayFlow> deviceDayFlow = influxDBResultMapper.toPOJO(result, DeviceDayFlow.class); List<DeviceDayFlow> deviceDayFlow = influxDBResultMapper.toPOJO(result, DeviceDayFlow.class);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
// Instant time = deviceDayFlow.get(0).getTime();
// System.out.println(time);
// Date from = Date.from(time);
// System.out.println(from);
deviceDayFlow.forEach(t-> t.setDate(formatter.format(Date.from(t.getTime())))); deviceDayFlow.forEach(t-> t.setDate(formatter.format(Date.from(t.getTime()))));
Map<String, List<DeviceDayFlow>> dayFlowMap = deviceDayFlow.stream().collect(Collectors.groupingBy(DeviceDayFlow::getDate)); Map<String, List<DeviceDayFlow>> dayFlowMap = deviceDayFlow.stream().collect(Collectors.groupingBy(DeviceDayFlow::getDate));
List<DeviceDayFlow> list = new ArrayList<>(); List<DeviceDayFlow> list = new ArrayList<>();

View File

@@ -1,21 +1,29 @@
package com.njcn.device.pq.service.impl; package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.graphbuilder.math.func.AvgFunction; import com.graphbuilder.math.func.AvgFunction;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.AlarmClient; import com.njcn.device.pq.api.AlarmClient;
import com.njcn.device.pq.enums.DeviceResponseEnum; import com.njcn.device.pq.enums.DeviceResponseEnum;
import com.njcn.device.pq.enums.LineBaseEnum; import com.njcn.device.pq.enums.LineBaseEnum;
import com.njcn.device.pq.mapper.RStatOnlinerateDMapper;
import com.njcn.device.pq.mapper.TerminalOnlineRateDataMapper; import com.njcn.device.pq.mapper.TerminalOnlineRateDataMapper;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.dto.PublicDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam; import com.njcn.device.pq.pojo.param.TerminalOnlineRateDataParam;
import com.njcn.device.pq.pojo.po.TerminalOnlineRateData; import com.njcn.device.pq.pojo.po.TerminalOnlineRateData;
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO; import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
import com.njcn.device.pq.pojo.vo.OnlineRateCensusVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO; import com.njcn.device.pq.pojo.vo.TerminalOnlineRateDataVO;
import com.njcn.device.pq.service.IRStatOnlinerateDService; import com.njcn.device.pq.service.IRStatOnlinerateDService;
import com.njcn.device.pq.service.TerminalOnlineRateDataService; import com.njcn.device.pq.service.TerminalOnlineRateDataService;
@@ -35,6 +43,7 @@ import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
@@ -55,7 +64,7 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
private final TerminalOnlineRateDataMapper terminalOnlineRateDataMapper; private final TerminalOnlineRateDataMapper terminalOnlineRateDataMapper;
private final InfluxDbUtils influxDbUtils; private final GeneralInfo generalInfo;
private final GeneralDeviceService generalDeviceService; private final GeneralDeviceService generalDeviceService;
@@ -63,6 +72,9 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
private final DicDataFeignClient dicDataFeignClient; private final DicDataFeignClient dicDataFeignClient;
private final RStatOnlinerateDMapper onlineRateMapper;
/** /**
@@ -157,6 +169,58 @@ public class TerminalOnlineRateDataServiceImpl implements TerminalOnlineRateData
} }
@Override
public OnlineRateCensusVO getOnlineRateDataCensus(DeviceInfoParam.CompareBusinessParam onlineRateCensusParam) {
OnlineRateCensusVO onlineRateCensusVO = new OnlineRateCensusVO();
onlineRateCensusParam.setServerName(generalInfo.getMicroServiceName());
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(onlineRateCensusParam,Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
List<String> type = new ArrayList<>();
List<Double> single = new ArrayList<>(), ratio = new ArrayList<>();
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
for (GeneralDeviceDTO generalDeviceDTO: generalDeviceDTOList){
List<String> deviceIndexes = generalDeviceDTO.getDeviceIndexes();
if (CollectionUtils.isEmpty(deviceIndexes)) {
continue;
}
type.add(generalDeviceDTO.getName());
//根据终端索引集查询在线率
List<PublicDTO> onlineRateList = getCondition(deviceIndexes, onlineRateCensusParam.getSearchBeginTime(), onlineRateCensusParam.getSearchEndTime());
single.add(onlineRateList.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
//如果存在需要比较的时间,再获取对应数据
if(StrUtil.isNotBlank(onlineRateCensusParam.getPeriodBeginTime()) && StrUtil.isNotBlank(onlineRateCensusParam.getPeriodEndTime())){
List<PublicDTO> compareData = getCondition(deviceIndexes, onlineRateCensusParam.getPeriodBeginTime(), onlineRateCensusParam.getPeriodEndTime());
ratio.add(compareData.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159));
}
}
}
onlineRateCensusVO.setType(type);
onlineRateCensusVO.setSingle(single);
onlineRateCensusVO.setRatio(ratio);
return onlineRateCensusVO;
}
private List<PublicDTO> getCondition(List<String> deviceIndexes, String searchBeginTime, String searchEndTime) {
List<PublicDTO> publicDTOList = new ArrayList<>();
OnlineRateParam param=new OnlineRateParam();
param.setIds(deviceIndexes);
param.setStartTime( DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)).toString());
param.setEndTime( DateUtil.endOfDay(DateUtil.parse(searchEndTime)).toString());
List<RStatOnlinerateVO> data = onlineRateMapper.getOnlineRateByDevIds(param);
if (CollUtil.isNotEmpty(data)) {
data.forEach(po -> {
PublicDTO publicDTO = new PublicDTO();
//终端在线率 保留两位小数
Double onlineRate = po.getOnlineRate() == null ? null : BigDecimal.valueOf(Double.parseDouble(po.getOnlineRate().toString())).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
publicDTO.setId(po.getDevIndex());
publicDTO.setData(onlineRate);
publicDTOList.add(publicDTO);
});
}
return publicDTOList;
}
/** /**
* 处理变电站 * 处理变电站
* *

View File

@@ -32,7 +32,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -29,7 +29,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -32,4 +32,7 @@ public interface LargeScreenMapper {
List<Map<String, Object>> getMiddleTerminal (@Param("deviceIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); List<Map<String, Object>> getMiddleTerminal (@Param("deviceIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<MiddleLimitRateVO> getMiddleLimitRate (@Param("lineIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime); List<MiddleLimitRateVO> getMiddleLimitRate (@Param("lineIds") List<String> deviceIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<Map<String,Object>> getHomeostasisArea (@Param("indexIds") List<String> indexIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
} }

View File

@@ -195,5 +195,23 @@
left join pq_line pl3 on pl2.Pid = pl3.Id left join pq_line pl3 on pl2.Pid = pl3.Id
</select> </select>
<select id="getHomeostasisArea" resultType="java.util.Map">
select
rshom.org_no "id",
round(avg(rshom.over_limit_measurement_ratio_accrued),2) avg
from r_stat_harmonic_org_m rshom
left join sys_dict_data sdd on rshom.data_type = sdd.Id and sdd.`Code` = 'Mainnet_Point'
WHERE
rshom.org_no IN
<foreach collection="indexIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
<if test="startTime != null and startTime != ''">
and date_format(rshom.data_date,'%y%m%d') &gt;= date_format(#{startTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''">
and date_format(rshom.data_date,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
group by rshom.org_no
</select>
</mapper> </mapper>

View File

@@ -12,6 +12,7 @@ import com.njcn.system.pojo.enums.StatisticsEnum;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap; import org.apache.commons.collections.map.HashedMap;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.api.GeneralDeviceInfoClient;
@@ -19,10 +20,7 @@ import java.math.RoundingMode;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -274,6 +272,8 @@ public class LargeScreenServiceImpl implements LargeScreenService {
if (generalDeviceDTO.getDeviceIndexes().size() > 0) { if (generalDeviceDTO.getDeviceIndexes().size() > 0) {
AllDataVO allDataVO = largeScreenMapper.getFlagCount(generalDeviceDTO.getDeviceIndexes()); AllDataVO allDataVO = largeScreenMapper.getFlagCount(generalDeviceDTO.getDeviceIndexes());
allDataVO.setAreaName(generalDeviceDTO.getName()); allDataVO.setAreaName(generalDeviceDTO.getName());
allDataVO.setIndex(generalDeviceDTO.getIndex());
allDataVO.setSteadyLoad("0.0");
if (generalDeviceDTO.getLineIndexes().size() > 0) { if (generalDeviceDTO.getLineIndexes().size() > 0) {
Map<String, Object> map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); Map<String, Object> map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
allDataVO.setEventCounts(map.get("count").toString()); allDataVO.setEventCounts(map.get("count").toString());
@@ -284,11 +284,13 @@ public class LargeScreenServiceImpl implements LargeScreenService {
} else { } else {
AllDataVO allDataVO = new AllDataVO(); AllDataVO allDataVO = new AllDataVO();
allDataVO.setAreaName(generalDeviceDTO.getName()); allDataVO.setAreaName(generalDeviceDTO.getName());
allDataVO.setIndex(generalDeviceDTO.getIndex());
allDataVO.setRunning("0"); allDataVO.setRunning("0");
allDataVO.setHotSpare("0"); allDataVO.setHotSpare("0");
allDataVO.setShutdown("0"); allDataVO.setShutdown("0");
allDataVO.setNormal("0"); allDataVO.setNormal("0");
allDataVO.setBreakdown("0"); allDataVO.setBreakdown("0");
allDataVO.setSteadyLoad("0.0");
if (generalDeviceDTO.getLineIndexes().size() > 0) { if (generalDeviceDTO.getLineIndexes().size() > 0) {
Map<String, Object> map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); Map<String, Object> map = largeScreenMapper.getDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
allDataVO.setEventCounts(map.get("count").toString()); allDataVO.setEventCounts(map.get("count").toString());
@@ -298,7 +300,20 @@ public class LargeScreenServiceImpl implements LargeScreenService {
result.add(allDataVO); result.add(allDataVO);
} }
} }
//todo 该接口部分功能未完成 1.稳态符合性 2.综合评估 //部门id集合
List<String> indexIds = generalDeviceDTOList.stream().map(GeneralDeviceDTO::getIndex).collect(Collectors.toList());
List<Map<String, Object>> homeostasisArea = largeScreenMapper.getHomeostasisArea(indexIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
float f = 0.0f;
for (AllDataVO allDataVO : result) {
for (Map<String, Object> map : homeostasisArea) {
if (Objects.equals(map.get("id"),allDataVO.getIndex())){
f=Float.parseFloat(map.get("avg").toString());
allDataVO.setSteadyLoad(String.valueOf((1-f)*100));
}
}
}
//todo 该接口部分功能未完成 1.综合评估
return result; return result;
} }

View File

@@ -29,7 +29,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>${micro.sdk}</artifactId> <artifactId>common-microservice</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -50,6 +50,8 @@ public class IpUtils {
log.error("X-Real-IP:"+ipAddress); log.error("X-Real-IP:"+ipAddress);
ipAddress = headers.getFirst("Proxy-Client-IP"); ipAddress = headers.getFirst("Proxy-Client-IP");
log.error("Proxy-Client-IP:"+ipAddress); log.error("Proxy-Client-IP:"+ipAddress);
ipAddress = headers.getFirst("REMOTE-HOST");
log.error("REMOTE-HOST:"+ipAddress);
if (StrUtil.isBlankIfStr(ipAddress) || UNKNOWN.equalsIgnoreCase(ipAddress)) { if (StrUtil.isBlankIfStr(ipAddress) || UNKNOWN.equalsIgnoreCase(ipAddress)) {
ipAddress = headers.getFirst(HEADER_PROXY_CLIENT_IP); ipAddress = headers.getFirst(HEADER_PROXY_CLIENT_IP);
} }

Some files were not shown because too many files have changed in this diff Show More