.idea/uiDesigner.xml
New file @@ -0,0 +1,124 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="Palette2"> <group name="Swing"> <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> </item> <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> </item> <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> </item> <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true"> <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> </item> <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> <initial-values> <property name="text" value="Button" /> </initial-values> </item> <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> <initial-values> <property name="text" value="RadioButton" /> </initial-values> </item> <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> <initial-values> <property name="text" value="CheckBox" /> </initial-values> </item> <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> <initial-values> <property name="text" value="Label" /> </initial-values> </item> <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> <preferred-size width="150" height="-1" /> </default-constraints> </item> <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> <preferred-size width="150" height="-1" /> </default-constraints> </item> <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> <preferred-size width="150" height="-1" /> </default-constraints> </item> <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> <preferred-size width="150" height="50" /> </default-constraints> </item> <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> <preferred-size width="150" height="50" /> </default-constraints> </item> <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> <preferred-size width="150" height="50" /> </default-constraints> </item> <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> </item> <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> <preferred-size width="150" height="50" /> </default-constraints> </item> <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> <preferred-size width="150" height="50" /> </default-constraints> </item> <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> <preferred-size width="150" height="50" /> </default-constraints> </item> <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> <preferred-size width="200" height="200" /> </default-constraints> </item> <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> <preferred-size width="200" height="200" /> </default-constraints> </item> <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> </item> <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> </item> <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> </item> <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> </item> <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> <preferred-size width="-1" height="20" /> </default-constraints> </item> <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false"> <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> </item> <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> </item> </group> </component> </project> .idea/vcs.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="$PROJECT_DIR$" vcs="Git" /> </component> </project> pom.xml
@@ -16,6 +16,7 @@ <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> @@ -103,6 +104,17 @@ <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.0.3</version> </dependency> <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> <version>1.3.70</version> </dependency> <!--pageHelper分页--> <dependency> src/main/java/com/whyc/config/MinIoConfig.java
New file @@ -0,0 +1,38 @@ package com.whyc.config; import io.minio.MinioClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author 陳樂 * @version 1.0.0 * @ClassName MinIoConfig.java * @Description TODO * @createTime 2022年03月12日 14:01:00 */ @Configuration public class MinIoConfig { @Value("${minio.endpoint}") private String endpoint; @Value("${minio.accessKey}") private String accessKey; @Value("${minio.secretKey}") private String secretKey; /** * 注入minio 客户端 * * @return */ @Bean public MinioClient minioClient() { return MinioClient.builder() .endpoint(endpoint) .credentials(accessKey, secretKey) .build(); } } src/main/java/com/whyc/controller/LoginController.java
@@ -2,7 +2,7 @@ import com.whyc.dto.Response; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import com.whyc.service.UserInfService; import com.whyc.util.UserUtil; import io.swagger.annotations.Api; src/main/java/com/whyc/controller/OperationLogController.java
@@ -1,7 +1,7 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.OperationLog; import com.whyc.pojo.db_user.OperationLog; import com.whyc.service.OperationLogService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; src/main/java/com/whyc/controller/UploadController.java
New file @@ -0,0 +1,104 @@ package com.whyc.controller; import com.whyc.entity.MinIoUploadVo; import com.whyc.entity.R; import com.whyc.service.MinioService; import io.minio.messages.DeleteObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author 陳樂 * @version 1.0.0 * @ClassName UploadController.java * @Description 文件上传处理 * @createTime 2022年03月12日 14:03:00 */ @RestController @Slf4j @RequestMapping("test") @Api(tags = "测试") public class UploadController { @Autowired private MinioService minioService; /** * 文件下载 * * @param file * @param request * @return * @throws IOException */ @PostMapping(value = "/upload") @ApiOperation("上传") public R upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException { //String strDir = request.getParameter("bucketName") == null ? "car" : request.getParameter("bucketName"); String strDir ="test"; try { MinIoUploadVo uploadVo = minioService.upload(strDir, file); return R.ok().message("文件上传成功").data(uploadVo); } catch (Exception e) { log.error("上传文件失败,msg={}", e.getMessage()); e.printStackTrace(); return R.error(); } } /** * 文件下载公共组件 * * @param minIoUploadVo * @param response */ @RequestMapping(value = "/download", method = RequestMethod.GET) public void download(MinIoUploadVo minIoUploadVo, HttpServletResponse response) { try { minioService.download(response, minIoUploadVo.getBucketName(), minIoUploadVo.getMinFileName()); } catch (Exception e) { log.error("下载文件失败,msg={}", e.getMessage()); e.printStackTrace(); } } /** * 文件服务器文件删除(支持多个) * * @param minIoUploadVo * @return */ @RequestMapping(value = "/delete", method = RequestMethod.DELETE) public R delete(MinIoUploadVo minIoUploadVo) { try { List<DeleteObject> objectList = new ArrayList<>(); String fileDir = minIoUploadVo.getBucketName().concat("/"); Arrays.stream(minIoUploadVo.getMinFileName().split(",")).forEach(name -> objectList.add(new DeleteObject(fileDir.concat(name)))); minioService.removeObject("car", objectList); return R.ok().message("删除成功"); } catch (Exception e) { log.error("删除文件失败,msg={}", e.getMessage()); e.printStackTrace(); return R.error(); } } } src/main/java/com/whyc/controller/UserInfController.java
@@ -1,7 +1,7 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import com.whyc.service.UserInfService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; src/main/java/com/whyc/entity/MinIoUploadVo.java
New file @@ -0,0 +1,32 @@ package com.whyc.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; /** * @author 陳樂 * @version 1.0.0 * @ClassName MinIoUploadVo.java * @Description TODO * @createTime 2022年03月12日 14:32:00 */ @Data @NoArgsConstructor @AllArgsConstructor public class MinIoUploadVo implements Serializable { //对象桶名 private String bucketName; //文件真实名称 private String fileRealName; //文件名称 private String minFileName; //文件路径 private String minFileUrl; } src/main/java/com/whyc/entity/R.java
New file @@ -0,0 +1,110 @@ package com.whyc.entity; /** * @author 陈乐 * @version 1.0.0 * @ClassName R.java * @Description 统一返回结构体 * @createTime 2022年02月08日 10:44:00 */ public class R { private Boolean success; private Integer code; private String message; private Object data; // 构造器私有 private R() { } // 通用返回成功 public static R ok() { R r = new R(); r.setSuccess(ResultCodeEnum.SUCCESS.getSuccess()); r.setCode(ResultCodeEnum.SUCCESS.getCode()); r.setMessage(ResultCodeEnum.SUCCESS.getMessage()); return r; } // 通用返回失败,未知错误 public static R error() { R r = new R(); r.setSuccess(ResultCodeEnum.UNKNOWN_ERROR.getSuccess()); r.setCode(ResultCodeEnum.UNKNOWN_ERROR.getCode()); r.setMessage(ResultCodeEnum.UNKNOWN_ERROR.getMessage()); return r; } // 设置结果,形参为结果枚举 public static R setResult(ResultCodeEnum result) { R r = new R(); r.setSuccess(result.getSuccess()); r.setCode(result.getCode()); r.setMessage(result.getMessage()); return r; } /** * ------------使用链式编程,返回类本身----------- **/ // 自定义返回数据 public R data(Object data) { this.setData(data); return this; } // 自定义状态信息 public R message(String message) { this.setMessage(message); return this; } // 自定义状态码 public R code(Integer code) { this.setCode(code); return this; } // 自定义返回结果 public R success(Boolean success) { this.setSuccess(success); return this; } public Boolean getSuccess() { return success; } public void setSuccess(Boolean success) { this.success = success; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } } src/main/java/com/whyc/entity/ResultCodeEnum.java
New file @@ -0,0 +1,37 @@ package com.whyc.entity; import lombok.Getter; /** * @author 陈乐 * @version 1.0.0 * @ClassName ResultCodeEnum.java * @Description 响应码枚举类 * @createTime 2022年02月08日 10:42:00 */ @Getter public enum ResultCodeEnum { SUCCESS(true, 200, "成功"), UNKNOWN_ERROR(false, 500, "未知错误"), PARAM_ERROR(false, 501, "参数错误"), ; // 响应是否成功 private Boolean success; // 响应状态码 private Integer code; // 响应信息 private String message; ResultCodeEnum(boolean success, Integer code, String message) { this.success = success; this.code = code; this.message = message; } } src/main/java/com/whyc/filter/RolesOrAuthorizationFilter.java
@@ -1,6 +1,6 @@ package com.whyc.filter; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.CollectionUtils; import org.apache.shiro.web.filter.authz.AuthorizationFilter; src/main/java/com/whyc/mapper/DocUserMapper.java
@@ -1,7 +1,7 @@ package com.whyc.mapper; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import java.util.List; src/main/java/com/whyc/mapper/OperationLogMapper.java
@@ -1,7 +1,7 @@ package com.whyc.mapper; import com.whyc.pojo.OperationLog; import com.whyc.pojo.db_user.OperationLog; public interface OperationLogMapper extends CustomMapper<OperationLog> { } src/main/java/com/whyc/mapper/UserInfMapper.java
@@ -1,6 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import org.apache.ibatis.annotations.Param; import java.util.List; src/main/java/com/whyc/pojo/db_lithium_ram_db/A200Realstate.java
New file @@ -0,0 +1,106 @@ package com.whyc.pojo.db_lithium_ram_db; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> * A200 设备实时状态表 * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_lithium_ram_db",value ="tb_a200_realstate") @ApiModel(value="A200Realstate对象", description="A200 设备实时状态表") public class A200Realstate implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "自增主键") @TableId(value = "num", type = IdType.AUTO) private Long num; @ApiModelProperty(value = "设备ID") private Integer devId; @ApiModelProperty(value = "更新时间") private Date recordTime; @ApiModelProperty(value = "PACK/模组号") private String batteryName; @ApiModelProperty(value = "测试类型[1-放电 2-充电]") private Integer testType; @ApiModelProperty(value = "是否正在测试") private Integer isTesting; @ApiModelProperty(value = "测试开始时间") private String startTestTime; @ApiModelProperty(value = "测试时长(秒)") private Integer testDuration; @ApiModelProperty(value = "测试结束时间") private String stopTestTime; @ApiModelProperty(value = "最高单体电压(V)") private Double maxBatteryVoltage; @ApiModelProperty(value = "最低单体电压(V)") private Double minBatteryVoltage; @ApiModelProperty(value = "最高单体电压对应电芯编号") private Integer maxBatteryVoltageNumber; @ApiModelProperty(value = "最低单体电压对应电芯编号") private Integer minBatteryVoltageNumber; @ApiModelProperty(value = "电芯压差(mV)") private Double diffBatteryVoltage; @ApiModelProperty(value = "组端电压(V)") private Double storageVoltage; @ApiModelProperty(value = "测试电流(A)") private Double testCurrent; @ApiModelProperty(value = "测试容量(AH)") private Double testCapacity; @ApiModelProperty(value = "最小温度") private Double minBatteryTemperature; @ApiModelProperty(value = "最大温度") private Double maxBatteryTemperature; @ApiModelProperty(value = "最大温度对应温度序号") private Integer maxBatteryTemperatureNumber; @ApiModelProperty(value = "最小温度对应温度序号") private Integer minBatteryTemperatureNumber; @ApiModelProperty(value = "停机原因") private String stopReason; @ApiModelProperty(value = "停机原因序号") private Integer stopReasonNumber; @ApiModelProperty(value = "故障状态[0-无故障 1-有故障]") private Integer faultState; } src/main/java/com/whyc/pojo/db_lithium_ram_db/ActmRealstate.java
New file @@ -0,0 +1,113 @@ package com.whyc.pojo.db_lithium_ram_db; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * ACTM 设备实时状态表 * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_lithium_ram_db",value ="tb_actm_realstate") @ApiModel(value="ActmRealstate对象", description="ACTM 设备实时状态表") public class ActmRealstate implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "num", type = IdType.AUTO) private Long num; @ApiModelProperty(value = "设备ID") private Integer devId; @ApiModelProperty(value = "模组序号 从0开始") private Integer batteryStorageIndex; @ApiModelProperty(value = "模组编号") private String moduleCode; @ApiModelProperty(value = "工作模式") private Integer workMode; @ApiModelProperty(value = "电池类型") private Integer batteryType; @ApiModelProperty(value = "电芯串数") private Integer batteryNumber; @ApiModelProperty(value = "单体目标电压") private Double batteryVoltageThreshold; @ApiModelProperty(value = "模组目标电压") private Double storageVoltageThreshold; @ApiModelProperty(value = "工作电流") private Double testCurrent; @ApiModelProperty(value = "温度传感器数量") private Integer ntcCount; @ApiModelProperty(value = "测试记录Id") private Integer testDataId; @ApiModelProperty(value = "是否正在测试") private Integer isTesting; @ApiModelProperty(value = "是否测试暂停") private Integer isTestPause; @ApiModelProperty(value = "测试开始时间") private String startTestTime; @ApiModelProperty(value = "测试时长(秒)") private Integer testDuration; @ApiModelProperty(value = "测试结束时间") private String stopTestTime; @ApiModelProperty(value = "电压Max") private Double maxBatteryVoltage; @ApiModelProperty(value = "电压Min") private Double minBatteryVoltage; @ApiModelProperty(value = "平均电压") private Double avgBatteryVoltage; @ApiModelProperty(value = "电芯压差") private Double diffBatteryVoltage; @ApiModelProperty(value = "模组总电压") private Double storageVoltage; @ApiModelProperty(value = "温度单位") private String temperatureUnitType; @ApiModelProperty(value = "模组状态") private String moduleStatus; @ApiModelProperty(value = "模组状态类型") private Integer moduleStatusInt; @ApiModelProperty(value = "模组状态颜色") private String moduleStatusColor; @ApiModelProperty(value = "故障信息") private String faultInfo; } src/main/java/com/whyc/pojo/db_lithium_ram_db/BattRtdata.java
New file @@ -0,0 +1,70 @@ package com.whyc.pojo.db_lithium_ram_db; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> * 电池组单体实时状态信息表 * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_lithium_ram_db",value ="tb_batt_rtdata") @ApiModel(value="BattRtdata对象", description="电池组单体实时状态信息表") public class BattRtdata implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "自增主键") @TableId(value = "num", type = IdType.AUTO) private Long num; @ApiModelProperty(value = "设备ID") private Integer devId; @ApiModelProperty(value = "电池组编号[0-组1 1-组2 ... 4-组4]") private Integer battIdx; @ApiModelProperty(value = "单体编号") private Integer monNum; @ApiModelProperty(value = "更新时间") private Date recordTime; @ApiModelProperty(value = "单体电压") private Double monVol; @ApiModelProperty(value = "单体温度") private Double monTmp; @ApiModelProperty(value = "单体电流") private Double monCurr; @ApiModelProperty(value = "单体容量") private Double monCap; @ApiModelProperty(value = "单体能量") private Double monWh; @ApiModelProperty(value = "单体状态") private Integer monState; @ApiModelProperty(value = "故障信息") private Integer monFault; } src/main/java/com/whyc/pojo/db_lithium_ram_db/DevA200Testparam.java
New file @@ -0,0 +1,111 @@ package com.whyc.pojo.db_lithium_ram_db; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * A200测试参数表 * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_lithium_ram_db",value ="tb_dev_a200_testparam") @ApiModel(value="DevA200Testparam对象", description="A200测试参数表") public class DevA200Testparam implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "自增主键") @TableId(value = "num", type = IdType.AUTO) private Long num; @ApiModelProperty(value = "设备ID") private Integer devId; @ApiModelProperty(value = "命令") private Integer opCmd; @ApiModelProperty(value = "返回响应码") private Integer returnCode; @ApiModelProperty(value = "pack/模组号") private String batteryName; @ApiModelProperty(value = "标称容量(AH)") private Double nominalCapacity; @ApiModelProperty(value = "电池类型[0-磷酸铁锂 1-三元锂 2-太酸锂 4-锰酸锂]") private Integer batteryType; @ApiModelProperty(value = "电芯串数") private Integer batteryNumber; @ApiModelProperty(value = "电芯压差") private Double diffBatteryVoltage; @ApiModelProperty(value = "放电目标电压") private Double dischargeCurrent; @ApiModelProperty(value = "放电时间(秒)") private Integer dischargeTime; @ApiModelProperty(value = "预放容量(AH)") private Double dischargeCapacity; @ApiModelProperty(value = "预放容量限制是否开启") private Integer isDischargeCapacityEnable; @ApiModelProperty(value = "单串下限(V)") private Double minBatteryVoltage; @ApiModelProperty(value = "单串下限是否开启") private Double isMinBatteryVoltageEnable; @ApiModelProperty(value = "充电目标电压(V)") private Double chargeVoltage; @ApiModelProperty(value = "充电保护电压") private Double chargeProtectVoltage; @ApiModelProperty(value = "充电电流(A)") private Double chargeCurrent; @ApiModelProperty(value = "充电停机电流(A)") private Double chargeStopCurrent; @ApiModelProperty(value = "充电时间(秒)") private Integer chargeTime; @ApiModelProperty(value = "充电容量") private Double chargeCapacity; @ApiModelProperty(value = "预充容量限制是否开启") private Integer isChargeCapacityEnable; @ApiModelProperty(value = "单串上限") private Double maxBatteryVoltage; @ApiModelProperty(value = "单串上限限制是否开启") private Integer isMaxBatteryVoltageEnable; @ApiModelProperty(value = "充电功率(KW)") private Double chargePower; @ApiModelProperty(value = "单体温度保护") private Integer batteryTemperatureProtect; } src/main/java/com/whyc/pojo/db_lithium_ram_db/DevActmTestparam.java
New file @@ -0,0 +1,74 @@ package com.whyc.pojo.db_lithium_ram_db; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * actm 测试参数表 * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_lithium_ram_db",value ="tb_dev_actm_testparam") @ApiModel(value="DevActmTestparam对象", description="actm 测试参数表") public class DevActmTestparam implements Serializable { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "自增主键") @TableId(value = "num", type = IdType.AUTO) private Long num; private Integer devId; @ApiModelProperty(value = "操作命令") private Integer opCmd; @ApiModelProperty(value = "模组需要,从0开始") private Integer batteryStorageIndex; @ApiModelProperty(value = "模组编号") private String moduleCode; @ApiModelProperty(value = "工作模式[0-充电 1-放电 2-均衡]") private Integer workMode; @ApiModelProperty(value = "电池类型[0-铁锂 1-三元锂 2-钛酸锂 3-锰酸锂]") private Integer batteryType; @ApiModelProperty(value = "当前配置的电芯数量") private Integer batteryNumber; @ApiModelProperty(value = "当前配置的温度传感器数量") private Integer ntcCount; @ApiModelProperty(value = "测试电池列表[测试电池列表是将待测电芯编号用逗号分隔的字符串。例如:1,2,4,6 表示测试1#、2#、4#、6#电芯,其余没有包含的电芯不进行测试]") private String testBatteryArray; @ApiModelProperty(value = "电压阈值") private Double voltage; @ApiModelProperty(value = "工作电流") private Double current; @ApiModelProperty(value = "可配置的最大电芯数量[只读]") private Integer maxBatteryNumber; @ApiModelProperty(value = "可配置的最大温度传感器数量[只读]") private Integer maxNtcCount; } src/main/java/com/whyc/pojo/db_lithium_ram_db/DevInf.java
New file @@ -0,0 +1,44 @@ package com.whyc.pojo.db_lithium_ram_db; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_lithium_ram_db",value ="tb_dev_inf") @ApiModel(value="DevInf对象", description="") public class DevInf implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "num", type = IdType.AUTO) private Integer num; private Integer devId; private String devIp; private Integer devType; private String devModel; private String devIdcode; } src/main/java/com/whyc/pojo/db_user/Baojigroup.java
New file @@ -0,0 +1,38 @@ package com.whyc.pojo.db_user; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_user",value ="tb_baojigroup") @ApiModel(value="Baojigroup对象", description="") public class Baojigroup implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "num", type = IdType.AUTO) private Integer num; private Integer baojiGroupId; private String baojiGroupName; } src/main/java/com/whyc/pojo/db_user/BattgroupBaojigroup.java
New file @@ -0,0 +1,40 @@ package com.whyc.pojo.db_user; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * * </p> * * @author lxw * @since 2024-08-28 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName(schema = "db_user",value ="tb_battgroup_baojigroup") @ApiModel(value="BattgroupBaojigroup对象", description="") public class BattgroupBaojigroup implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "num", type = IdType.AUTO) private Long num; private Integer baojiGroupId; private Integer devId; private Integer userId; } src/main/java/com/whyc/pojo/db_user/OperationLog.java
File was renamed from src/main/java/com/whyc/pojo/OperationLog.java @@ -1,4 +1,4 @@ package com.whyc.pojo; package com.whyc.pojo.db_user; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; src/main/java/com/whyc/pojo/db_user/UserInf.java
File was renamed from src/main/java/com/whyc/pojo/UserInf.java @@ -1,4 +1,4 @@ package com.whyc.pojo; package com.whyc.pojo.db_user; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; src/main/java/com/whyc/realm/CustomRealm.java
@@ -1,7 +1,7 @@ package com.whyc.realm; import com.whyc.anotation.Realm; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import com.whyc.service.UserBridgeService; import com.whyc.util.RSAUtil; import org.apache.shiro.authc.*; src/main/java/com/whyc/service/MinioService.java
New file @@ -0,0 +1,252 @@ package com.whyc.service; import com.whyc.entity.MinIoUploadVo; import io.minio.*; import io.minio.errors.*; import io.minio.http.Method; import io.minio.messages.Bucket; import io.minio.messages.DeleteError; import io.minio.messages.DeleteObject; import io.minio.messages.Item; import lombok.extern.slf4j.Slf4j; import org.apache.tomcat.util.http.fileupload.IOUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.InputStream; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.*; /** * @author 陳樂 * @version 1.0.0 * @ClassName MinioService.java * @Description TODO * @createTime 2022年03月12日 14:26:00 */ @Service @Slf4j public class MinioService { @Resource private MinioClient instance; @Value("${minio.endpoint}") private String endpoint; private static final String SEPARATOR_DOT = "."; private static final String SEPARATOR_ACROSS = "-"; private static final String SEPARATOR_STR = ""; /** * @Description 判断 bucket是否存在 */ public boolean bucketExists(String bucketName) { try { return instance.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build()); } catch (Exception e) { e.printStackTrace(); } return false; } /** * 创建 bucket * * @param bucketName */ public void makeBucket(String bucketName) { try { boolean isExist = instance.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build()); if (!isExist) { instance.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build()); } } catch (Exception e) { e.printStackTrace(); } } /** * @param bucketName */ public boolean removeBucket(String bucketName) throws InvalidKeyException, ErrorResponseException, IllegalArgumentException, InsufficientDataException, InternalException, InvalidResponseException, NoSuchAlgorithmException, XmlParserException, IOException, ServerException { boolean flag = bucketExists(bucketName); if (flag) { Iterable<Result<Item>> myObjects = listObjects(bucketName); for (Result<Item> result : myObjects) { Item item = result.get(); // 有对象文件,则删除失败 if (item.size() > 0) { return false; } } // 删除存储桶,注意,只有存储桶为空时才能删除成功。 instance.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build()); flag = bucketExists(bucketName); if (!flag) { return true; } } return false; } public List<String> listBucketNames() throws IOException, InvalidResponseException, InvalidKeyException, NoSuchAlgorithmException, ServerException, ErrorResponseException, XmlParserException, InsufficientDataException, InternalException { List<Bucket> bucketList = listBuckets(); List<String> bucketListName = new ArrayList<>(); for (Bucket bucket : bucketList) { bucketListName.add(bucket.name()); } return bucketListName; } /** * 列出所有存储桶 */ public List<Bucket> listBuckets() throws IOException, InvalidKeyException, InvalidResponseException, InsufficientDataException, NoSuchAlgorithmException, ServerException, InternalException, XmlParserException, ErrorResponseException { return instance.listBuckets(); } /** * 列出存储桶中的所有对象名称 */ public List<String> listObjectNames(String bucketName) throws InvalidKeyException, ErrorResponseException, IllegalArgumentException, InsufficientDataException, InternalException, InvalidResponseException, NoSuchAlgorithmException, XmlParserException, IOException, ServerException { List<String> listObjectNames = new ArrayList<>(); boolean flag = bucketExists(bucketName); if (flag) { Iterable<Result<Item>> myObjects = listObjects(bucketName); for (Result<Item> result : myObjects) { Item item = result.get(); listObjectNames.add(item.objectName()); } } return listObjectNames; } /** * 列出存储桶中的所有对象 */ public Iterable<Result<Item>> listObjects(String bucketName) { boolean flag = bucketExists(bucketName); if (flag) { return instance.listObjects(ListObjectsArgs.builder().bucket(bucketName).build()); } return null; } /** * 通过文件地址,保留原始文件名 文件上传 */ public MinIoUploadVo upload(String bucketName, String objectName, InputStream stream) throws Exception { if (!this.bucketExists(bucketName)) { this.makeBucket(bucketName); } instance.putObject( PutObjectArgs.builder().bucket(bucketName).object(objectName).stream( stream, stream.available(), -1) // PutObjectOptions,上传配置(文件大小,内存中文件分片大小) .build()); String url = instance.getPresignedObjectUrl( GetPresignedObjectUrlArgs.builder() .method(Method.GET) .bucket(bucketName) .object(objectName) .expiry(60 * 60 * 24) .build()); // 返回生成文件名、访问路径 return new MinIoUploadVo(bucketName, objectName, "", url); } /** * 文件上传 (自定义文件名称) */ public MinIoUploadVo upload(String strDir, MultipartFile multipartFile) throws Exception { // bucket 不存在,创建 if (!this.bucketExists(strDir)) { this.makeBucket(strDir); } InputStream inputStream = multipartFile.getInputStream(); // 创建一个 headers Map<String, String> headers = new HashMap<>(); // 添加请求头 文件的ContentType 动态配置 multipartFile.getContentType() headers.put("Content-Type", "application/octet-stream"); String fileName = multipartFile.getOriginalFilename(); String minFileName = minFileName(fileName); instance.putObject( PutObjectArgs.builder().bucket(strDir).object(minFileName).stream( inputStream, inputStream.available(), -1) // PutObjectOptions,上传配置(文件大小,内存中文件分片大小) .headers(headers) .build()); String url = endpoint.concat("/").concat(strDir).concat("/").concat(minFileName); // 返回生成文件名、访问路径 return new MinIoUploadVo(strDir, fileName, minFileName, url); } /** * 下载文件 */ public void download(HttpServletResponse response, String bucketName, String minFileName) throws Exception { InputStream fileInputStream = instance.getObject( GetObjectArgs.builder().object(bucketName.concat("/").concat(minFileName)).build()); response.setHeader("Content-Disposition", "attachment;filename=" + minFileName); response.setContentType("application/force-download"); response.setCharacterEncoding("UTF-8"); IOUtils.copy(fileInputStream, response.getOutputStream()); } /** * 删除一个文件 */ public boolean removeObject(String bucketName, String objectName) throws IOException, InvalidKeyException, InvalidResponseException, InsufficientDataException, NoSuchAlgorithmException, ServerException, InternalException, XmlParserException, ErrorResponseException { boolean flag = bucketExists(bucketName); if (flag) { instance.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(objectName).build()); return true; } return false; } /** * 删除指定桶的多个文件对象, 返回删除错误的对象列表,全部删除成功,返回空列 */ public List<String> removeObject(String bucketName, List<DeleteObject> objects) throws IOException, InvalidKeyException, InvalidResponseException, InsufficientDataException, NoSuchAlgorithmException, ServerException, InternalException, XmlParserException, ErrorResponseException { List<String> deleteErrorNames = new ArrayList<>(); boolean flag = bucketExists(bucketName); if (flag) { Iterable<Result<DeleteError>> results = instance.removeObjects( RemoveObjectsArgs.builder().bucket(bucketName).objects(objects).build()); for (Result<DeleteError> result : results) { DeleteError error = result.get(); deleteErrorNames.add(error.objectName()); } } return deleteErrorNames; } /** * 生成上传文件名 */ private String minFileName(String originalFileName) { String suffix = originalFileName; if (originalFileName.contains(SEPARATOR_DOT)) { suffix = originalFileName.substring(originalFileName.lastIndexOf(SEPARATOR_DOT)); } return UUID.randomUUID().toString().replace(SEPARATOR_ACROSS, SEPARATOR_STR).toUpperCase() + suffix; } } src/main/java/com/whyc/service/OperationLogService.java
@@ -7,8 +7,8 @@ import com.whyc.constant.OperationLogEnum; import com.whyc.dto.Response; import com.whyc.mapper.OperationLogMapper; import com.whyc.pojo.OperationLog; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.OperationLog; import com.whyc.pojo.db_user.UserInf; import com.whyc.util.HttpUtil; import com.whyc.util.UserUtil; import org.springframework.stereotype.Service; src/main/java/com/whyc/service/UserBridgeService.java
@@ -3,7 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.DocUserMapper; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.authz.SimpleAuthorizationInfo; import org.springframework.cache.CacheManager; src/main/java/com/whyc/service/UserInfService.java
@@ -7,7 +7,7 @@ import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; import com.whyc.mapper.UserInfMapper; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import com.whyc.util.MD5Util; import com.whyc.util.RSAUtil; import org.apache.shiro.SecurityUtils; src/main/java/com/whyc/util/UserUtil.java
@@ -1,6 +1,6 @@ package com.whyc.util; import com.whyc.pojo.UserInf; import com.whyc.pojo.db_user.UserInf; import org.apache.shiro.SecurityUtils; /** src/main/resources/config/application-dev.yml
@@ -3,12 +3,12 @@ type: 1 #服务端口号 server: port: 8095 port: 8098 servlet: context-path: /ms context-path: /ls session: cookie: name: MonitStation name: LithiumBms tomcat: max-http-form-post-size: 102400000 @@ -28,12 +28,6 @@ multipart: max-file-size: -1 max-request-size: -1 mail: host: smtp.163.com port: username: whyc_doc@163.com password: JAMKMEQUOAGGMSVV default-encoding: UTF-8 mybatis-plus: typeAliasesPackage: com.whyc.pojo,com.whyc.dto mapper-locations: classpath:mapper/**/*Mapper.xml @@ -68,22 +62,6 @@ algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator custom: #人脸 face: threshold: 0.8 appId4Win: AafPX5afzycEnTqH3v79gY3VozNVTSNqT8kzSmP7b48q sdkKey4Win: GsYwWhxzuQEE1WE34J3Fo8d2QppjkqYGojyc4625JhKb appId4Linux: AafPX5afzycEnTqH3v79gY3VozNVTSNqT8kzSmP7b48q sdkKey4Linux: GsYwWhxzuQEE1WE34J3Fo8d2GiFdddqH81ghetQQTGmv #告警短信 message: switch: OFF secret_id: AKIDaz80bw0oLbbLo0vay5vVoqb5IEtIQItD secret_key: 4sPeeNp0tWsVrxmLdfQu73i6D2btufAO region: ap-nanjing smsSdkAppId: 1400565791 signName: 武汉源畅科技有限公司 templateId: 1095970 #告警工单 alarm: task.switch: off @@ -92,19 +70,18 @@ rsa: #publicKey: ENC(ZCCRYK0TIFYCrdHZprQS0I8hWFD1uXKIRYcfwDkh3V87FjFePAWlWIzi6tJFcswo525c+m5UGmkt+eq/wCIIabjbcbt6l+18hz6ogtGXHTalaEATqjbrjWmbdzc92A6dYmoNI5Rdpi+jqBKciXZhDKWDNPY2M3/WyejcPGDOeo9CWOvR1hdmLX8iTlcuPRS6k7YzybGZwP9cOHfcAyt6QN+GSuNRzapo5pUmQdT7aUwF3P73qcoxHpRO1li6kYF9KVOMgVix8a3h6TyFMMuJdPGboRV8DL9wLK3bnJT6s0Ei35niYv4ePJ7IzHiEa4J1x0wo8pNU0CfdhylySWLsnxgFjzbhMWjmoQhwQjjnTj+DgyvRrZqaE3R0cLpSwxT4x2ceHzKm1KUzF7OhGgnmc3lPN3H8UyVHy+l3GyejGpRnqFtABHqIlbM2nbsTA8lT/sAeN/AVlBORNgd5Rai7upWk43pvd2qG9ykSW+t/++ZiKBXfAZOBgrcWhPseEG94e3bHhM62nwcgHZ5HzFCZ8PEwXn0053vbxdM6LxVIqCAIzrWoOgBWoaRRBqfSUTvJf2tdc5m9NncXRmYEzZOg3f1wOvVGDJeyKC3OuyhlJnD2VWYVwNsorDkI+dT9mPAMMTZaPeqwPGxtkjaaFSgB5RDHcBfeEIMNdAVOqMCA9qOLFX+zr9mHvjV1kpiDKb5JZFhLHlXObROUtqMndTQDRCATBjutLB4QS0/0BCOvSLnDTA39e/nVKBwTHPqnlz4N) #privateKey: ENC(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) publicKey: ENC(QR8EpIC0jzG2E29Dhtq/vqrwt99WtUix/h2J8OvD90w0fosfUM1EFpdHJ2nsdP84BOeVNoPmudqXCYWVeCuTrVkqfb2z8mMLDl8cry78P8Tu4il3m9hGxqjdeNJbdYA6z6eRaInoJj5BHUyNpAJDaNacMZoOUJU6lMySwujyrD8PfSY97St0XPL5GIFP9rP1FCnlVWBeH4tqZKZ6MGncYJaITUZ/BIPkhpDYxi+i4CnMIBqytCJ6OJCzjLBI44UsQOzsdLgppAE2O0fmgyXA6bh0VRdIaRhqDIrjur2e4sOEvjadORN0Kg==) privateKey: ENC(fDshYRxHSlpJ2v+CmDGzH/PlFIKr9+hcPg0patE+nOFMKQaEVNLj9XxOlGEDFabSLFvy1imSRmOF08EE/z9cmlsp+hfbF6feR6YABRHgDxOGWusZ9QKYLhv6vDD6pebKb2W3FCuIHnLicMiJfzpM5KGylTMv7rvtM7tFR8ZhDzn3s8uYotz6ORcfCPdgOcUcNHXT0WS2KA0NigsRH5YMF5IOCP2jNTaOFDDXYacjfGOwjFIGE71BMJCnMRp6RnukbAY1ZN3J88GpYRzYCYD/S9DbGFVY9giH0T7FZs5cgPsCoDZ1dIeJhmjbOxoQpwKoDZzvlYbsstMH+6wApaWgx9TJfBoNjEJdqM1S3asukV4bUq4cZnmryCeSWSYkR2FDuH792rXL3Msh2Jc2hB2Cg9ZPB5hljN5GWV0fYiKNjJW2ovgBZZRWURorkrfBReKsxuLcHlbBcdHBF9DZDJyy40fg9GP6w40uG3hBKd/OlA9IYWNWEgqgeMkNmesG9RTc4X7EG2Ar4MEDa1p6o3unIve/zTCpLoFzKCRIjYcqlW1pZfSwZD4wu6JJf+5tUoXaEEf5YD4dcWCD4DzUcv4qhOpHXDBtM3E45VdacMWZNdE7fXcDzWpgYdUSQ88HsXRjmaW0O/x5irdN5KGa89yj5bDYQeMzR7Cervxml3MUZSrkHVKsa9yWverlLaRXzTue3+MXgDudm1stHju5p2x55GWG9ZfcErDoTNqhgPwcbJnW7/vXFpoTt6AF3t8vbD7f5G+FXnvYLDUWtdNS8KN6X+EOkh4GWootC+QMEKArDr8AyL+5D2TkBGIDMAag/LVwAKSwvBs2+e/xsSlw+AuAsWcfb9whJCZNVogpA1jE56SIdIBtw4G4Lw9LMlJ2MprkV6e2VAtBwpou3fd5pUsKpu51WBfISRy60vls7Fu0mQXrT7cCzThptrk9KgIhjMtiI2jf6YpultF1+Hg5+IK863wKpiNmJbxmA+AOc171LVmNlqiSdDp2fptfIgaI5IMcLMJj8zvY2gghAGoRrchpSkteTLc48om87Duw1gR5lAZjUYzNON9wETte9bfUvQ6/ZkQE3rjEUY6TfyokKJf4X/0ZxKFz0YzkcHDXBaPefrIWxQGygeTsy0kZO7UKpYZo) publicKey: ENC(RFwEWQPojWyBu7BO0WwGEum/3YChVJuxg9i9W02gfSYi4V7Po56zRhFFGdIl60lTFxEA7JVgVZ+BTVVFAJcuaNECgVT0IbuzvGk/8GZslhVXciPqwonQmUxGbGQ9HP7wOl+pCkAB9vPa9qYnGrOb8Ie1c9Yz/ogGJzFBHPB5MFmkAKrt/QC55oBCFhj3+8JZYYDdy8HElZzjtp5BtPD60h0DVOLbw94PG8680VZNDv25yhtAZdsXYIpDpUuxAA+kvp0Zl0dXDRw6BHcPh0PP+q65pz56Fgy+8AXnPEP/o8jkaEs7WWFqqspHsi9joapK4rX47qyQX+2gLdjvI5gqcCucIC/lGl0uGusrWc7HbPGkVWewr7wKIv5hLGc2keMijLjGlqBr2PFBGtPeSk+BVxCIHK4kjKQ32bHP6OE4MtIjzg5G3M2fd04/KWDRqWkYq45oiJc2KBggyYCTUD4KkTVwL4OZxaqC7wQFmJbz2tzA2uvh0ejR3lA+lMSqjWarw7GuHK+L1on6ogzGOM5GHkuehkTvbQdCOOAxARg8YRiNd6tgnGwk7G+spLco3yqTbKcEy6Cr/oJ1ay4apiUgoyakA3/Lz0R+Z2zBKVzHp+kRN6R2Y4JzqmhHdbvLm2UrCkL4NA3NBQICbEiFlIccyUV+w48c3ENb+y+hLuzExI4baY4DF3CNYEwpIi8GEX5rwRlhxrr9FNpxkdx0Tkog+SLu4JMS9LDdiQZNimAxvdZqGpJxpoe6v7GVSs8TjEBy) privateKey: ENC(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) #Config文件读取 涉及License和FGCDFileDownload configFile: type: 1 #1:本地测试;2:打包jar #FTP本分数据 ftpInforMation: ftpIp: 192.168.10.79 ftpPort: 21 ftpUserName: lxw ftpPassword: luxingwei+810412026 minio: endpoint: http://127.0.0.1:9002 accessKey: minioadmin secretKey: minioadmin bucketName: test src/main/resources/config/application-prod.yml
@@ -3,12 +3,12 @@ type: 1 #服务端口号 server: port: 8095 port: 8098 servlet: context-path: /ms context-path: /ls session: cookie: name: MonitStation name: LithiumBms tomcat: max-http-form-post-size: 102400000 @@ -17,9 +17,9 @@ datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3381/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true url: jdbc:mysql://localhost:3361/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true username: root password: ENC(TCTafHgB8pLJhvf59unszvgwRS5M2AVq) password: hdw8688139 maxIdel: 60 initialPoolSize: 2 minPoolSize: 2 @@ -28,12 +28,6 @@ multipart: max-file-size: -1 max-request-size: -1 mail: host: smtp.163.com port: username: whyc_doc@163.com password: JAMKMEQUOAGGMSVV default-encoding: UTF-8 mybatis-plus: typeAliasesPackage: com.whyc.pojo,com.whyc.dto mapper-locations: classpath:mapper/**/*Mapper.xml @@ -54,7 +48,7 @@ map-underscore-to-camel-case: true cache-enabled: false #mybatis日志输出 # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImpl pagehelper: helper-dialect: mysql reasonable: true @@ -68,40 +62,26 @@ algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator custom: #人脸 face: threshold: 0.8 appId4Win: AafPX5afzycEnTqH3v79gY3VozNVTSNqT8kzSmP7b48q sdkKey4Win: GsYwWhxzuQEE1WE34J3Fo8d2QppjkqYGojyc4625JhKb appId4Linux: AafPX5afzycEnTqH3v79gY3VozNVTSNqT8kzSmP7b48q sdkKey4Linux: GsYwWhxzuQEE1WE34J3Fo8d2GiFdddqH81ghetQQTGmv #告警短信 message: switch: OFF secret_id: AKIDaz80bw0oLbbLo0vay5vVoqb5IEtIQItD secret_key: 4sPeeNp0tWsVrxmLdfQu73i6D2btufAO region: ap-nanjing smsSdkAppId: 1400565791 signName: 武汉源畅科技有限公司 templateId: 1095970 #告警工单 alarm: task.switch: off #允许跨域的白名单 http://192.168.10.132:8080,http://192.168.10.109:8080 cors: http://localhost:8080 cors: http://localhost:8080,http://192.168.10.133:8080 rsa: #publicKey: ENC(ZCCRYK0TIFYCrdHZprQS0I8hWFD1uXKIRYcfwDkh3V87FjFePAWlWIzi6tJFcswo525c+m5UGmkt+eq/wCIIabjbcbt6l+18hz6ogtGXHTalaEATqjbrjWmbdzc92A6dYmoNI5Rdpi+jqBKciXZhDKWDNPY2M3/WyejcPGDOeo9CWOvR1hdmLX8iTlcuPRS6k7YzybGZwP9cOHfcAyt6QN+GSuNRzapo5pUmQdT7aUwF3P73qcoxHpRO1li6kYF9KVOMgVix8a3h6TyFMMuJdPGboRV8DL9wLK3bnJT6s0Ei35niYv4ePJ7IzHiEa4J1x0wo8pNU0CfdhylySWLsnxgFjzbhMWjmoQhwQjjnTj+DgyvRrZqaE3R0cLpSwxT4x2ceHzKm1KUzF7OhGgnmc3lPN3H8UyVHy+l3GyejGpRnqFtABHqIlbM2nbsTA8lT/sAeN/AVlBORNgd5Rai7upWk43pvd2qG9ykSW+t/++ZiKBXfAZOBgrcWhPseEG94e3bHhM62nwcgHZ5HzFCZ8PEwXn0053vbxdM6LxVIqCAIzrWoOgBWoaRRBqfSUTvJf2tdc5m9NncXRmYEzZOg3f1wOvVGDJeyKC3OuyhlJnD2VWYVwNsorDkI+dT9mPAMMTZaPeqwPGxtkjaaFSgB5RDHcBfeEIMNdAVOqMCA9qOLFX+zr9mHvjV1kpiDKb5JZFhLHlXObROUtqMndTQDRCATBjutLB4QS0/0BCOvSLnDTA39e/nVKBwTHPqnlz4N) #privateKey: ENC(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) publicKey: ENC(QR8EpIC0jzG2E29Dhtq/vqrwt99WtUix/h2J8OvD90w0fosfUM1EFpdHJ2nsdP84BOeVNoPmudqXCYWVeCuTrVkqfb2z8mMLDl8cry78P8Tu4il3m9hGxqjdeNJbdYA6z6eRaInoJj5BHUyNpAJDaNacMZoOUJU6lMySwujyrD8PfSY97St0XPL5GIFP9rP1FCnlVWBeH4tqZKZ6MGncYJaITUZ/BIPkhpDYxi+i4CnMIBqytCJ6OJCzjLBI44UsQOzsdLgppAE2O0fmgyXA6bh0VRdIaRhqDIrjur2e4sOEvjadORN0Kg==) privateKey: ENC(fDshYRxHSlpJ2v+CmDGzH/PlFIKr9+hcPg0patE+nOFMKQaEVNLj9XxOlGEDFabSLFvy1imSRmOF08EE/z9cmlsp+hfbF6feR6YABRHgDxOGWusZ9QKYLhv6vDD6pebKb2W3FCuIHnLicMiJfzpM5KGylTMv7rvtM7tFR8ZhDzn3s8uYotz6ORcfCPdgOcUcNHXT0WS2KA0NigsRH5YMF5IOCP2jNTaOFDDXYacjfGOwjFIGE71BMJCnMRp6RnukbAY1ZN3J88GpYRzYCYD/S9DbGFVY9giH0T7FZs5cgPsCoDZ1dIeJhmjbOxoQpwKoDZzvlYbsstMH+6wApaWgx9TJfBoNjEJdqM1S3asukV4bUq4cZnmryCeSWSYkR2FDuH792rXL3Msh2Jc2hB2Cg9ZPB5hljN5GWV0fYiKNjJW2ovgBZZRWURorkrfBReKsxuLcHlbBcdHBF9DZDJyy40fg9GP6w40uG3hBKd/OlA9IYWNWEgqgeMkNmesG9RTc4X7EG2Ar4MEDa1p6o3unIve/zTCpLoFzKCRIjYcqlW1pZfSwZD4wu6JJf+5tUoXaEEf5YD4dcWCD4DzUcv4qhOpHXDBtM3E45VdacMWZNdE7fXcDzWpgYdUSQ88HsXRjmaW0O/x5irdN5KGa89yj5bDYQeMzR7Cervxml3MUZSrkHVKsa9yWverlLaRXzTue3+MXgDudm1stHju5p2x55GWG9ZfcErDoTNqhgPwcbJnW7/vXFpoTt6AF3t8vbD7f5G+FXnvYLDUWtdNS8KN6X+EOkh4GWootC+QMEKArDr8AyL+5D2TkBGIDMAag/LVwAKSwvBs2+e/xsSlw+AuAsWcfb9whJCZNVogpA1jE56SIdIBtw4G4Lw9LMlJ2MprkV6e2VAtBwpou3fd5pUsKpu51WBfISRy60vls7Fu0mQXrT7cCzThptrk9KgIhjMtiI2jf6YpultF1+Hg5+IK863wKpiNmJbxmA+AOc171LVmNlqiSdDp2fptfIgaI5IMcLMJj8zvY2gghAGoRrchpSkteTLc48om87Duw1gR5lAZjUYzNON9wETte9bfUvQ6/ZkQE3rjEUY6TfyokKJf4X/0ZxKFz0YzkcHDXBaPefrIWxQGygeTsy0kZO7UKpYZo) publicKey: ENC(RFwEWQPojWyBu7BO0WwGEum/3YChVJuxg9i9W02gfSYi4V7Po56zRhFFGdIl60lTFxEA7JVgVZ+BTVVFAJcuaNECgVT0IbuzvGk/8GZslhVXciPqwonQmUxGbGQ9HP7wOl+pCkAB9vPa9qYnGrOb8Ie1c9Yz/ogGJzFBHPB5MFmkAKrt/QC55oBCFhj3+8JZYYDdy8HElZzjtp5BtPD60h0DVOLbw94PG8680VZNDv25yhtAZdsXYIpDpUuxAA+kvp0Zl0dXDRw6BHcPh0PP+q65pz56Fgy+8AXnPEP/o8jkaEs7WWFqqspHsi9joapK4rX47qyQX+2gLdjvI5gqcCucIC/lGl0uGusrWc7HbPGkVWewr7wKIv5hLGc2keMijLjGlqBr2PFBGtPeSk+BVxCIHK4kjKQ32bHP6OE4MtIjzg5G3M2fd04/KWDRqWkYq45oiJc2KBggyYCTUD4KkTVwL4OZxaqC7wQFmJbz2tzA2uvh0ejR3lA+lMSqjWarw7GuHK+L1on6ogzGOM5GHkuehkTvbQdCOOAxARg8YRiNd6tgnGwk7G+spLco3yqTbKcEy6Cr/oJ1ay4apiUgoyakA3/Lz0R+Z2zBKVzHp+kRN6R2Y4JzqmhHdbvLm2UrCkL4NA3NBQICbEiFlIccyUV+w48c3ENb+y+hLuzExI4baY4DF3CNYEwpIi8GEX5rwRlhxrr9FNpxkdx0Tkog+SLu4JMS9LDdiQZNimAxvdZqGpJxpoe6v7GVSs8TjEBy) privateKey: ENC(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) #Config文件读取 涉及License和FGCDFileDownload configFile: type: 2 #1:本地测试;2:打包jar #FTP本分数据 ftpInforMation: ftpIp: 192.168.10.79 ftpPort: 21 ftpUserName: lxw ftpPassword: luxingwei+810412026 minio: endpoint: http://127.0.0.1:9002 accessKey: minioadmin secretKey: minioadmin bucketName: test target/classes/com/whyc/controller/LoginController.classBinary files differ
target/classes/com/whyc/controller/OperationLogController.classBinary files differ
target/classes/com/whyc/controller/UserInfController.classBinary files differ
target/classes/com/whyc/filter/RolesOrAuthorizationFilter.classBinary files differ
target/classes/com/whyc/mapper/DocUserMapper.classBinary files differ
target/classes/com/whyc/mapper/OperationLogMapper.classBinary files differ
target/classes/com/whyc/mapper/UserInfMapper.classBinary files differ
target/classes/com/whyc/pojo/OperationLog.classBinary files differ
target/classes/com/whyc/pojo/UserInf.classBinary files differ
target/classes/com/whyc/realm/CustomRealm.classBinary files differ
target/classes/com/whyc/service/OperationLogService.classBinary files differ
target/classes/com/whyc/service/UserBridgeService.classBinary files differ
target/classes/com/whyc/service/UserInfService.classBinary files differ
target/classes/com/whyc/swagger/SwaggerConfig4Knife.classBinary files differ
target/classes/com/whyc/util/UserUtil.classBinary files differ
target/classes/config/application-dev.yml
@@ -3,12 +3,12 @@ type: 1 #服务端口号 server: port: 8095 port: 8098 servlet: context-path: /ms context-path: /ls session: cookie: name: MonitStation name: LithiumBms tomcat: max-http-form-post-size: 102400000 @@ -28,12 +28,6 @@ multipart: max-file-size: -1 max-request-size: -1 mail: host: smtp.163.com port: username: whyc_doc@163.com password: JAMKMEQUOAGGMSVV default-encoding: UTF-8 mybatis-plus: typeAliasesPackage: com.whyc.pojo,com.whyc.dto mapper-locations: classpath:mapper/**/*Mapper.xml @@ -68,22 +62,6 @@ algorithm: PBEWithMD5AndDES iv-generator-classname: org.jasypt.iv.NoIvGenerator custom: #人脸 face: threshold: 0.8 appId4Win: AafPX5afzycEnTqH3v79gY3VozNVTSNqT8kzSmP7b48q sdkKey4Win: GsYwWhxzuQEE1WE34J3Fo8d2QppjkqYGojyc4625JhKb appId4Linux: AafPX5afzycEnTqH3v79gY3VozNVTSNqT8kzSmP7b48q sdkKey4Linux: GsYwWhxzuQEE1WE34J3Fo8d2GiFdddqH81ghetQQTGmv #告警短信 message: switch: OFF secret_id: AKIDaz80bw0oLbbLo0vay5vVoqb5IEtIQItD secret_key: 4sPeeNp0tWsVrxmLdfQu73i6D2btufAO region: ap-nanjing smsSdkAppId: 1400565791 signName: 武汉源畅科技有限公司 templateId: 1095970 #告警工单 alarm: task.switch: off @@ -92,19 +70,18 @@ rsa: #publicKey: ENC(ZCCRYK0TIFYCrdHZprQS0I8hWFD1uXKIRYcfwDkh3V87FjFePAWlWIzi6tJFcswo525c+m5UGmkt+eq/wCIIabjbcbt6l+18hz6ogtGXHTalaEATqjbrjWmbdzc92A6dYmoNI5Rdpi+jqBKciXZhDKWDNPY2M3/WyejcPGDOeo9CWOvR1hdmLX8iTlcuPRS6k7YzybGZwP9cOHfcAyt6QN+GSuNRzapo5pUmQdT7aUwF3P73qcoxHpRO1li6kYF9KVOMgVix8a3h6TyFMMuJdPGboRV8DL9wLK3bnJT6s0Ei35niYv4ePJ7IzHiEa4J1x0wo8pNU0CfdhylySWLsnxgFjzbhMWjmoQhwQjjnTj+DgyvRrZqaE3R0cLpSwxT4x2ceHzKm1KUzF7OhGgnmc3lPN3H8UyVHy+l3GyejGpRnqFtABHqIlbM2nbsTA8lT/sAeN/AVlBORNgd5Rai7upWk43pvd2qG9ykSW+t/++ZiKBXfAZOBgrcWhPseEG94e3bHhM62nwcgHZ5HzFCZ8PEwXn0053vbxdM6LxVIqCAIzrWoOgBWoaRRBqfSUTvJf2tdc5m9NncXRmYEzZOg3f1wOvVGDJeyKC3OuyhlJnD2VWYVwNsorDkI+dT9mPAMMTZaPeqwPGxtkjaaFSgB5RDHcBfeEIMNdAVOqMCA9qOLFX+zr9mHvjV1kpiDKb5JZFhLHlXObROUtqMndTQDRCATBjutLB4QS0/0BCOvSLnDTA39e/nVKBwTHPqnlz4N) #privateKey: ENC(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) publicKey: ENC(QR8EpIC0jzG2E29Dhtq/vqrwt99WtUix/h2J8OvD90w0fosfUM1EFpdHJ2nsdP84BOeVNoPmudqXCYWVeCuTrVkqfb2z8mMLDl8cry78P8Tu4il3m9hGxqjdeNJbdYA6z6eRaInoJj5BHUyNpAJDaNacMZoOUJU6lMySwujyrD8PfSY97St0XPL5GIFP9rP1FCnlVWBeH4tqZKZ6MGncYJaITUZ/BIPkhpDYxi+i4CnMIBqytCJ6OJCzjLBI44UsQOzsdLgppAE2O0fmgyXA6bh0VRdIaRhqDIrjur2e4sOEvjadORN0Kg==) privateKey: ENC(fDshYRxHSlpJ2v+CmDGzH/PlFIKr9+hcPg0patE+nOFMKQaEVNLj9XxOlGEDFabSLFvy1imSRmOF08EE/z9cmlsp+hfbF6feR6YABRHgDxOGWusZ9QKYLhv6vDD6pebKb2W3FCuIHnLicMiJfzpM5KGylTMv7rvtM7tFR8ZhDzn3s8uYotz6ORcfCPdgOcUcNHXT0WS2KA0NigsRH5YMF5IOCP2jNTaOFDDXYacjfGOwjFIGE71BMJCnMRp6RnukbAY1ZN3J88GpYRzYCYD/S9DbGFVY9giH0T7FZs5cgPsCoDZ1dIeJhmjbOxoQpwKoDZzvlYbsstMH+6wApaWgx9TJfBoNjEJdqM1S3asukV4bUq4cZnmryCeSWSYkR2FDuH792rXL3Msh2Jc2hB2Cg9ZPB5hljN5GWV0fYiKNjJW2ovgBZZRWURorkrfBReKsxuLcHlbBcdHBF9DZDJyy40fg9GP6w40uG3hBKd/OlA9IYWNWEgqgeMkNmesG9RTc4X7EG2Ar4MEDa1p6o3unIve/zTCpLoFzKCRIjYcqlW1pZfSwZD4wu6JJf+5tUoXaEEf5YD4dcWCD4DzUcv4qhOpHXDBtM3E45VdacMWZNdE7fXcDzWpgYdUSQ88HsXRjmaW0O/x5irdN5KGa89yj5bDYQeMzR7Cervxml3MUZSrkHVKsa9yWverlLaRXzTue3+MXgDudm1stHju5p2x55GWG9ZfcErDoTNqhgPwcbJnW7/vXFpoTt6AF3t8vbD7f5G+FXnvYLDUWtdNS8KN6X+EOkh4GWootC+QMEKArDr8AyL+5D2TkBGIDMAag/LVwAKSwvBs2+e/xsSlw+AuAsWcfb9whJCZNVogpA1jE56SIdIBtw4G4Lw9LMlJ2MprkV6e2VAtBwpou3fd5pUsKpu51WBfISRy60vls7Fu0mQXrT7cCzThptrk9KgIhjMtiI2jf6YpultF1+Hg5+IK863wKpiNmJbxmA+AOc171LVmNlqiSdDp2fptfIgaI5IMcLMJj8zvY2gghAGoRrchpSkteTLc48om87Duw1gR5lAZjUYzNON9wETte9bfUvQ6/ZkQE3rjEUY6TfyokKJf4X/0ZxKFz0YzkcHDXBaPefrIWxQGygeTsy0kZO7UKpYZo) publicKey: ENC(RFwEWQPojWyBu7BO0WwGEum/3YChVJuxg9i9W02gfSYi4V7Po56zRhFFGdIl60lTFxEA7JVgVZ+BTVVFAJcuaNECgVT0IbuzvGk/8GZslhVXciPqwonQmUxGbGQ9HP7wOl+pCkAB9vPa9qYnGrOb8Ie1c9Yz/ogGJzFBHPB5MFmkAKrt/QC55oBCFhj3+8JZYYDdy8HElZzjtp5BtPD60h0DVOLbw94PG8680VZNDv25yhtAZdsXYIpDpUuxAA+kvp0Zl0dXDRw6BHcPh0PP+q65pz56Fgy+8AXnPEP/o8jkaEs7WWFqqspHsi9joapK4rX47qyQX+2gLdjvI5gqcCucIC/lGl0uGusrWc7HbPGkVWewr7wKIv5hLGc2keMijLjGlqBr2PFBGtPeSk+BVxCIHK4kjKQ32bHP6OE4MtIjzg5G3M2fd04/KWDRqWkYq45oiJc2KBggyYCTUD4KkTVwL4OZxaqC7wQFmJbz2tzA2uvh0ejR3lA+lMSqjWarw7GuHK+L1on6ogzGOM5GHkuehkTvbQdCOOAxARg8YRiNd6tgnGwk7G+spLco3yqTbKcEy6Cr/oJ1ay4apiUgoyakA3/Lz0R+Z2zBKVzHp+kRN6R2Y4JzqmhHdbvLm2UrCkL4NA3NBQICbEiFlIccyUV+w48c3ENb+y+hLuzExI4baY4DF3CNYEwpIi8GEX5rwRlhxrr9FNpxkdx0Tkog+SLu4JMS9LDdiQZNimAxvdZqGpJxpoe6v7GVSs8TjEBy) privateKey: ENC(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) #Config文件读取 涉及License和FGCDFileDownload configFile: type: 1 #1:本地测试;2:打包jar #FTP本分数据 ftpInforMation: ftpIp: 192.168.10.79 ftpPort: 21 ftpUserName: lxw ftpPassword: luxingwei+810412026 minio: endpoint: http://127.0.0.1:9002 accessKey: minioadmin secretKey: minioadmin bucketName: test