Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
pms-ci-test
Commits
b49c7ce0
提交
b49c7ce0
authored
6月 13, 2023
作者:
xiaowang
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'develop' of
http://git.mmcuav.cn/iuav/pms
into develop
上级
c771b124
cd8fc0cb
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
322 行增加
和
18 行删除
+322
-18
kustomization.yaml
kustomization/overlays/dev/kustomization.yaml
+1
-1
pms.log.2023-06-10.0.gz
logs/pms.log.2023-06-10.0.gz
+0
-0
GlobalFormDateConvert.java
src/main/java/com/mmc/pms/config/GlobalFormDateConvert.java
+71
-0
GlobalJsonDateConvert.java
src/main/java/com/mmc/pms/config/GlobalJsonDateConvert.java
+61
-0
WebConfig.java
src/main/java/com/mmc/pms/config/WebConfig.java
+51
-0
UploadController.java
src/main/java/com/mmc/pms/controller/UploadController.java
+74
-0
XmlUtil.java
src/main/java/com/mmc/pms/util/XmlUtil.java
+28
-0
BackstageTaskServiceDao.xml
src/main/resources/mapper/work/BackstageTaskServiceDao.xml
+36
-17
没有找到文件。
kustomization/overlays/dev/kustomization.yaml
浏览文件 @
b49c7ce0
...
@@ -18,4 +18,4 @@ patches:
...
@@ -18,4 +18,4 @@ patches:
images
:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/pms
newName
:
mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/pms
newTag
:
9f035a600bdd73b61fe0f83626886d774b5cad45
newTag
:
085325ec9d91bf422bd2e4ad311d7e4f5ef70cb3
logs/pms.log.2023-06-10.0.gz
0 → 100644
浏览文件 @
b49c7ce0
File added
src/main/java/com/mmc/pms/config/GlobalFormDateConvert.java
0 → 100644
浏览文件 @
b49c7ce0
package
com
.
mmc
.
pms
.
config
;
import
org.springframework.core.convert.converter.Converter
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
//Converter<S,T> S: 代表的是源,将要转换的数据类型 T:目标类型,将会转成什么数据类型
@Component
public
class
GlobalFormDateConvert
implements
Converter
<
String
,
Date
>
{
// 静态初始化定义日期字符串参数列表(需要转换的)
private
static
final
List
<
String
>
paramList
=
new
ArrayList
<>();
// 静态初始化可能初夏你的日期格式
private
static
final
String
param1
=
"yyyy-MM"
;
private
static
final
String
param2
=
"yyyy-MM-dd"
;
private
static
final
String
param3
=
"yyyy-MM-dd HH:mm"
;
private
static
final
String
param4
=
"yyyy-MM-dd HH:mm:ss"
;
// 静态代码块,将日期参数加入到列表中
static
{
paramList
.
add
(
param1
);
paramList
.
add
(
param2
);
paramList
.
add
(
param3
);
paramList
.
add
(
param4
);
}
// 自定义函数,将字符串转Date 参1:传入的日期字符串 参2:格式参数
public
Date
parseDate
(
String
source
,
String
format
)
{
System
.
out
.
println
(
"parseDate转换日期"
);
Date
date
=
null
;
try
{
// 日期格式转换器
DateFormat
dateFormat
=
new
SimpleDateFormat
(
format
);
date
=
dateFormat
.
parse
(
source
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
date
;
}
// convert转换方法 ,s是将会传递过来的日期的字符串
@Override
public
Date
convert
(
String
source
)
{
System
.
out
.
println
(
"convert日期格式转换器"
);
if
(
StringUtils
.
isEmpty
(
source
))
{
return
null
;
}
source
=
source
.
trim
();
// 去除首尾空格
// 正则表达式判断是哪一种格式参数
if
(
source
.
matches
(
"^\\d{4}-\\d{1,2}$"
))
{
return
parseDate
(
source
,
paramList
.
get
(
0
));
}
else
if
(
source
.
matches
(
"^\\d{4}-\\d{1,2}-\\d{1,2}$"
))
{
return
parseDate
(
source
,
paramList
.
get
(
1
));
}
else
if
(
source
.
matches
(
"^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$"
))
{
return
parseDate
(
source
,
paramList
.
get
(
2
));
}
else
if
(
source
.
matches
(
"^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$"
))
{
return
parseDate
(
source
,
paramList
.
get
(
3
));
}
else
{
throw
new
IllegalArgumentException
(
"还未定义该种字符串转Date的日期转换格式 --> 【日期格式】:"
+
source
);
}
}
}
src/main/java/com/mmc/pms/config/GlobalJsonDateConvert.java
0 → 100644
浏览文件 @
b49c7ce0
package
com
.
mmc
.
pms
.
config
;
import
com.fasterxml.jackson.databind.util.StdDateFormat
;
import
org.springframework.util.StringUtils
;
import
java.text.FieldPosition
;
import
java.text.ParsePosition
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
public
class
GlobalJsonDateConvert
extends
StdDateFormat
{
private
static
final
long
serialVersionUID
=
-
6738131740618766141L
;
// 静态初始化final,共享
public
static
final
GlobalJsonDateConvert
instance
=
new
GlobalJsonDateConvert
();
// 覆盖parse(String)这个方法即可实现
@Override
public
Date
parse
(
String
dateStr
,
ParsePosition
pos
)
{
return
getDate
(
dateStr
,
pos
);
}
@Override
public
Date
parse
(
String
dateStr
)
{
ParsePosition
pos
=
new
ParsePosition
(
0
);
return
getDate
(
dateStr
,
pos
);
}
private
Date
getDate
(
String
dateStr
,
ParsePosition
pos
)
{
SimpleDateFormat
sdf
=
null
;
if
(
StringUtils
.
isEmpty
(
dateStr
))
{
return
null
;
}
else
if
(
dateStr
.
matches
(
"^\\d{4}-\\d{1,2}$"
))
{
sdf
=
new
SimpleDateFormat
(
"yyyy-MM"
);
return
sdf
.
parse
(
dateStr
,
pos
);
}
else
if
(
dateStr
.
matches
(
"^\\d{4}-\\d{1,2}-\\d{1,2}$"
))
{
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
return
sdf
.
parse
(
dateStr
,
pos
);
}
else
if
(
dateStr
.
matches
(
"^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$"
))
{
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm"
);
return
sdf
.
parse
(
dateStr
,
pos
);
}
else
if
(
dateStr
.
matches
(
"^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$"
))
{
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
return
sdf
.
parse
(
dateStr
,
pos
);
}
else
if
(
dateStr
.
length
()
==
23
)
{
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss.SSS"
);
return
sdf
.
parse
(
dateStr
,
pos
);
}
return
super
.
parse
(
dateStr
,
pos
);
}
@Override
public
StringBuffer
format
(
Date
date
,
StringBuffer
toAppendTo
,
FieldPosition
fieldPosition
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
return
sdf
.
format
(
date
,
toAppendTo
,
fieldPosition
);
}
@Override
public
GlobalJsonDateConvert
clone
()
{
return
new
GlobalJsonDateConvert
();
}
}
src/main/java/com/mmc/pms/config/WebConfig.java
0 → 100644
浏览文件 @
b49c7ce0
package
com
.
mmc
.
pms
.
config
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.support.ConversionServiceFactoryBean
;
import
org.springframework.core.convert.ConversionService
;
import
org.springframework.core.convert.converter.Converter
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
@Configuration
public
class
WebConfig
{
// JSON格式 全局日期转换器配置
@Bean
public
MappingJackson2HttpMessageConverter
getMappingJackson2HttpMessageConverter
()
{
MappingJackson2HttpMessageConverter
mappingJackson2HttpMessageConverter
=
new
MappingJackson2HttpMessageConverter
();
// 设置日期格式
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
setDateFormat
(
GlobalJsonDateConvert
.
instance
);
objectMapper
.
setSerializationInclusion
(
JsonInclude
.
Include
.
ALWAYS
);
objectMapper
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
mappingJackson2HttpMessageConverter
.
setObjectMapper
(
objectMapper
);
// 设置中文编码格式
List
<
MediaType
>
list
=
new
ArrayList
<
MediaType
>();
list
.
add
(
MediaType
.
APPLICATION_JSON_UTF8
);
mappingJackson2HttpMessageConverter
.
setSupportedMediaTypes
(
list
);
return
mappingJackson2HttpMessageConverter
;
}
// 表单格式 全局日期转换器
@Bean
@Autowired
public
ConversionService
getConversionService
(
GlobalFormDateConvert
globalDateConvert
)
{
ConversionServiceFactoryBean
factoryBean
=
new
ConversionServiceFactoryBean
();
Set
<
Converter
>
converters
=
new
HashSet
<>();
converters
.
add
(
globalDateConvert
);
factoryBean
.
setConverters
(
converters
);
return
factoryBean
.
getObject
();
}
}
src/main/java/com/mmc/pms/controller/UploadController.java
浏览文件 @
b49c7ce0
...
@@ -4,10 +4,16 @@ import com.alibaba.fastjson2.JSONObject;
...
@@ -4,10 +4,16 @@ import com.alibaba.fastjson2.JSONObject;
import
com.aliyun.oss.ClientBuilderConfiguration
;
import
com.aliyun.oss.ClientBuilderConfiguration
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSS
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyun.oss.OSSClientBuilder
;
import
com.aliyun.oss.OSSException
;
import
com.aliyun.oss.model.ObjectMetadata
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
com.aliyun.oss.model.UploadFileRequest
;
import
com.aliyun.oss.model.UploadFileResult
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultBody
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.common.ResultEnum
;
import
com.mmc.pms.util.FileLoadUtil
;
import
com.mmc.pms.util.FileLoadUtil
;
import
com.mmc.pms.util.OssConstant
;
import
com.mmc.pms.util.OssConstant
;
import
com.mmc.pms.util.XmlUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
...
@@ -20,6 +26,7 @@ import javax.servlet.ServletOutputStream;
...
@@ -20,6 +26,7 @@ import javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.io.*
;
import
java.nio.charset.StandardCharsets
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.*
;
...
@@ -74,6 +81,73 @@ public class UploadController {
...
@@ -74,6 +81,73 @@ public class UploadController {
return
ResultBody
.
success
(
jsObj
);
return
ResultBody
.
success
(
jsObj
);
}
}
@PostMapping
(
"/breakpoint"
)
public
ResultBody
breakpoint
(
@RequestParam
(
"uploadFile"
)
MultipartFile
uploadFile
,
HttpServletRequest
request
)
throws
IOException
{
OSS
ossClient
=
new
OSSClientBuilder
()
.
build
(
OssConstant
.
ENDPOINT
,
OssConstant
.
ACCESSKEYID
,
OssConstant
.
ACCESSKEYSECRET
);
File
file
=
XmlUtil
.
ossUpload
(
uploadFile
);
String
location
=
null
;
try
{
ObjectMetadata
meta
=
new
ObjectMetadata
();
// 指定上传的内容类型。
// meta.setContentType("text/plain");
// 文件上传时设置访问权限ACL。
// meta.setObjectAcl(CannedAccessControlList.Private);
String
oldName
=
uploadFile
.
getOriginalFilename
();
String
newName
=
"file/"
+
UUID
.
randomUUID
().
toString
()
+
oldName
.
substring
(
oldName
.
lastIndexOf
(
"."
),
oldName
.
length
());
// 通过UploadFileRequest设置多个参数。
// 依次填写Bucket名称(例如examplebucket)以及Object完整路径(例如exampledir/exampleobject.txt),Object完整路径中不能包含Bucket名称。
UploadFileRequest
uploadFileRequest
=
new
UploadFileRequest
(
"pad-video-x"
,
newName
);
// 通过UploadFileRequest设置单个参数。
// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
uploadFileRequest
.
setUploadFile
(
file
.
toString
());
// 指定上传并发线程数,默认值为1。
uploadFileRequest
.
setTaskNum
(
15
);
// 指定上传的分片大小,单位为字节,取值范围为100 KB~5 GB。默认值为100 KB。
uploadFileRequest
.
setPartSize
(
1
*
1024
*
1024
);
// 开启断点续传,默认关闭。
uploadFileRequest
.
setEnableCheckpoint
(
true
);
// 记录本地分片上传结果的文件。上传过程中的进度信息会保存在该文件中,如果某一分片上传失败,再次上传时会根据文件中记录的点继续上传。上传完成后,该文件会被删除。
// 如果未设置该值,默认与待上传的本地文件同路径,名称为${uploadFile}.ucp。
uploadFileRequest
.
setCheckpointFile
(
"uploadFile.ucp"
);
// 文件的元数据。
uploadFileRequest
.
setObjectMetadata
(
meta
);
// 设置上传回调,参数为Callback类型。
//uploadFileRequest.setCallback("yourCallbackEvent");
// 断点续传上传。
UploadFileResult
uploadFileResult
=
ossClient
.
uploadFile
(
uploadFileRequest
);
location
=
uploadFileResult
.
getMultipartUploadResult
().
getLocation
();
System
.
out
.
println
(
uploadFileResult
);
}
catch
(
OSSException
oe
)
{
System
.
out
.
println
(
"Caught an OSSException, which means your request made it to OSS, "
+
"but was rejected with an error response for some reason."
);
System
.
out
.
println
(
"Error Message:"
+
oe
.
getErrorMessage
());
System
.
out
.
println
(
"Error Code:"
+
oe
.
getErrorCode
());
System
.
out
.
println
(
"Request ID:"
+
oe
.
getRequestId
());
System
.
out
.
println
(
"Host ID:"
+
oe
.
getHostId
());
}
catch
(
Throwable
ce
)
{
System
.
out
.
println
(
"Caught an ClientException, which means the client encountered "
+
"a serious internal problem while trying to communicate with OSS, "
+
"such as not being able to access the network."
);
System
.
out
.
println
(
"Error Message:"
+
ce
.
getMessage
());
}
finally
{
// 关闭OSSClient。
if
(
ossClient
!=
null
)
{
ossClient
.
shutdown
();
}
}
return
ResultBody
.
success
(
location
);
}
@ApiOperation
(
value
=
"V1.0.1-上传多个文件到阿里云oss"
)
@ApiOperation
(
value
=
"V1.0.1-上传多个文件到阿里云oss"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
@ApiImplicitParam
(
...
...
src/main/java/com/mmc/pms/util/XmlUtil.java
0 → 100644
浏览文件 @
b49c7ce0
package
com
.
mmc
.
pms
.
util
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.UUID
;
/**
* @Author small
* @Date 2023/6/12 19:36
* @Version 1.0
*/
public
class
XmlUtil
{
public
static
File
ossUpload
(
MultipartFile
file
)
throws
IOException
{
// 获取文件名
String
fileName
=
file
.
getOriginalFilename
();
// 获取文件后缀
String
prefix
=
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
// 用uuid作为文件名,防止生成的临时文件重复
File
excelFile
=
File
.
createTempFile
(
UUID
.
randomUUID
().
toString
(),
prefix
);
// MultipartFile to File
file
.
transferTo
(
excelFile
);
//程序结束时,删除临时文件
return
excelFile
;
}
}
src/main/resources/mapper/work/BackstageTaskServiceDao.xml
浏览文件 @
b49c7ce0
...
@@ -173,6 +173,15 @@
...
@@ -173,6 +173,15 @@
#{item}
#{item}
</foreach>
</foreach>
</if>
</if>
<if
test=
"param.serviceName != null and param.serviceName!=''"
>
and service_name LIKE CONCAT('%',#{param.serviceName},'%')
</if>
<if
test=
"param.industryId!=null"
>
and industry_id = #{param.industryId}
</if>
<if
test=
"param.applicationId!=null"
>
and application_id = #{param.applicationId}
</if>
</where>
</where>
</select>
</select>
...
@@ -198,30 +207,39 @@
...
@@ -198,30 +207,39 @@
#{item}
#{item}
</foreach>
</foreach>
</if>
</if>
<if
test=
"param.serviceName != null and param.serviceName!=''"
>
and service_name LIKE CONCAT('%',#{param.serviceName},'%')
</if>
<if
test=
"param.industryId!=null"
>
and industry_id = #{param.industryId}
</if>
<if
test=
"param.applicationId!=null"
>
and application_id = #{param.applicationId}
</if>
</where>
</where>
order by create_time desc
order by create_time desc
limit #{param.pageNo}, #{param.pageSize}
limit #{param.pageNo}, #{param.pageSize}
</select>
</select>
<select
id=
"QueryWorkServiceListById"
resultType=
"com.mmc.pms.model.work.dto.ServiceDTO"
>
<select
id=
"QueryWorkServiceListById"
resultType=
"com.mmc.pms.model.work.dto.ServiceDTO"
>
select id,
select id,
service_name,
service_name,
application_id,
application_id,
industry_id,
industry_id,
display_state,
display_state,
cover_plan,
cover_plan,
share_card,
share_card,
video,
video,
service_introduction,
service_introduction,
create_time,
create_time,
update_time,
update_time,
account_id
account_id
from service
from service
where
where
is_deleted = 0
is_deleted = 0
<if
test=
"ids != null"
>
<if
test=
"ids != null"
>
<foreach
collection=
"ids"
item=
"id"
open=
"and id in ("
close=
")"
separator=
","
>
<foreach
collection=
"ids"
item=
"id"
open=
"and id in ("
close=
")"
separator=
","
>
#{id}
#{id}
</foreach>
</foreach>
</if>
</if>
</select>
</select>
</mapper>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论