Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pms
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
iuav
pms
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:
images
:
-
name
:
REGISTRY/NAMESPACE/IMAGE:TAG
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;
import
com.aliyun.oss.ClientBuilderConfiguration
;
import
com.aliyun.oss.OSS
;
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.ResultEnum
;
import
com.mmc.pms.util.FileLoadUtil
;
import
com.mmc.pms.util.OssConstant
;
import
com.mmc.pms.util.XmlUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
...
...
@@ -20,6 +26,7 @@ import javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.nio.charset.StandardCharsets
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
...
...
@@ -74,6 +81,73 @@ public class UploadController {
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"
)
@ApiImplicitParams
({
@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 @@
#{item}
</foreach>
</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>
</select>
...
...
@@ -198,30 +207,39 @@
#{item}
</foreach>
</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>
order by create_time desc
limit #{param.pageNo}, #{param.pageSize}
</select>
<select
id=
"QueryWorkServiceListById"
resultType=
"com.mmc.pms.model.work.dto.ServiceDTO"
>
select id,
service_name,
application_id,
industry_id,
display_state,
cover_plan,
share_card,
video,
service_introduction,
create_time,
update_time,
account_id
service_name,
application_id,
industry_id,
display_state,
cover_plan,
share_card,
video,
service_introduction,
create_time,
update_time,
account_id
from service
where
is_deleted = 0
<if
test=
"ids != null"
>
<foreach
collection=
"ids"
item=
"id"
open=
"and id in ("
close=
")"
separator=
","
>
#{id}
</foreach>
</if>
is_deleted = 0
<if
test=
"ids != null"
>
<foreach
collection=
"ids"
item=
"id"
open=
"and id in ("
close=
")"
separator=
","
>
#{id}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论