Переглянути джерело

Merge branch 'develop-v3.0.0' of http://39.106.8.246:3003/FM-dev/fm-basics into develop-v3.0.0

lixing 3 роки тому
батько
коміт
84e1ad9515

+ 7 - 0
fm-common/pom.xml

@@ -11,6 +11,13 @@
     <modelVersion>4.0.0</modelVersion>
     <artifactId>fm-common</artifactId>
     <version>3.0.0</version>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </distributionManagement>
     <dependencies>
         <!-- 集成框架工具类 -->
         <dependency>

+ 35 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/CommonConstant.java

@@ -0,0 +1,35 @@
+package com.persagy.fm.common.constant;
+/***
+ * Description: 通用常量类
+ * @author : lijie
+ * @date :2021/4/27 17:13
+ * Update By lijie 2021/4/27 17:13
+ */
+public class CommonConstant {
+    /**user_id:用户id*/
+    public static final String USER_ID="user_id";
+    /**dict_type:字典类型*/
+    public static final String DICT_TYPE="dict_type";
+    /**systemId:老项目中预留的系统id*/
+    public static final String SYSTEM_ID="systemId";
+    /**响应头:Access-Control-Expose-Headers*/
+    public static final String REPONSE_HEAD_ACCESS_CONTROL_EXPOSE_HEADERS = "Access-Control-Expose-Headers";
+    /**响应头:Content-disposition*/
+    public static final String REPONSE_HEAD_CONTENT_DISPOSITION = "Content-disposition";
+    /**响应头:Content-Type*/
+    public static final String REPONSE_HEAD_CONTENT_TYPE = "Content-Type";
+    /**响应头:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet*/
+    public static final String REPONSE_HEAD_CONTENT_TYPE_SHEET = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
+    /**响应头:attachment;filename=*/
+    public static final String REPONSE_HEAD_CONTENT_DISPOSITION_ATTACHMENT = "attachment;filename=";
+    /**系统类型-windows*/
+    public static final String SYSTEM_TYPE_WINDOWS = "windows";
+    /**系统类型-linux/unix*/
+    public static final String SYSTEM_TYPE_LINUX = "linux/unix";
+    /**系统类型-mac*/
+    public static final String SYSTEM_TYPE_MAC = "mac";
+    /**自定义请求头-os-type*/
+    public static final String OS_TYPE = "os-type";
+
+
+}

+ 49 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/enums/DictTypeEnum.java

@@ -0,0 +1,49 @@
+package com.persagy.fm.common.constant.enums;
+/***
+ * Description: 字典类型枚举类
+ * @author : lijie
+ * @date :2021/4/2 18:19
+ * Update By lijie 2021/4/2 18:19
+ */
+public enum DictTypeEnum {
+    /**工单控制模块*/
+    WO_CONTROL_MODULE("wo_control_module","工单控制模块"),
+    /**工单申请事项*/
+    WO_APPLAY_ITEM("wo_applay_item","工单申请事项"),
+    /**工单审批事项*/
+    WO_AUDIT_ITEM("wo_audit_item","工单审批事项"),
+    /**工单审核事项*/
+    WO_APPROVAL_ITEM("wo_approval_item","工单审核事项"),
+    /**工单时间类型*/
+    WO_EXECUTE_TYPE("wo_execute_type","工单时间类型"),
+    /**专业类型*/
+    DOMAIN_REQUIRE("domain_require","专业类型"),
+    /**工作类型:1-维保,2-维修,3-巡检,4-运行,5-安全*/
+    WORK_TYPE("work_type","工作类型:1-维保,2-维修,3-巡检,4-运行,5-安全"),
+    /**工单状态类型*/
+    WORK_ORDER_STATE("work_order_state","工单状态类型");
+
+    DictTypeEnum(String type, String describe) {
+        this.type = type;
+        this.describe = describe;
+    }
+
+    private String type;
+    private String describe;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getDescribe() {
+        return describe;
+    }
+
+    public void setDescribe(String describe) {
+        this.describe = describe;
+    }
+}

+ 2 - 0
fm-common/src/main/java/com/persagy/fm/common/constant/enums/ResultEnum.java

@@ -16,6 +16,8 @@ public enum ResultEnum {
     RESULT_MSG("ResultMsg","错误消息"),
     /**内容数组*/
     CONTENT("Content","内容数组"),
+    /**对象*/
+    ITEM("Item","对象"),
     /**总数*/
     COUNT("Count","总数");
 

+ 73 - 0
fm-common/src/main/java/com/persagy/fm/common/model/vo/GeneralDictVo.java

@@ -0,0 +1,73 @@
+package com.persagy.fm.common.model.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+@EqualsAndHashCode
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class GeneralDictVo {
+    @ApiModelProperty(value = "字典code")
+    private String code;
+
+    @ApiModelProperty(value = "字典名称")
+    private String name;
+
+    @ApiModelProperty(value = "字典描述")
+    private String description;
+
+    @ApiModelProperty(value = "有效值",hidden = true)
+    @JsonIgnore
+    private Boolean valid;
+
+    @ApiModelProperty(value = "字典类型",hidden = true)
+    @JSONField(alternateNames = {"dict_type","dictType"})
+    @JsonProperty("dict_type")
+    private String dictType;
+
+    @ApiModelProperty(value = "默认使用与否",hidden = true)
+    @JSONField(alternateNames = {"default_use","defaultUse"})
+    @JsonIgnore
+    private Boolean defaultUse;
+
+    @ApiModelProperty(value = "字典唯一标识",hidden = true)
+    @JSONField(alternateNames = {"dict_id","dictId"})
+    @JsonIgnore
+    private String dictId;
+
+    @ApiModelProperty(value = "更新时间",hidden = true)
+    @JSONField(alternateNames = {"update_time","updateTime"})
+    @JsonIgnore
+    private String updateTime;
+
+    @ApiModelProperty(value = "创建时间",hidden = true)
+    @JSONField(alternateNames = {"create_time","createTime"})
+    @JsonIgnore
+    private String createTime;
+
+    @ApiModelProperty(value = "扩展字段",hidden = true)
+    @JSONField(alternateNames = {"extend_field","extendField"})
+    @JsonIgnore
+    private String extendField;
+
+    @ApiModelProperty(value = "自定义名称",hidden = true)
+    @JSONField(alternateNames = {"customer_name","customerName"})
+    @JsonIgnore
+    private String customerName;
+
+    @ApiModelProperty(value = "是否使用自定义名称",hidden = true)
+    @JSONField(alternateNames = {"customer_use","customerUse"})
+    @JsonIgnore
+    private String customerUse;
+
+    @ApiModelProperty(value = "排序",hidden = true)
+    @JsonIgnore
+    private Integer order;
+
+
+}

+ 80 - 0
fm-common/src/main/java/com/persagy/fm/common/model/vo/OldResponseResult.java

@@ -0,0 +1,80 @@
+package com.persagy.fm.common.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.persagy.common.utils.ResponseResult;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @description 
+ * @author zhangqiankun
+ * @since 2020年8月26日:	下午5:17:08
+ */
+@Data
+@ToString
+public class OldResponseResult<T> extends ResponseResult implements Serializable {
+	private static final long serialVersionUID = -5424463986046237843L;
+	/**结果code*/
+	@ApiModelProperty("结果code")
+	@JsonProperty("ResultCode")
+	private String respCode;
+	/**结果标志:success-成功,failure-失败*/
+	@ApiModelProperty("结果标志:success-成功,failure-失败")
+	@JsonProperty("Result")
+	private String result;
+	/**响应描述*/
+	@ApiModelProperty("响应描述")
+	@JsonProperty("ResultMsg")
+	private String respMsg;
+	/**响应数据数组*/
+	@ApiModelProperty("响应数据数组")
+	@JsonProperty("Content")
+	@JsonInclude(JsonInclude.Include.NON_NULL)
+	private List<T> content;
+	/**响应数据,对象类型*/
+	@ApiModelProperty("响应数据,对象类型")
+	@JsonProperty("Item")
+	@JsonInclude(JsonInclude.Include.NON_NULL)
+	private T item;
+	/**记录总数*/
+	@ApiModelProperty("响应数据条数")
+	@JsonProperty("Count")
+	private Long count;
+	
+	public OldResponseResult() {
+		
+	}
+
+	public OldResponseResult(String respCode, String result, String respMsg) {
+		this.respCode = respCode;
+		this.result=result;
+		this.respMsg = respMsg;
+	}
+	
+	public OldResponseResult(String respCode, String result, String respMsg, List<T> content) {
+		this.respCode = respCode;
+		this.result=result;
+		this.respMsg = respMsg;
+		this.content = content;
+	}
+
+	public OldResponseResult(String respCode, String result, String respMsg, List<T> content, Long count) {
+		this.respCode = respCode;
+		this.result=result;
+		this.respMsg = respMsg;
+		this.content = content;
+		this.count = count;
+	}
+	public OldResponseResult(String respCode, String result, String respMsg, T item) {
+		this.respCode = respCode;
+		this.result=result;
+		this.respMsg = respMsg;
+		this.item = item;
+	}
+
+}

+ 107 - 0
fm-common/src/main/java/com/persagy/fm/common/old/utils/OldResponseResultUtil.java

@@ -0,0 +1,107 @@
+package com.persagy.fm.common.old.utils;
+
+import com.persagy.common.enums.ResponseCode;
+import com.persagy.fm.common.model.vo.OldResponseResult;
+
+import java.util.List;
+
+/**
+ * @version 
+ * @description 
+ * @company persagy
+ * @author zhangqiankun
+ * @since 2020年9月1日:	下午2:21:25
+ */
+public class OldResponseResultUtil {
+	
+	public static OldResponseResult<Void> successResult() {
+		OldResponseResult<Void> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		return result;
+	}
+
+	public static OldResponseResult<Void> successResult(String respMsg) {
+		OldResponseResult<Void> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		result.setRespMsg(respMsg);
+		return result;
+	}
+
+	public static <T> OldResponseResult<T> successResult(List<T> content) {
+		OldResponseResult<T> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		result.setContent(content);
+		return result;
+	}
+
+	public static <T> OldResponseResult<T> successResult(String respMsg, List<T> content) {
+		OldResponseResult<T> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		result.setRespMsg(respMsg);
+		result.setContent(content);
+		return result;
+	}
+
+	public static <T> OldResponseResult<T> successResult(List<T> content, Long count) {
+		OldResponseResult<T> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		result.setContent(content);
+		result.setCount(count);
+		return result;
+	}
+
+	public static <T> OldResponseResult<T> successResult(T item) {
+		OldResponseResult<T> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		result.setItem(item);
+		return result;
+	}
+
+	public static <T> OldResponseResult<T> successResult(String respMsg, T item) {
+		OldResponseResult<T> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A00000.getCode());
+		result.setResult(ResponseCode.A00000.getDesc());
+		result.setRespMsg(respMsg);
+		result.setItem(item);
+		return result;
+	}
+
+	public static OldResponseResult<Void> errorResult() {
+		OldResponseResult<Void> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A10000.getCode());
+		result.setResult(ResponseCode.A10000.getDesc());
+		return result;
+	}
+
+	public static OldResponseResult<Void> errorResult(String respMsg) {
+		OldResponseResult<Void> result = new OldResponseResult<>();
+		result.setRespCode(ResponseCode.A10000.getCode());
+		result.setResult(ResponseCode.A10000.getDesc());
+		result.setRespMsg(respMsg);
+		return result;
+	}
+
+	public static OldResponseResult<Void> errorResult(String respCode, String respMsg) {
+		OldResponseResult<Void> result = new OldResponseResult<>();
+		result.setRespCode(respCode);
+		result.setRespMsg(respMsg);
+		result.setResult(ResponseCode.A10000.getDesc());
+		return result;
+	}
+
+	public static <T> OldResponseResult<T> errorResult(String respCode, String respMsg, Object content) {
+		OldResponseResult<T> result = new OldResponseResult<T>();
+		result.setRespCode(respCode);
+		result.setRespMsg(respMsg);
+		result.setResult(ResponseCode.A10000.getDesc());
+		result.setContent(content);
+		return result;
+	}
+	
+}

+ 95 - 0
fm-common/src/main/java/com/persagy/fm/common/service/DownloadService.java

@@ -0,0 +1,95 @@
+package com.persagy.fm.common.service;
+
+import com.persagy.fm.common.constant.CommonConstant;
+import com.persagy.fm.common.utils.FileUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
+import org.springframework.core.io.Resource;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+/***
+ * Description: 下载Excel的公共逻辑抽象类
+ * @author : lijie
+ * @date :2021/4/28 17:22
+ * Update By lijie 2021/4/28 17:22
+ */
+@Slf4j
+public abstract class DownloadService {
+
+    private static final String CONFIG_PATH_PREFIX="file:./config";
+    private static final String CLASS_PATH_PREFIX="classpath:.";
+
+    /***
+     * Description: 公共下载方法的壳子
+     * @return : void
+     * @author : lijie
+     * @date :2021/4/28 16:55
+     * Update By lijie 2021/4/28 16:55
+     */
+    public void downloadFile() throws IOException {
+        String filePath = getFilePath();
+        Resource[] resolverResources = FileUtil.getResource(CONFIG_PATH_PREFIX+filePath, CLASS_PATH_PREFIX+filePath);
+        if (resolverResources.length<=0){
+            return;
+        }
+        Resource resolverResource = resolverResources[0];
+        String filename = resolverResource.getFilename();
+        InputStream inputStream = resolverResource.getInputStream();
+        Workbook workbook = null;
+        try {
+            workbook = WorkbookFactory.create(inputStream);
+            handleWorkbook(workbook);
+            HttpServletResponse response = getHttpServletResponse();
+            // 为文件命名
+            response.setHeader(CommonConstant.REPONSE_HEAD_CONTENT_DISPOSITION,
+                    CommonConstant.REPONSE_HEAD_CONTENT_DISPOSITION_ATTACHMENT + URLEncoder.encode(filename, "UTF-8"));
+            response.addHeader(CommonConstant.REPONSE_HEAD_CONTENT_TYPE, CommonConstant.REPONSE_HEAD_CONTENT_TYPE_SHEET);
+            workbook.write(response.getOutputStream());
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        } finally {
+            try {
+                inputStream.close();
+            } catch (IOException ignored) {
+                log.error("关闭文件流失败");
+            }
+            if (workbook != null) {
+                try {
+                    workbook.close();
+                } catch (IOException ignored) {
+                    log.error("关闭工作簿失败");
+                }
+            }
+        }
+    }
+    /***
+     * Description: 核心处理业务逻辑的方法
+     * @param workbook : 工作簿
+     * @return : void
+     * @author : lijie
+     * @date :2021/4/28 17:20
+     * Update By lijie 2021/4/28 17:20
+     */
+    protected abstract void handleWorkbook(Workbook workbook);
+    /***
+     * Description: 获取文件路径
+     * @return : java.lang.String
+     * @author : lijie
+     * @date :2021/4/28 17:21
+     * Update By lijie 2021/4/28 17:21
+     */
+    protected abstract String getFilePath();
+    /***
+     * Description: 获取响应对象
+     * @return : javax.servlet.http.HttpServletResponse
+     * @author : lijie
+     * @date :2021/4/28 17:21
+     * Update By lijie 2021/4/28 17:21
+     */
+    protected abstract HttpServletResponse getHttpServletResponse();
+
+}

+ 43 - 0
fm-common/src/main/java/com/persagy/fm/common/utils/FileUtil.java

@@ -0,0 +1,43 @@
+package com.persagy.fm.common.utils;
+
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.core.io.support.ResourcePatternResolver;
+
+import java.io.IOException;
+/***
+ * Description: 文件处理公共类
+ * @author : lijie
+ * @date :2021/4/28 16:38
+ * Update By lijie 2021/4/28 16:38
+ */
+public class FileUtil {
+
+    /***
+     * Description: 获取资源文件方法
+     * @param configFilePath : 配置文件路径
+     * @param classpathFilePath : 本地路径
+     * @return : org.springframework.core.io.Resource[]
+     * @author : lijie
+     * @date :2021/3/1 14:25
+     * Update By lijie 2021/3/1 14:25
+     */
+    public static Resource[] getResource(String configFilePath, String classpathFilePath) throws IOException {
+        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+        Resource[] resolverResources = resolver.getResources(configFilePath);
+        if (resolverResources.length > 0) {
+            boolean exist = true;
+            for (Resource resource : resolverResources) {
+                if (!resource.exists()) {
+                    exist = false;
+                    break;
+                }
+            }
+            if(exist) {
+                return resolverResources;
+            }
+        }
+        return resolver.getResources(classpathFilePath);
+    }
+
+}

+ 7 - 0
fm-mybatis/pom.xml

@@ -8,6 +8,13 @@
         <relativePath>../fm-parent</relativePath>
     </parent>
     <artifactId>fm-mybatis</artifactId>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </distributionManagement>
     <dependencies>
         <dependency>
             <groupId>com.persagy</groupId>

+ 7 - 0
pom.xml

@@ -12,6 +12,13 @@
     <artifactId>fm-basics</artifactId>
     <packaging>pom</packaging>
     <description>FM组件项目,只提供jar,不提供服务</description>
+    <distributionManagement>
+        <repository>
+            <id>persagy</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </distributionManagement>
     <modules>
         <module>fm-parent</module>
         <module>fm-server</module>