Merge remote-tracking branch 'origin/master'

This commit is contained in:
Lee
2023-04-10 16:36:36 +08:00
60 changed files with 1967 additions and 215 deletions

View File

@@ -38,6 +38,11 @@
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-microservice</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies> </dependencies>
<properties> <properties>

View File

@@ -0,0 +1,21 @@
package com.njcn.algorithm.api;
import com.njcn.algorithm.api.fallback.EquipmentFeignClientFallbackFactory;
import com.njcn.algorithm.pojo.vo.CsEquipmentDeliveryVO;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @author xy
*/
@FeignClient(value = ServerInfo.ALGORITHM_BOOT, path = "/EquipmentDelivery", fallbackFactory = EquipmentFeignClientFallbackFactory.class,contextId = "EquipmentDelivery")
public interface EquipmentFeignClient {
@PostMapping("/queryEquipmentByndid")
HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid") String ndid);
}

View File

@@ -0,0 +1,36 @@
package com.njcn.algorithm.api.fallback;
import com.njcn.algorithm.api.EquipmentFeignClient;
import com.njcn.algorithm.pojo.vo.CsEquipmentDeliveryVO;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author xy
*/
@Slf4j
@Component
public class EquipmentFeignClientFallbackFactory implements FallbackFactory<EquipmentFeignClient> {
@Override
public EquipmentFeignClient create(Throwable cause) {
//判断抛出异常是否为解码器抛出的业务异常
Enum<?> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
if (cause.getCause() instanceof BusinessException) {
BusinessException businessException = (BusinessException) cause.getCause();
// exceptionEnum = UserEnumUtil.getExceptionEnum(businessException.getResult());
}
Enum<?> finalExceptionEnum = exceptionEnum;
return new EquipmentFeignClient() {
@Override
public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(String ndid) {
log.error("{}异常,降级处理,异常为:{}","通过ndid查询出厂设备异常",cause.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -16,6 +16,8 @@ public enum AlgorithmResponseEnum {
*/ */
PROJECT_COMMON_ERROR("A00500","同一用户下项目名不能相同"), PROJECT_COMMON_ERROR("A00500","同一用户下项目名不能相同"),
DICT_DATA_ERROR("A00501","暂无此字典表类型"), DICT_DATA_ERROR("A00501","暂无此字典表类型"),
NDID_ERROR("A00502","存在相同的ndid"),
; ;

View File

@@ -0,0 +1,53 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 装置数据模板表
*/
@Data
public class CsDevModelAddParm {
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
/**
* 版本号
*/
@ApiModelProperty(value = "版本号")
private String versionNo;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date versionDate;
/**
* 装置模板文件路径
*/
@ApiModelProperty(value = "装置模板文件路径")
private String filePath;
}

View File

@@ -0,0 +1,60 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 装置数据模板表
*/
@Data
public class CsDevModelAuditParm {
@NotNull(message="版本id不能为空")
private String id;
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
/**
* 版本号
*/
@ApiModelProperty(value = "版本号")
private String versionNo;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date versionDate;
/**
* 装置模板文件路径
*/
@ApiModelProperty(value = "装置模板文件路径")
private String filePath;
@ApiModelProperty(value = "状态")
private String status;
}

View File

@@ -0,0 +1,48 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
public class CsDevModelQueryListParm {
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
@ApiModelProperty(value = "版本号")
private String versionNo;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd")
private String versionStartDate;
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private String versionendDate;
}

View File

@@ -0,0 +1,60 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
public class CsDevModelQueryParm {
@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;
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
@ApiModelProperty(value = "装置名称")
private String devName;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd")
private String versionStartDate;
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private String versionendDate;
}

View File

@@ -0,0 +1,79 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
public class CsEdDataAddParm {
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
@NotBlank(message="装置型号不能为空!")
private String devType;
/**
* 版本号
*/
@ApiModelProperty(value = "版本号")
@NotBlank(message="版本号不能为空!")
private String versionNo;
/**
* 版本协议
*/
@ApiModelProperty(value = "版本协议")
@NotBlank(message="版本协议不能为空!")
private String versionAgreement;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date versionDate;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String description;
/**
* 版本类型
*/
@ApiModelProperty(value = "版本类型")
@NotBlank(message="版本类型不能为空!")
private String versionType;
@ApiModelProperty(value = "crc信息")
private String crcInfo;
@ApiModelProperty(value = ".bin文件")
@NotNull(message="文件不能为空!")
private MultipartFile file;
}

View File

@@ -0,0 +1,74 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
public class CsEdDataAuditParm {
@NotNull(message="版本id不能为空")
private String id;
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
/**
* 版本号
*/
@ApiModelProperty(value = "版本号")
private String versionNo;
/**
* 版本协议
*/
@ApiModelProperty(value = "版本协议")
private String versionAgreement;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate versionDate;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String description;
/**
* 版本类型
*/
@ApiModelProperty(value = "版本类型")
private String versionType;
@ApiModelProperty(value = "crc信息")
private String crcInfo;
@ApiModelProperty(value = ".bin文件")
private MultipartFile file;
}

View File

@@ -0,0 +1,60 @@
package com.njcn.algorithm.pojo.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
public class CsEdDataQueryParm {
@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;
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
@ApiModelProperty(value = "装置名称")
private String devName;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd")
private String versionStartDate;
@ApiModelProperty(value = "版本日期")
@DateTimeFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private String versionendDate;
}

View File

@@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotBlank;
/** /**
* *
@@ -25,31 +25,29 @@ public class CsFeedbackAddParm {
* 标题 * 标题
*/ */
@ApiModelProperty(value = "标题") @ApiModelProperty(value = "标题")
@NotNull(message="标题不能为空!") @NotBlank(message="标题不能为空!")
private String title; private String title;
/** /**
* 描述 * 描述
*/ */
@ApiModelProperty(value = "描述") @ApiModelProperty(value = "描述")
@NotNull(message="描述不能为空!")
private String description; private String description;
/** /**
* 用户id * 用户id
*/ */
@ApiModelProperty(value = "用户id") @ApiModelProperty(value = "用户id")
@NotNull(message="用户id不能为空") @NotBlank(message="用户id不能为空")
private String userId; private String userId;
/** /**
* 问题类型(字典数据) * 问题类型(字典数据)
*/ */
@ApiModelProperty(value = "问题类型") @ApiModelProperty(value = "问题类型")
@NotNull(message="问题类型不能为空!") @NotBlank(message="问题类型不能为空!")
private String type; private String type;
@ApiModelProperty(value = "拓扑图文件") @ApiModelProperty(value = "拓扑图文件")
@NotNull(message="拓扑图文件不能为空!")
private MultipartFile[] files; private MultipartFile[] files;
} }

View File

@@ -0,0 +1,63 @@
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;
import java.util.Date;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 装置数据模板表
*/
@Data
@TableName(value = "cs_dev_model")
public class CsDevModelPO extends BaseEntity {
/**
* id
*/
@TableId(value = "id",type = IdType.ASSIGN_UUID)
private String id;
/**
* 装置型号(字典数据)
*/
@TableField(value = "dev_type")
private String devType;
/**
* 版本号
*/
@TableField(value = "version_no")
private String versionNo;
/**
* 版本日期
*/
@TableField(value = "version_date")
private Date versionDate;
/**
* 装置模板文件路径
*/
@TableField(value = "file_path")
private String filePath;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
}

View File

@@ -1,6 +1,7 @@
package com.njcn.algorithm.pojo.po; package com.njcn.algorithm.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity; import com.njcn.db.bo.BaseEntity;
import lombok.Data; import lombok.Data;
@@ -11,21 +12,22 @@ import java.util.Date;
* *
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】 * Date: 2023/4/7 11:29【需求编号】
* *
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
/** /**
* 程序版本表 * 程序版本表
*/ */
@Data @Data
@TableName(value = "cs_ed_data") @TableName(value = "cs_ed_data")
public class CsEdDataPO extends BaseEntity { public class CsEdDataPO extends BaseEntity {
/** /**
* id * id
*/ */
@TableField(value = "id") @TableId(value = "id")
private String id; private String id;
/** /**
@@ -43,8 +45,8 @@ public class CsEdDataPO extends BaseEntity {
/** /**
* 版本协议 * 版本协议
*/ */
@TableField(value = "version_agree") @TableField(value = "version_agreement")
private String versionAgree; private String versionAgreement;
/** /**
* 版本日期 * 版本日期
@@ -55,11 +57,11 @@ public class CsEdDataPO extends BaseEntity {
/** /**
* 描述 * 描述
*/ */
@TableField(value = "describe") @TableField(value = "description")
private String describe; private String description;
/** /**
* 版本类型(字典数据) * 版本类型
*/ */
@TableField(value = "version_type") @TableField(value = "version_type")
private String versionType; private String versionType;
@@ -76,5 +78,4 @@ public class CsEdDataPO extends BaseEntity {
@TableField(value = "file_path") @TableField(value = "file_path")
private String filePath; private String filePath;
} }

View File

@@ -0,0 +1,68 @@
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/7 11:04【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 工程信息表
*/
@Data
@TableName(value = "cs_engineering")
public class CsEngineeringPO extends BaseEntity {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
/**
* 工程名称
*/
@TableField(value = "name")
private String name;
/**
* 用户id
*/
@TableField(value = "user_id")
private String userId;
/**
* 省
*/
@TableField(value = "province")
private String province;
/**
* 市
*/
@TableField(value = "city")
private String city;
/**
* 描述
*/
@TableField(value = "description")
private String description;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private Boolean status;
}

View File

@@ -0,0 +1,65 @@
package com.njcn.algorithm.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 装置数据模板表
*/
@Data
public class CsDevModelPageVO extends BaseEntity {
/**
* id
*/
@ApiModelProperty(value = "id")
private String id;
/**
* 设备型号(字典数据)
*/
@ApiModelProperty(value = "设备型号")
private String devType;
@ApiModelProperty(value = "设备名称")
private String devName;
/**
* 版本号
*/
@ApiModelProperty(value = "版本号")
private String versionNo;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
private LocalDate versionDate;
/**
* 装置模板文件路径
*/
@TableField(value = "file_path")
private String filePath;
/**
* 状态(0删除 1正常)
*/
@TableField(value = "status")
private String status;
}

View File

@@ -0,0 +1,73 @@
package com.njcn.algorithm.pojo.vo;
import com.njcn.db.bo.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:29【需求编号】
*
* @author clam
* @version V1.0.0
*/
/**
* 程序版本表
*/
@Data
public class CsEdDataVO extends BaseEntity {
@ApiModelProperty(value = "id")
private String id;
/**
* 装置型号(字典数据)
*/
@ApiModelProperty(value = "装置型号")
private String devType;
@ApiModelProperty(value = "装置名称")
private String devName;
/**
* 版本号
*/
@ApiModelProperty(value = "版本号")
private String versionNo;
/**
* 版本协议
*/
@ApiModelProperty(value = "版本协议")
private String versionAgreement;
/**
* 版本日期
*/
@ApiModelProperty(value = "版本日期")
private LocalDate versionDate;
/**
* 描述
*/
@ApiModelProperty(value = "描述")
private String description;
/**
* 版本类型
*/
@ApiModelProperty(value = "版本类型")
private String versionType;
@ApiModelProperty(value = "crc信息")
private String crcInfo;
@ApiModelProperty(value = ".bin文件")
private String filePath;
}

View File

@@ -14,6 +14,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
@@ -91,44 +101,44 @@
</executions> </executions>
</plugin> </plugin>
<!-- <plugin>--> <plugin>
<!-- <groupId>com.spotify</groupId>--> <groupId>com.spotify</groupId>
<!-- <artifactId>docker-maven-plugin</artifactId>--> <artifactId>docker-maven-plugin</artifactId>
<!-- <version>1.0.0</version>--> <version>1.0.0</version>
<!-- <executions>--> <executions>
<!-- &lt;!&ndash;执行mvn package,即执行 mvn clean package docker:build&ndash;&gt;--> <!--执行mvn package,即执行 mvn clean package docker:build-->
<!-- <execution>--> <execution>
<!-- <id>build-image</id>--> <id>build-image</id>
<!-- <phase>${docker.operate}</phase>--> <phase>${docker.operate}</phase>
<!-- <goals>--> <goals>
<!-- <goal>build</goal>--> <goal>build</goal>
<!-- </goals>--> </goals>
<!-- </execution>--> </execution>
<!-- </executions>--> </executions>
<!-- <configuration>--> <configuration>
<!-- &lt;!&ndash;<serverId>36dockerHarbor</serverId>&ndash;&gt;--> <!--<serverId>36dockerHarbor</serverId>-->
<!-- <registryUrl>http://${docker.repostory}</registryUrl>--> <registryUrl>http://${docker.repostory}</registryUrl>
<!-- &lt;!&ndash; 镜像名称 &ndash;&gt;--> <!-- 镜像名称 -->
<!-- <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}</imageName>--> <imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}</imageName>
<!-- &lt;!&ndash; 指定标签 &ndash;&gt;--> <!-- 指定标签 -->
<!-- <imageTags>--> <imageTags>
<!-- <imageTag>latest</imageTag>--> <imageTag>latest</imageTag>
<!-- </imageTags>--> </imageTags>
<!-- &lt;!&ndash; 指定远程 Docker API地址 &ndash;&gt;--> <!-- 指定远程 Docker API地址 -->
<!-- <dockerHost>${docker.url}</dockerHost>--> <dockerHost>${docker.url}</dockerHost>
<!-- <dockerDirectory>${basedir}/</dockerDirectory>--> <dockerDirectory>${basedir}/</dockerDirectory>
<!-- &lt;!&ndash; 复制 jar包到docker容器指定目录&ndash;&gt;--> <!-- 复制 jar包到docker容器指定目录-->
<!-- <resources>--> <resources>
<!-- <resource>--> <resource>
<!-- <targetPath>/ROOT</targetPath>--> <targetPath>/ROOT</targetPath>
<!-- &lt;!&ndash; 用于指定需要复制的根目录,${project.build.directory}表示target目录 &ndash;&gt;--> <!-- 用于指定需要复制的根目录,${project.build.directory}表示target目录 -->
<!-- <directory>${project.build.directory}</directory>--> <directory>${project.build.directory}</directory>
<!-- &lt;!&ndash; 用于指定需要复制的文件,${project.build.finalName}.jar就是打包后的target目录下的jar包名称 &ndash;&gt;--> <!-- 用于指定需要复制的文件,${project.build.finalName}.jar就是打包后的target目录下的jar包名称 -->
<!-- <include>${project.build.finalName}.jar</include>--> <include>${project.build.finalName}.jar</include>
<!-- </resource>--> </resource>
<!-- </resources>--> </resources>
<!-- </configuration>--> </configuration>
<!-- </plugin>--> </plugin>
</plugins> </plugins>
</build> </build>

View File

@@ -0,0 +1,95 @@
package com.njcn.algorithm.controller.Equipment;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.algorithm.pojo.param.CsDevModelAddParm;
import com.njcn.algorithm.pojo.param.CsDevModelAuditParm;
import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm;
import com.njcn.algorithm.pojo.param.CsDevModelQueryParm;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import com.njcn.algorithm.service.CsDevModelService;
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;
import java.util.List;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/3/27 15:31【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/devmodel")
@Api(tags = "设备模板")
@AllArgsConstructor
public class DevModelController extends BaseController {
private final CsDevModelService csDevModelService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addDevModel")
@ApiOperation("新增设备模板")
@ApiImplicitParam(name = "csDevModelAddParm", value = "新增设备模板参数", required = true)
public HttpResult<Boolean> addDevModel(@RequestBody @Validated CsDevModelAddParm csDevModelAddParm){
String methodDescribe = getMethodDescribe("addDevModel");
Boolean flag = csDevModelService.addDevModel (csDevModelAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/AuditDevModel")
@ApiOperation("更新/删除出厂设备")
@ApiImplicitParam(name = "csDevModelAuditParm", value = "更新/删除设备模板参数", required = true)
public HttpResult<Boolean> AuditDevModel(@RequestBody @Validated CsDevModelAuditParm csDevModelAuditParm ){
String methodDescribe = getMethodDescribe("AuditDevModel");
Boolean flag = csDevModelService.AuditDevModel(csDevModelAuditParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryDevModelPage")
@ApiOperation("设备模板分页查询")
@ApiImplicitParam(name = "csDevModelQueryParm", value = "设备模板查询参数", required = true)
public HttpResult<IPage<CsDevModelPageVO>> queryDevModelPage(@RequestBody @Validated CsDevModelQueryParm csDevModelQueryParm ){
String methodDescribe = getMethodDescribe("queryDevModelPage");
IPage<CsDevModelPageVO> page = csDevModelService.queryPage (csDevModelQueryParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEquipmentByProject")
@ApiOperation("通过项目查询出厂设备")
@ApiImplicitParam(name = "csDevModelQueryListParm", value = "项目信息", required = true)
public HttpResult<List<CsDevModelPageVO>> queryEquipmentByProject(@RequestBody CsDevModelQueryListParm csDevModelQueryListParm){
String methodDescribe = getMethodDescribe("queryEquipmentByProject");
List<CsDevModelPageVO> list = csDevModelService.queryList(csDevModelQueryListParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -59,19 +59,10 @@ public class EquipmentDeliveryController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
} }
// @OperateInfo(info = LogEnum.BUSINESS_COMMON)
// @PostMapping("/queryEquipment")
// @ApiOperation("项目查询")
// @ApiImplicitParam(name = "appProjectQueryParm", value = "项目查询参数", required = true)
// public HttpResult<List<CsEquipmentDeliveryVO>> queryEquipment(@Validated @RequestBody AppProjectQueryParm appProjectQueryParm){
// String methodDescribe = getMethodDescribe("queryEquipment");
//
// List<CsEquipmentDeliveryVO> appProjectVOIPage = csEquipmentDeliveryService.queryEquipment (appProjectQueryParm);
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, appProjectVOIPage, methodDescribe);
// }
@OperateInfo(info = LogEnum.BUSINESS_COMMON) @OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEquipmentByndid") @PostMapping("/queryEquipmentByndid")
@ApiOperation("通过ndid查询出厂设备") @ApiOperation("通过ndid查询出厂设备")
@ApiImplicitParam(name = "ndid", value = "网关识别码", required = true) @ApiImplicitParam(name = "ndid", value = "网关识别码", required = true)
public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid")String ndid){ public HttpResult<CsEquipmentDeliveryVO> queryEquipmentByndid(@RequestParam("ndid")String ndid){

View File

@@ -0,0 +1,75 @@
package com.njcn.algorithm.controller.project;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.algorithm.pojo.param.CsEdDataAddParm;
import com.njcn.algorithm.pojo.param.CsEdDataAuditParm;
import com.njcn.algorithm.pojo.param.CsEdDataQueryParm;
import com.njcn.algorithm.pojo.vo.CsEdDataVO;
import com.njcn.algorithm.service.CsEdDataService;
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/4/4 9:02【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/edData")
@Api(tags = "app版本信息")
@AllArgsConstructor
public class CsEdDataController extends BaseController {
private final CsEdDataService csEdDataService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/addEdData")
@ApiOperation("新增app版本信息")
public HttpResult<Boolean> addEdData(@Validated CsEdDataAddParm csEdDataAddParm){
String methodDescribe = getMethodDescribe("addEdData");
boolean save = csEdDataService.addEdData (csEdDataAddParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, save, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/auditEdData")
@ApiOperation("修改/删除app版本信息")
public HttpResult<Boolean> auditEdData(@Validated CsEdDataAuditParm csEdDataAuditParm){
String methodDescribe = getMethodDescribe("auditEdData");
Boolean flag = csEdDataService.auditEdData(csEdDataAuditParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/queryEdDataPage")
@ApiOperation("版本信息查询")
@ApiImplicitParam(name = "csEdDataQueryParm", value = "查询参数", required = true)
public HttpResult<IPage<CsEdDataVO>> queryEdDataPage(@Validated @RequestBody CsEdDataQueryParm csEdDataQueryParm){
String methodDescribe = getMethodDescribe("queryEdDataPage");
IPage<CsEdDataVO> page = csEdDataService.queryEdDataPage (csEdDataQueryParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe);
}
}

View File

@@ -0,0 +1,26 @@
package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.algorithm.pojo.param.CsDevModelQueryListParm;
import com.njcn.algorithm.pojo.param.CsDevModelQueryParm;
import com.njcn.algorithm.pojo.po.CsDevModelPO;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsDevModelMapper extends BaseMapper<CsDevModelPO> {
Page<CsDevModelPageVO> getPage(Page<CsDevModelPageVO> returnpage,@Param("csDevModelQueryParm") CsDevModelQueryParm csDevModelQueryParm);
List<CsDevModelPageVO> queryList(@Param("csDevModelQueryListParm")CsDevModelQueryListParm csDevModelQueryListParm);
}

View File

@@ -1,16 +1,20 @@
package com.njcn.algorithm.mapper; package com.njcn.algorithm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.algorithm.pojo.param.CsEdDataQueryParm;
import com.njcn.algorithm.pojo.po.CsEdDataPO; import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.njcn.algorithm.pojo.vo.CsEdDataVO;
import org.apache.ibatis.annotations.Param;
/** /**
*
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】 * Date: 2023/4/7 11:29【需求编号】
* *
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
public interface CsEdDataMapper extends BaseMapper<CsEdDataPO> { public interface CsEdDataMapper extends BaseMapper<CsEdDataPO> {
Page<CsEdDataVO> getPage(Page<CsEdDataVO> returnpage,@Param("csEdDataQueryParm") CsEdDataQueryParm csEdDataQueryParm);
} }

View File

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

View File

@@ -0,0 +1,63 @@
<?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.CsDevModelMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsDevModelPO">
<!--@mbg.generated-->
<!--@Table cs_dev_model-->
<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_date" jdbcType="TIMESTAMP" property="versionDate" />
<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" />
<result column="status" jdbcType="BOOLEAN" property="status" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, dev_type, version_no, version_date, file_path, create_by, create_time, update_by,
update_time, `status`
</sql><select id="getPage" resultType="com.njcn.algorithm.pojo.vo.CsDevModelPageVO">
SELECT a.*,
b.code as devName
FROM cs_dev_model a
LEFT JOIN sys_dict_data b ON a.dev_type = b.id
WHERE
1 = 1
<if test="csDevModelQueryParm.versionStartDate != null and csDevModelQueryParm.versionStartDate != ''">
AND a.version_date &gt;= #{csDevModelQueryParm.versionStartDate }
</if>
<if test="csDevModelQueryParm.versionendDate != null and csDevModelQueryParm.versionendDate != ''">
AND a.version_date &lt;= #{csDevModelQueryParm.versionendDate }
</if>
<if test="csDevModelQueryParm.devName != null and csDevModelQueryParm.devName != ''">
AND b.CODE LIKE concat('%',#{csDevModelQueryParm.devName},'%')
</if>
<if test="csDevModelQueryParm.devType != null and csDevModelQueryParm.devType != ''">
AND a.dev_type = #{csDevModelQueryParm.devType}
</if>
</select><select id="queryList" resultType="com.njcn.algorithm.pojo.vo.CsDevModelPageVO">
SELECT a.*,
b.code as devName
FROM cs_dev_model a
LEFT JOIN sys_dict_data b ON a.dev_type = b.id
WHERE
1 = 1
<if test="csDevModelQueryListParm.versionStartDate != null and csDevModelQueryListParm.versionStartDate != ''">
AND a.version_date &gt;= #{csDevModelQueryListParm.versionStartDate }
</if>
<if test="csDevModelQueryListParm.versionendDate != null and csDevModelQueryListParm.versionendDate != ''">
AND a.version_date &lt;= #{csDevModelQueryListParm.versionendDate }
</if>
<if test="csDevModelQueryListParm.versionNo != null and csDevModelQueryListParm.versionNo != ''">
AND a.version_no = #{csDevModelQueryListParm.versionNo}
</if>
<if test="csDevModelQueryListParm.devType != null and csDevModelQueryListParm.devType != ''">
AND a.dev_type = #{csDevModelQueryListParm.devType}
</if>
</select>
</mapper>

View File

@@ -1,26 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <!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"> <mapper namespace="com.njcn.algorithm.mapper.CsEdDataMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsEdDataPO"> <resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsEdDataPO">
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table cs_ed_data--> <!--@Table cs_ed_data-->
<result column="id" jdbcType="VARCHAR" property="id" /> <result column="id" jdbcType="VARCHAR" property="id"/>
<result column="dev_type" jdbcType="VARCHAR" property="devType" /> <result column="dev_type" jdbcType="VARCHAR" property="devType"/>
<result column="version_no" jdbcType="VARCHAR" property="versionNo" /> <result column="version_no" jdbcType="VARCHAR" property="versionNo"/>
<result column="version_agree" jdbcType="VARCHAR" property="versionAgree" /> <result column="version_agreement" jdbcType="VARCHAR" property="versionAgreement"/>
<result column="version_date" jdbcType="TIMESTAMP" property="versionDate" /> <result column="version_date" jdbcType="TIMESTAMP" property="versionDate"/>
<result column="describe" jdbcType="VARCHAR" property="describe" /> <result column="describe" jdbcType="VARCHAR" property="describe"/>
<result column="version_type" jdbcType="VARCHAR" property="versionType" /> <result column="version_type" jdbcType="VARCHAR" property="versionType"/>
<result column="status" jdbcType="INTEGER" property="status" /> <result column="status" jdbcType="BOOLEAN" property="status"/>
<result column="file_path" jdbcType="VARCHAR" property="filePath" /> <result column="file_path" jdbcType="VARCHAR" property="filePath"/>
<result column="create_by" jdbcType="VARCHAR" property="createBy" /> <result column="create_by" jdbcType="VARCHAR" property="createBy"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_by" jdbcType="VARCHAR" property="updateBy" /> <result column="update_by" jdbcType="VARCHAR" property="updateBy"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, dev_type, version_no, version_agree, version_date, `describe`, version_type, id, dev_type, version_no, version_agreement, version_date, `describe`, version_type,
`status`, file_path, create_by, create_time, update_by, update_time `status`, file_path, create_by, create_time, update_by, update_time
</sql> </sql>
<select id="getPage" resultType="com.njcn.algorithm.pojo.vo.CsEdDataVO">
SELECT a.*,
b.code as devName
FROM cs_ed_data a
LEFT JOIN sys_dict_data b ON a.dev_type = b.id
WHERE
1 = 1
<if test="csEdDataQueryParm.versionStartDate != null and csEdDataQueryParm.versionStartDate != ''">
AND a.version_date &gt;= #{csEdDataQueryParm.versionStartDate }
</if>
<if test="csEdDataQueryParm.versionendDate != null and csEdDataQueryParm.versionendDate != ''">
AND a.version_date &lt;= #{csEdDataQueryParm.versionendDate }
</if>
<if test="csEdDataQueryParm.devName != null and csEdDataQueryParm.devName != ''">
AND b.CODE LIKE concat('%',#{csEdDataQueryParm.devName},'%')
</if>
<if test="csEdDataQueryParm.devType != null and csEdDataQueryParm.devType != ''">
AND a.dev_type = #{csEdDataQueryParm.devType}
</if>
</select>
</mapper> </mapper>

View File

@@ -0,0 +1,24 @@
<?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.CsEngineeringMapper">
<resultMap id="BaseResultMap" type="com.njcn.algorithm.pojo.po.CsEngineeringPO">
<!--@mbg.generated-->
<!--@Table cs_engineering-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="user_id" jdbcType="VARCHAR" property="userId" />
<result column="province" jdbcType="VARCHAR" property="province" />
<result column="city" jdbcType="VARCHAR" property="city" />
<result column="description" jdbcType="VARCHAR" property="description" />
<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, `name`, user_id, province, city, description, `status`, create_by, create_time,
update_by, update_time
</sql>
</mapper>

View File

@@ -0,0 +1,55 @@
package com.njcn.algorithm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.algorithm.pojo.param.*;
import com.njcn.algorithm.pojo.po.CsDevModelPO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface CsDevModelService extends IService<CsDevModelPO>{
/**
* @Description: addDevModel
* @Param: [csDevModelAddParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2023/4/10
*/
Boolean addDevModel(CsDevModelAddParm csDevModelAddParm);
/**
* @Description: AuditDevModel
* @Param: [csDevModelAuditParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2023/4/10
*/
Boolean AuditDevModel(CsDevModelAuditParm csDevModelAuditParm);
/**
* @Description: 设备模板
* @Param: [csDevModelQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.algorithm.pojo.vo.CsDevModelPageVO>
* @Author: clam
* @Date: 2023/4/10
*/
IPage<CsDevModelPageVO> queryPage(CsDevModelQueryParm csDevModelQueryParm);
/**
* @Description: queryList
* @Param: [projectEquipmentQueryParm]
* @return: java.util.List<com.njcn.algorithm.pojo.vo.CsDevModelPageVO>
* @Author: clam
* @Date: 2023/4/10
* @param projectEquipmentQueryParm
*/
List<CsDevModelPageVO> queryList(CsDevModelQueryListParm projectEquipmentQueryParm);
}

View File

@@ -1,9 +1,14 @@
package com.njcn.algorithm.service; package com.njcn.algorithm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.njcn.algorithm.pojo.param.CsEdDataAddParm;
import com.njcn.algorithm.pojo.param.CsEdDataAuditParm;
import com.njcn.algorithm.pojo.param.CsEdDataQueryParm;
import com.njcn.algorithm.pojo.po.CsEdDataPO; import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** import com.njcn.algorithm.pojo.vo.CsEdDataVO;
*
/**
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】 * Date: 2023/4/3 19:12【需求编号】
@@ -11,7 +16,31 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author clam * @author clam
* @version V1.0.0 * @version V1.0.0
*/ */
public interface CsEdDataService extends IService<CsEdDataPO>{ public interface CsEdDataService extends IService<CsEdDataPO> {
/**
* @Description: addEdData
* @Param: [csEdDataAddParm]
* @return: boolean
* @Author: clam
* @Date: 2023/4/7
*/
boolean addEdData(CsEdDataAddParm csEdDataAddParm);
/**
* @Description:
* @Param: [csEdDataAuditParm]
* @return: java.lang.Boolean
* @Author: clam
* @Date: 2023/4/7
*/
Boolean auditEdData(CsEdDataAuditParm csEdDataAuditParm);
/**
* @Description: queryEdDataPage
* @Param: [csEdDataQueryParm]
* @return: com.baomidou.mybatisplus.core.metadata.IPage<com.njcn.algorithm.pojo.vo.CsEdDataVO>
* @Author: clam
* @Date: 2023/4/7
*/
IPage<CsEdDataVO> queryEdDataPage(CsEdDataQueryParm csEdDataQueryParm);
} }

View File

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

View File

@@ -0,0 +1,62 @@
package com.njcn.algorithm.service.impl;
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.CsDevModelMapper;
import com.njcn.algorithm.pojo.param.*;
import com.njcn.algorithm.pojo.po.CsDevModelPO;
import com.njcn.algorithm.pojo.vo.CsDevModelPageVO;
import com.njcn.algorithm.service.CsDevModelService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/10 11:28【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CsDevModelServiceImpl extends ServiceImpl<CsDevModelMapper, CsDevModelPO> implements CsDevModelService{
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean addDevModel(CsDevModelAddParm csDevModelAddParm) {
CsDevModelPO csDevModelPO = new CsDevModelPO ();
BeanUtils.copyProperties (csDevModelAddParm, csDevModelPO);
csDevModelPO.setStatus ("1");
boolean save = this.save (csDevModelPO);
return save;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean AuditDevModel(CsDevModelAuditParm csDevModelAuditParm) {
CsDevModelPO csDevModelPO = new CsDevModelPO ();
BeanUtils.copyProperties (csDevModelAuditParm, csDevModelPO);
boolean b = this.updateById (csDevModelPO);
return b;
}
@Override
public IPage<CsDevModelPageVO> queryPage(CsDevModelQueryParm csDevModelQueryParm) {
Page<CsDevModelPageVO> returnpage = new Page<> (csDevModelQueryParm.getCurrentPage ( ), csDevModelQueryParm.getPageSize ( ));
returnpage = this.getBaseMapper ().getPage(returnpage,csDevModelQueryParm);
return returnpage;
}
@Override
public List<CsDevModelPageVO> queryList(CsDevModelQueryListParm csDevModelQueryListParm) {
List<CsDevModelPageVO> list = this.getBaseMapper ().queryList(csDevModelQueryListParm);
return list;
}
}

View File

@@ -1,12 +1,25 @@
package com.njcn.algorithm.service.impl; package com.njcn.algorithm.service.impl;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.mapper.CsEdDataMapper; import com.njcn.algorithm.mapper.CsEdDataMapper;
import com.njcn.algorithm.pojo.param.CsEdDataAddParm;
import com.njcn.algorithm.pojo.param.CsEdDataAuditParm;
import com.njcn.algorithm.pojo.param.CsEdDataQueryParm;
import com.njcn.algorithm.pojo.po.CsEdDataPO; import com.njcn.algorithm.pojo.po.CsEdDataPO;
import com.njcn.algorithm.pojo.vo.CsEdDataVO;
import com.njcn.algorithm.service.CsEdDataService; import com.njcn.algorithm.service.CsEdDataService;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;
/** /**
*
* Description: * Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html * 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/3 19:12【需求编号】 * Date: 2023/4/3 19:12【需求编号】
@@ -15,6 +28,42 @@ import org.springframework.stereotype.Service;
* @version V1.0.0 * @version V1.0.0
*/ */
@Service @Service
public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO> implements CsEdDataService{ @RequiredArgsConstructor
public class CsEdDataServiceImpl extends ServiceImpl<CsEdDataMapper, CsEdDataPO> implements CsEdDataService {
private final FileStorageUtil fileStorageUtil;
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean addEdData(CsEdDataAddParm csEdDataAddParm) {
CsEdDataPO csEdDataPO = new CsEdDataPO ();
BeanUtils.copyProperties (csEdDataAddParm, csEdDataPO);
String filePath = fileStorageUtil.uploadMultipart (csEdDataAddParm.getFile (), OssPath.EDDATA);
csEdDataPO.setFilePath (filePath);
csEdDataPO.setStatus ("1");
boolean save = this.save (csEdDataPO);
return save;
}
@Override
public Boolean auditEdData(CsEdDataAuditParm csEdDataAuditParm) {
CsEdDataPO csEdDataPO = new CsEdDataPO ();
BeanUtils.copyProperties (csEdDataAuditParm, csEdDataPO);
if(!Objects.isNull (csEdDataAuditParm.getFile ())){
String filePath = fileStorageUtil.uploadMultipart (csEdDataAuditParm.getFile (), OssPath.EDDATA);
csEdDataPO.setFilePath (filePath);
}
boolean b = this.updateById (csEdDataPO);
return b;
}
@Override
public IPage<CsEdDataVO> queryEdDataPage(CsEdDataQueryParm csEdDataQueryParm) {
Page<CsEdDataVO> returnpage = new Page<> (csEdDataQueryParm.getCurrentPage ( ), csEdDataQueryParm.getPageSize ( ));
returnpage = this.getBaseMapper ().getPage(returnpage,csEdDataQueryParm);
return returnpage;
}
} }

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.CsEngineeringMapper;
import com.njcn.algorithm.pojo.po.CsEngineeringPO;
import com.njcn.algorithm.service.CsEngineeringService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/4/7 11:04【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class CsEngineeringServiceImpl extends ServiceImpl<CsEngineeringMapper, CsEngineeringPO> implements CsEngineeringService{
}

View File

@@ -5,17 +5,20 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.algorithm.enums.AlgorithmResponseEnum;
import com.njcn.algorithm.mapper.CsEquipmentDeliveryMapper; import com.njcn.algorithm.mapper.CsEquipmentDeliveryMapper;
import com.njcn.algorithm.pojo.param.CsEquipmentDeliveryAddParm; import com.njcn.algorithm.pojo.param.CsEquipmentDeliveryAddParm;
import com.njcn.algorithm.pojo.param.ProjectEquipmentQueryParm; import com.njcn.algorithm.pojo.param.ProjectEquipmentQueryParm;
import com.njcn.algorithm.pojo.po.CsEquipmentDeliveryPO; import com.njcn.algorithm.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.algorithm.pojo.vo.AppProjectVO;
import com.njcn.algorithm.pojo.vo.CsEquipmentDeliveryVO; import com.njcn.algorithm.pojo.vo.CsEquipmentDeliveryVO;
import com.njcn.algorithm.pojo.vo.ProjectEquipmentVO; import com.njcn.algorithm.pojo.vo.ProjectEquipmentVO;
import com.njcn.algorithm.service.CsEquipmentDeliveryService; import com.njcn.algorithm.service.CsEquipmentDeliveryService;
import com.njcn.common.pojo.exception.BusinessException;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Objects;
/** /**
* *
* Description: * Description:
@@ -30,6 +33,10 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
@Override @Override
public Boolean save(CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm) { public Boolean save(CsEquipmentDeliveryAddParm csEquipmentDeliveryAddParm) {
CsEquipmentDeliveryPO po = this.queryEquipmentPOByndid (csEquipmentDeliveryAddParm.getNdid ( ));
if(!Objects.isNull (po)){
throw new BusinessException (AlgorithmResponseEnum.NDID_ERROR);
}
CsEquipmentDeliveryPO csEquipmentDeliveryPO = new CsEquipmentDeliveryPO(); CsEquipmentDeliveryPO csEquipmentDeliveryPO = new CsEquipmentDeliveryPO();
BeanUtils.copyProperties (csEquipmentDeliveryAddParm,csEquipmentDeliveryPO); BeanUtils.copyProperties (csEquipmentDeliveryAddParm,csEquipmentDeliveryPO);
@@ -50,14 +57,21 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
@Override @Override
public CsEquipmentDeliveryVO queryEquipmentByndid(String ndid) { public CsEquipmentDeliveryVO queryEquipmentByndid(String ndid) {
CsEquipmentDeliveryVO result = new CsEquipmentDeliveryVO(); CsEquipmentDeliveryVO result = new CsEquipmentDeliveryVO();
QueryWrapper<CsEquipmentDeliveryPO> wrapper = new QueryWrapper(); CsEquipmentDeliveryPO csEquipmentDeliveryPO = queryEquipmentPOByndid (ndid);
wrapper.eq ("ndid", ndid); if(Objects.isNull (csEquipmentDeliveryPO)){
CsEquipmentDeliveryPO csEquipmentDeliveryPO = this.baseMapper.selectOne (wrapper); return result;
}
BeanUtils.copyProperties (csEquipmentDeliveryPO,result); BeanUtils.copyProperties (csEquipmentDeliveryPO,result);
return result; return result;
} }
public CsEquipmentDeliveryPO queryEquipmentPOByndid(String ndid) {
QueryWrapper<CsEquipmentDeliveryPO> wrapper = new QueryWrapper();
wrapper.eq ("ndid", ndid);
CsEquipmentDeliveryPO csEquipmentDeliveryPO = this.baseMapper.selectOne (wrapper);
return csEquipmentDeliveryPO;
}
@Override @Override
public IPage<ProjectEquipmentVO> queryEquipmentByProject(ProjectEquipmentQueryParm projectEquipmentQueryParm) { public IPage<ProjectEquipmentVO> queryEquipmentByProject(ProjectEquipmentQueryParm projectEquipmentQueryParm) {
Page<ProjectEquipmentVO> returnpage = new Page<> (projectEquipmentQueryParm.getCurrentPage ( ), projectEquipmentQueryParm.getPageSize ( )); Page<ProjectEquipmentVO> returnpage = new Page<> (projectEquipmentQueryParm.getCurrentPage ( ), projectEquipmentQueryParm.getPageSize ( ));
@@ -65,4 +79,5 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
Page<ProjectEquipmentVO> list = this.baseMapper.queryProjectEquipmentVO(returnpage,projectEquipmentQueryParm); Page<ProjectEquipmentVO> list = this.baseMapper.queryProjectEquipmentVO(returnpage,projectEquipmentQueryParm);
return list; return list;
} }
} }

View File

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -50,20 +51,24 @@ public class CsFeedbackServiceImpl extends ServiceImpl<CsFeedbackMapper, CsFeedb
BeanUtils.copyProperties (csFeedbackAddParm, csFeedbackPO); BeanUtils.copyProperties (csFeedbackAddParm, csFeedbackPO);
csFeedbackPO.setStatus ("1"); csFeedbackPO.setStatus ("1");
boolean save = this.save (csFeedbackPO); boolean save = this.save (csFeedbackPO);
List<CsFilePathPO> csFilePathPOS= new ArrayList<> (); boolean flag= true;
for (int i = 0; i < csFeedbackAddParm.getFiles ( ).length; i++) { if(Objects.isNull (csFeedbackAddParm.getFiles ( ))){
List<CsFilePathPO> csFilePathPOS= new ArrayList<> ();
for (int i = 0; i < csFeedbackAddParm.getFiles ( ).length; i++) {
CsFilePathPO csFilePathPO = new CsFilePathPO ( ); CsFilePathPO csFilePathPO = new CsFilePathPO ( );
csFilePathPO.setId (csFeedbackPO.getId ()); csFilePathPO.setId (csFeedbackPO.getId ());
String filePath = fileStorageUtil.uploadMultipart (csFeedbackAddParm.getFiles ( )[i], OssPath.FEEDBACK); String filePath = fileStorageUtil.uploadMultipart (csFeedbackAddParm.getFiles ( )[i], OssPath.FEEDBACK);
csFilePathPO.setFileName (csFeedbackAddParm.getFiles ( )[i].getOriginalFilename ( )); csFilePathPO.setFileName (csFeedbackAddParm.getFiles ( )[i].getOriginalFilename ( ));
csFilePathPO.setFilePath (filePath); csFilePathPO.setFilePath (filePath);
csFilePathPO.setStatus ("1"); csFilePathPO.setStatus ("1");
csFilePathPOS.add (csFilePathPO); csFilePathPOS.add (csFilePathPO);
}
flag = csFilePathService.saveBatch (csFilePathPOS);
} }
boolean b = csFilePathService.saveBatch (csFilePathPOS);
return save&&b;
return save&&flag;
} }
@Override @Override
@@ -101,7 +106,9 @@ public class CsFeedbackServiceImpl extends ServiceImpl<CsFeedbackMapper, CsFeedb
QueryWrapper<CsFilePathPO> queryWrapper = new QueryWrapper(); QueryWrapper<CsFilePathPO> queryWrapper = new QueryWrapper();
queryWrapper.eq ("id", id).eq ("status", "1"); queryWrapper.eq ("id", id).eq ("status", "1");
List<CsFilePathPO> list = csFilePathService.list (queryWrapper); List<CsFilePathPO> list = csFilePathService.list (queryWrapper);
List<String> collect = list.stream ( ).map (CsFilePathPO::getFilePath).collect (Collectors.toList ( )); List<String> collect = list.stream ( ).map (temp->{
return fileStorageUtil.getFileUrl (temp.getFilePath ());
}).collect (Collectors.toList ( ));
csFeedbackDetailVO.setImageUrls (collect); csFeedbackDetailVO.setImageUrls (collect);
QueryWrapper<CsFeedbackChatPO> csFeedbackChatPOQueryWrapper = new QueryWrapper(); QueryWrapper<CsFeedbackChatPO> csFeedbackChatPOQueryWrapper = new QueryWrapper();
csFeedbackChatPOQueryWrapper.eq ("id", id).eq ("status", "1").orderByAsc ("create_time"); csFeedbackChatPOQueryWrapper.eq ("id", id).eq ("status", "1").orderByAsc ("create_time");

View File

@@ -21,6 +21,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -25,6 +25,7 @@ public interface ServerInfo {
String QUALITY = "quality-boot"; String QUALITY = "quality-boot";
String PROCESS = "process-boot"; String PROCESS = "process-boot";
String PREPARE_BOOT = "prepare-boot"; String PREPARE_BOOT = "prepare-boot";
String ALGORITHM_BOOT = "algorithm-boot";
} }

View File

@@ -57,4 +57,14 @@ public interface OssPath {
* app反馈图片 * app反馈图片
*/ */
String FEEDBACK = "feedBack/"; String FEEDBACK = "feedBack/";
/***
* app版本升级文件
*/
String EDDATA = "edData/";
/***
* 装置模板
*/
String DEV_MODEL = "algorithm/devModel/";
} }

View File

@@ -43,6 +43,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -26,5 +26,9 @@
<groupId>com.github.jeffreyning</groupId> <groupId>com.github.jeffreyning</groupId>
<artifactId>mybatisplus-plus</artifactId> <artifactId>mybatisplus-plus</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.github.jeffreyning</groupId>
<artifactId>mybatisplus-plus</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -72,4 +72,6 @@ public class RunManageParam extends BaseParam implements Serializable {
@ApiModelProperty(name = "runFlag", value = "终端状态") @ApiModelProperty(name = "runFlag", value = "终端状态")
private List<Integer> runFlag; private List<Integer> runFlag;
@ApiModelProperty(name = "searchValue", value = "篩選數據")
private String searchValue;
} }

View File

@@ -42,7 +42,6 @@ public class RunTimeVO implements Serializable {
@ApiModelProperty(name = "loginTime",value = "投运时间") @ApiModelProperty(name = "loginTime",value = "投运时间")
private String loginTime; private String loginTime;
@ApiModelProperty(name = "devType",value = "终端型号") @ApiModelProperty(name = "devType",value = "终端型号")
private String devType; private String devType;

View File

@@ -0,0 +1,36 @@
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/10
*/
@Data
public class UserScaleVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 月份
*/
@ApiModelProperty("月份")
private String timeId;
/**
* 累计增量
*/
@ApiModelProperty("累计增量")
private Integer incrementNum;
/**
* 当月增量
*/
@ApiModelProperty("当月增量")
private Integer monthIncrementNum;
}

View File

@@ -42,6 +42,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -3,6 +3,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.po.Device; import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO;
import com.njcn.device.pq.pojo.vo.RunManageVO; import com.njcn.device.pq.pojo.vo.RunManageVO;
import com.njcn.device.pq.pojo.vo.RunTimeVO; import com.njcn.device.pq.pojo.vo.RunTimeVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -36,24 +37,30 @@ public interface DeviceMapper extends BaseMapper<Device> {
* 获取监测点台账信息 * 获取监测点台账信息
* @param list 监测点集合 * @param list 监测点集合
* @param comFlag 状态 * @param comFlag 状态
* @param runFlag 状态 * @param searchValue
* @return 结果 * @return 结果
*/ */
List<RunManageVO> getRunManageList(@Param("list") List<String> list, @Param("comFlag")List<Integer> comFlag, @Param("runFlag")List<Integer> runFlag); List<RunManageVO> getRunManageList(@Param("list") List<String> list,
@Param("comFlag") List<Integer> comFlag,
@Param("searchValue") String searchValue);
/** /**
* 获取监测点台账信息 * 获取监测点台账信息
* @param list 终端集合 * @param list 终端集合
* @param comFlag 状态 * @param comFlag 状态
* @param runFlag 状态 * @param runFlag 状态
* @param manufacturer
* @param searchValue
* @return 结果 * @return 结果
*/ */
List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list, @Param("comFlag")List<Integer> comFlag, @Param("runFlag")List<Integer> runFlag); List<RunTimeVO> getRunManageDevList(@Param("list") List<String> list,
@Param("comFlag") List<Integer> comFlag,
@Param("runFlag") List<Integer> runFlag,
@Param("manufacturers") List<String> manufacturer,
@Param("searchValue") String searchValue);
/**
* 获取指定等级的装置 List<LineInfluxDbOnlineVO> getOnlineEvaluate(@Param("list") List<String> devIndexes,
* @author cdf @Param("begin") String searchBeginTime,
* @date 2023/2/10 @Param("end") String searchEndTime);
*/
List<String> getDevByGrade(@Param("devId")List<String> devIds,@Param("lineGrade") String lineGrade);
} }

View File

@@ -18,72 +18,71 @@
<select id="getRunManageList" resultType="com.njcn.device.pq.pojo.vo.RunManageVO"> <select id="getRunManageList" resultType="com.njcn.device.pq.pojo.vo.RunManageVO">
SELECT SELECT
linedetail.Num AS id, linedetail.Num AS id,
line.NAME AS lineName, line.NAME AS lineName,
area.NAME AS areaName, area.NAME AS areaName,
gd.NAME AS gdName, gd.NAME AS gdName,
sub.NAME AS bdName, sub.NAME AS bdName,
scaleId.Name as scale, scaleId.Name as scale,
manufacturerId.name as manufacturer, manufacturerId.name as manufacturer,
dev.name as devName, dev.name as devName,
device.IP as ip, device.IP as ip,
case device.Run_Flag when 0 then "投运" case device.Run_Flag when 0 then "投运"
when 1 then "热备用" when 1 then "热备用"
when 2 then "停运" when 2 then "停运"
end as runFlag, end as runFlag,
case device.Com_Flag when 0 then "中断" case device.Com_Flag when 0 then "中断"
when 1 then "正常" when 1 then "正常"
end as comFlag, end as comFlag,
loadtypeId.Name as loadType, loadtypeId.Name as loadType,
businesstypeId.name as businessType, businesstypeId.name as businessType,
IFNULL(linedetail.Obj_Name,"/") as objName, IFNULL(linedetail.Obj_Name,"/") as objName,
case linedetail.PT_Type when 0 then "星型接线" case linedetail.PT_Type when 0 then "星型接线"
when 1 then "三角型接线" when 1 then "三角型接线"
when 2 then "开口三角型接线" when 2 then "开口三角型接线"
end as ptType, end as ptType,
CONCAT(linedetail.PT1,"/", linedetail.PT2) as pt, CONCAT(linedetail.PT1,"/", linedetail.PT2) as pt,
CONCAT(linedetail.CT1,"/", linedetail.CT2) as ct, CONCAT(linedetail.CT1,"/", linedetail.CT2) as ct,
linedetail.Standard_Capacity as standardCapacity, linedetail.Standard_Capacity as standardCapacity,
linedetail.Short_Capacity as shortCapacity, linedetail.Short_Capacity as shortCapacity,
linedetail.Dev_Capacity as devCapacity, linedetail.Dev_Capacity as devCapacity,
linedetail.Deal_Capacity as dealCapacity, linedetail.Deal_Capacity as dealCapacity,
over.Freq_Dev as freqDev, over.Freq_Dev as freqDev,
over.Voltage_Dev as voltageDev, over.Voltage_Dev as voltageDev,
over.Uvoltage_Dev as uvoltageDev, over.Uvoltage_Dev as uvoltageDev,
over.Ubalance as ubalance, over.Ubalance as ubalance,
over.I_Neg as iNeg, over.I_Neg as iNeg,
over.Flicker as flicker, over.Flicker as flicker,
over.Uaberrance as uaberrance, over.Uaberrance as uaberrance,
over.Uharm_3 as oddHarm, over.Uharm_3 as oddHarm,
over.Uharm_2 as evenHarm, over.Uharm_2 as evenHarm,
over.Iharm_2 as iharm2, over.Iharm_2 as iharm2,
over.Iharm_3 as iharm3, over.Iharm_3 as iharm3,
over.Iharm_4 as iharm4, over.Iharm_4 as iharm4,
over.Iharm_5 as iharm5, over.Iharm_5 as iharm5,
over.Iharm_6 as iharm6, over.Iharm_6 as iharm6,
over.Iharm_7 as iharm7, over.Iharm_7 as iharm7,
over.Iharm_8 as iharm8, over.Iharm_8 as iharm8,
over.Iharm_9 as iharm9, over.Iharm_9 as iharm9,
over.Iharm_10 as iharm10, over.Iharm_10 as iharm10,
over.Iharm_11 as iharm11, over.Iharm_11 as iharm11,
over.Iharm_12 as iharm12, over.Iharm_12 as iharm12,
over.Iharm_13 as iharm13, over.Iharm_13 as iharm13,
over.Iharm_14 as iharm14, over.Iharm_14 as iharm14,
over.Iharm_15 as iharm15, over.Iharm_15 as iharm15,
over.Iharm_16 as iharm16, over.Iharm_16 as iharm16,
over.Iharm_17 as iharm17, over.Iharm_17 as iharm17,
over.Iharm_18 as iharm18, over.Iharm_18 as iharm18,
over.Iharm_19 as iharm19, over.Iharm_19 as iharm19,
over.Iharm_20 as iharm20, over.Iharm_20 as iharm20,
over.Iharm_21 as iharm21, over.Iharm_21 as iharm21,
over.Iharm_22 as iharm22, over.Iharm_22 as iharm22,
over.Iharm_23 as iharm23, over.Iharm_23 as iharm23,
over.Iharm_24 as iharm24, over.Iharm_24 as iharm24,
over.Iharm_25 as iharm25, over.Iharm_25 as iharm25,
over.InUharm_1 as inUharm, over.InUharm_1 as inUharm,
over.InUharm_16 as inUharm16 over.InUharm_16 as inUharm16
FROM FROM pq_line line
pq_line line
INNER JOIN pq_line vol ON vol.Id = line.Pid INNER JOIN pq_line vol ON vol.Id = line.Pid
INNER JOIN pq_line dev ON dev.Id = vol.Pid INNER JOIN pq_line dev ON dev.Id = vol.Pid
INNER JOIN pq_line sub ON sub.Id = dev.Pid INNER JOIN pq_line sub ON sub.Id = dev.Pid
@@ -102,20 +101,19 @@
<foreach item="item" collection="list" open="(" separator="," close=")"> <foreach item="item" collection="list" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
<if test="runFlag == '' and type !=null"> <if test="comFlag.size()!=0">
and device.Run_Flag in
<foreach item="item1" collection="runFlag" open="(" separator="," close=")">
#{item1}
</foreach>
</if>
<if test="comFlag == '' and type !=null">
and device.Com_Flag in and device.Com_Flag in
<foreach item="item2" collection="comFlag" open="(" separator="," close=")"> <foreach item="item2" collection="comFlag" open="(" separator="," close=")">
#{item2} #{item2}
</foreach> </foreach>
</if> </if>
ORDER BY <if test="searchValue != '' and searchValue != null ">
areaId.NAME <bind name="searchValueLike" value="'%'+searchValue+'%'"/>
AND sub.NAME LIKE #{searchValueLike}
OR dev.name LIKE #{searchValueLike}
OR line.NAME LIKE #{searchValueLike}
</if>
ORDER BY areaId.NAME
</select> </select>
<select id="getRunManageDevList" resultType="com.njcn.device.pq.pojo.vo.RunTimeVO"> <select id="getRunManageDevList" resultType="com.njcn.device.pq.pojo.vo.RunTimeVO">
@@ -160,19 +158,46 @@
<foreach item="item" collection="list" open="(" separator="," close=")"> <foreach item="item" collection="list" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
<if test="runFlag == '' and runFlag !=null"> <if test="runFlag.size()!=0">
and device.Run_Flag in and device.Run_Flag in
<foreach item="item1" collection="runFlag" open="(" separator="," close=")"> <foreach item="item1" collection="runFlag" separator="," open="(" close=")">
#{item1} #{item1}
</foreach> </foreach>
</if> </if>
<if test="comFlag == '' and comFlag !=null"> <if test="comFlag.size()!=0">
and device.Com_Flag in and device.Com_Flag in
<foreach item="item2" collection="comFlag" open="(" separator="," close=")"> <foreach item="item2" collection="comFlag" separator="," open="(" close=")">
#{item2} #{item2}
</foreach> </foreach>
</if> </if>
<if test="manufacturers.size()!=0">
and device.Manufacturer in
<foreach collection="manufacturers" item="item3" separator="," open="(" close=")">
#{item3}
</foreach>
</if>
<if test="searchValue != '' and searchValue != null ">
<bind name="searchValueLike" value="'%'+searchValue+'%'"/>
AND sub.NAME LIKE #{searchValueLike}
OR dev.NAME LIKE #{searchValueLike}
OR devT.Name LIKE #{searchValueLike}
OR device.IP LIKE #{searchValueLike}
</if>
ORDER BY ORDER BY
areaId.NAME areaId.NAME
</select> </select>
<select id="getOnlineEvaluate" resultType="com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO">
SELECT
SUM(r.online_min) / (SUM(r.online_min)+SUM(r.offline_min)) AS onlineRate,
r.dev_index AS devIndex
FROM r_stat_onlinerate_d r
WHERE time_id BETWEEN #{begin} AND #{end}
<if test="list.size > 0">
AND r.dev_index IN
<foreach collection="list" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
GROUP BY r.dev_index
</select>
</mapper> </mapper>

View File

@@ -68,8 +68,6 @@ public class RunManageServiceImpl implements RunManageService {
private final LineDetailMapper lineDetailMapper; private final LineDetailMapper lineDetailMapper;
private final InfluxDbUtils influxDbUtils;
@Override @Override
public List<RunManageVO> getLineLedger(RunManageParam runManageParam) { public List<RunManageVO> getLineLedger(RunManageParam runManageParam) {
DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); DeviceInfoParam deviceInfoParam = new DeviceInfoParam();
@@ -77,8 +75,8 @@ public class RunManageServiceImpl implements RunManageService {
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList())); List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, runManageParam.getRunFlag(), Stream.of(1).collect(Collectors.toList()));
List<String> lineIndexes = generalDeviceDTOList.stream().flatMap(list->list.getLineIndexes().stream()).collect(Collectors.toList()); List<String> lineIndexes = generalDeviceDTOList.stream().flatMap(list->list.getLineIndexes().stream()).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(lineIndexes)) { if (!CollectionUtils.isEmpty(lineIndexes)) {
return deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag()); return deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(),runManageParam.getSearchValue());
}else { } else {
throw new BusinessException(CommonResponseEnum.FAIL); throw new BusinessException(CommonResponseEnum.FAIL);
} }
} }
@@ -93,19 +91,22 @@ public class RunManageServiceImpl implements RunManageService {
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) { if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList()); List<String> devIndexes = generalDeviceDTOList.stream().flatMap(list->list.getDeviceIndexes().stream()).collect(Collectors.toList());
DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); DateFormat bf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
runManageParam.setSearchBeginTime(DateUtil.beginOfMonth(new Date()).toString(bf)); runManageParam.setSearchBeginTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchBeginTime()))));
runManageParam.setSearchEndTime(DateUtil.endOfMonth(new Date()).toString(bf)); runManageParam.setSearchEndTime(bf.format(DateUtil.beginOfDay(DateUtil.parse(runManageParam.getSearchEndTime()))));
List<String> manuList = runManageParam.getManufacturer().stream().map(SimpleDTO::getId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(devIndexes)){ if(CollectionUtil.isNotEmpty(devIndexes)){
runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag()); runManageDevList = deviceMapper.getRunManageDevList(devIndexes, runManageParam.getComFlag(), runManageParam.getRunFlag(),manuList,runManageParam.getSearchValue());
StringBuilder devSql = InfluxDBCommUtils.assToInfluxParamDev(devIndexes); List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = deviceMapper.getOnlineEvaluate(devIndexes,runManageParam.getSearchBeginTime(),runManageParam.getSearchEndTime());
String stringBuilder = "time >= '" + runManageParam.getSearchBeginTime() + "' and " + "time <= '" + runManageParam.getSearchEndTime()+"' and "+devSql+" group by dev_id";
//sql语句
String sql = "SELECT MEAN(online_rate) AS online_rate FROM " + PQS_ONLINERATE + " WHERE " + stringBuilder + TIME_ZONE;
QueryResult queryResult = influxDbUtils.query(sql);
InfluxDBResultMapper inCn = new InfluxDBResultMapper(); // StringBuilder devSql = InfluxDBCommUtils.assToInfluxParamDev(devIndexes);
List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = inCn.toPOJO(queryResult,LineInfluxDbOnlineVO.class); // String stringBuilder = "time >= '" + runManageParam.getSearchBeginTime() + "' and " + "time <= '" + runManageParam.getSearchEndTime()+"' and "+devSql+" group by dev_id";
// //sql语句
// String sql = "SELECT MEAN(online_rate) AS online_rate FROM " + PQS_ONLINERATE + " WHERE " + stringBuilder + TIME_ZONE;
// QueryResult queryResult = influxDbUtils.query(sql);
//
// InfluxDBResultMapper inCn = new InfluxDBResultMapper();
// List<LineInfluxDbOnlineVO> lineInfluxDbOnlineVOList = inCn.toPOJO(queryResult,LineInfluxDbOnlineVO.class);
runManageDevList = runManageDevList.stream().peek(item-> lineInfluxDbOnlineVOList.stream().filter(it-> Objects.equals(item.getId(),it.getDevIndex())).findFirst().ifPresent(i->item.setOnlineEvaluate(i.getOnlineRate()))).collect(Collectors.toList()); runManageDevList = runManageDevList.stream().peek(item-> lineInfluxDbOnlineVOList.stream().filter(it-> Objects.equals(item.getId(),it.getDevIndex())).findFirst().ifPresent(i->item.setOnlineEvaluate(i.getOnlineRate()))).collect(Collectors.toList());
} }
} }

View File

@@ -42,6 +42,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -21,6 +21,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -27,6 +27,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -33,6 +33,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -56,6 +56,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -28,6 +28,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -30,6 +30,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -38,6 +38,16 @@
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>
<artifactId>common-web</artifactId> <artifactId>common-web</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.njcn</groupId> <groupId>com.njcn</groupId>

View File

@@ -0,0 +1,52 @@
package com.njcn.user.controller;
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.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.HomeostasisAreaVO;
import com.njcn.device.pq.pojo.vo.UserScaleVO;
import com.njcn.user.service.LargeScreenService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
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;
import java.util.List;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/04/10
*/
@Slf4j
@Api(tags = "大屏")
@RestController
@RequestMapping("/largeScreen")
@RequiredArgsConstructor
public class LargeScreenController extends BaseController {
private final LargeScreenService largeScreenService;
/**
* 灿能云用户规模
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getUserScale")
@ApiOperation("灿能云用户规模")
@ApiImplicitParam(name = "largeScreenParam", value = "灿能云用户规模", required = true)
public HttpResult<List<UserScaleVO>> getUserScale(@RequestBody @Validated LargeScreenParam largeScreenParam) {
String methodDescribe = getMethodDescribe("getUserScale");
List<UserScaleVO> result = largeScreenService.getUserScale(largeScreenParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,18 @@
package com.njcn.user.mapper;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.UserScaleVO;
import java.util.List;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/04/10
*/
public interface LargeScreenMapper {
List<UserScaleVO> getUserScale (LargeScreenParam largeScreenParam);
}

View File

@@ -0,0 +1,18 @@
<?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.user.mapper.LargeScreenMapper">
<select id="getUserScale" resultType="com.njcn.device.pq.pojo.vo.UserScaleVO">
SELECT DATE_FORMAT(REGISTER_TIME, '%Y-%m') AS `timeId`, COUNT(*) AS `monthIncrementNum`
FROM app_user
where STATE = '1'
<if test="searchBeginTime != null and searchBeginTime != ''">
and date_format(REGISTER_TIME,'%y%m%d') &gt;= date_format(#{searchBeginTime},'%y%m%d')
</if>
<if test="searchEndTime != null and searchEndTime != ''">
and date_format(REGISTER_TIME,'%y%m%d') &lt;= date_format(#{searchEndTime},'%y%m%d')
</if>
GROUP BY `timeId`;
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
package com.njcn.user.service;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.UserScaleVO;
import java.util.List;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/04/10
*/
public interface LargeScreenService {
List<UserScaleVO> getUserScale(LargeScreenParam largeScreenParam);
}

View File

@@ -0,0 +1,106 @@
package com.njcn.user.service.impl;
import com.njcn.device.pq.pojo.param.LargeScreenParam;
import com.njcn.device.pq.pojo.vo.HomeostasisAreaVO;
import com.njcn.device.pq.pojo.vo.UserScaleVO;
import com.njcn.user.mapper.LargeScreenMapper;
import com.njcn.user.service.LargeScreenService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.Year;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @version 1.0.0
* @author: zbj
* @date: 2023/04/10
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class LargeScreenServiceImpl implements LargeScreenService {
private final LargeScreenMapper largeScreenMapper;
/**
* 灿能云用户规模
*/
@Override
public List<UserScaleVO> getUserScale(LargeScreenParam largeScreenParam) {
//创建返回VO
List<UserScaleVO> result = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//获取当前年第一天日期
Year year = Year.now();
String firstDay = year.atDay(1).format(formatter);
//获取当前天字符串日期
LocalDate today = LocalDate.now();
String endDay = today.format(formatter);
//替换属性
largeScreenParam.setSearchBeginTime(firstDay);
largeScreenParam.setSearchEndTime(endDay);
List<UserScaleVO> list = largeScreenMapper.getUserScale(largeScreenParam);
//获取传入起始月结束月中所有月份
List<String> monthList = selectDate(largeScreenParam.getSearchBeginTime(),
largeScreenParam.getSearchEndTime());
for (String s : monthList) {
UserScaleVO vo = new UserScaleVO();
vo.setTimeId(s);
result.add(vo);
}
//集合不为空
if (list.size()>0){
for (UserScaleVO userScaleVO : result) {
for (UserScaleVO scaleVO : list) {
if (Objects.equals(scaleVO.getTimeId(),userScaleVO.getTimeId())){
userScaleVO.setMonthIncrementNum(scaleVO.getMonthIncrementNum());
}
}
}
for (UserScaleVO vo : result) {
if (vo.getMonthIncrementNum()==null){
vo.setMonthIncrementNum(0);
}
}
int count = 0;
for (int i = 0; i < result.size(); i++) {
count = count + result.get(i).getMonthIncrementNum();
result.get(i).setIncrementNum(count);
}
return result;
}else{
return result;
}
}
/**
* 获取传入起始月结束月中所有月份
* @param startDate
* @param endDate
* @return
*/
public List<String> selectDate(String startDate, String endDate) {
LocalDate start = LocalDate.parse(startDate, DateTimeFormatter.ISO_LOCAL_DATE);
LocalDate end = LocalDate.parse(endDate, DateTimeFormatter.ISO_LOCAL_DATE);
List<String> allMonths = new ArrayList<>();
YearMonth current = YearMonth.from(start);
while (!current.isAfter(YearMonth.from(end))) {
allMonths.add(current.format(DateTimeFormatter.ofPattern("yyyy-MM")));
current = current.plusMonths(1);
}
return allMonths;
}
}