Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
李苗
/
Vion-DevOps
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 045ca186
authored
Jul 08, 2024
by
HlQ
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
[add] 添加文件更新接口
[chg] 代码优化
1 parent
4aa3ec52
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
229 additions
and
69 deletions
pom.xml
src/main/java/vion/controller/FileController.java
src/main/java/vion/controller/InspectController.java
src/main/java/vion/controller/PaymentController.java
src/main/java/vion/controller/RoleController.java
src/main/java/vion/dto/FileInfoDTO.java
src/main/java/vion/service/impl/ContractServiceImpl.java
src/main/java/vion/service/impl/StoreServiceImpl.java
src/main/java/vion/service/impl/TaskServiceImpl.java
pom.xml
View file @
045ca18
...
@@ -14,8 +14,6 @@
...
@@ -14,8 +14,6 @@
<artifactId>
Vion-DevOps
</artifactId>
<artifactId>
Vion-DevOps
</artifactId>
<version>
1
</version>
<version>
1
</version>
<properties>
<properties>
<pg.version>
42.7.3
</pg.version>
<lombok.version>
1.18.34
</lombok.version>
<hutool.version>
6.0.0-M13
</hutool.version>
<hutool.version>
6.0.0-M13
</hutool.version>
<redisson.verion>
3.32.0
</redisson.verion>
<redisson.verion>
3.32.0
</redisson.verion>
<mapstruct-plus.version>
1.4.3
</mapstruct-plus.version>
<mapstruct-plus.version>
1.4.3
</mapstruct-plus.version>
...
@@ -30,12 +28,10 @@
...
@@ -30,12 +28,10 @@
<dependency>
<dependency>
<groupId>
org.postgresql
</groupId>
<groupId>
org.postgresql
</groupId>
<artifactId>
postgresql
</artifactId>
<artifactId>
postgresql
</artifactId>
<version>
${pg.version}
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<artifactId>
lombok
</artifactId>
<version>
${lombok.version}
</version>
<scope>
provided
</scope>
<scope>
provided
</scope>
</dependency>
</dependency>
<dependency>
<dependency>
...
...
src/main/java/vion/controller/FileController.java
View file @
045ca18
...
@@ -10,6 +10,7 @@ import org.dromara.hutool.core.collection.CollUtil;
...
@@ -10,6 +10,7 @@ import org.dromara.hutool.core.collection.CollUtil;
import
org.dromara.hutool.core.date.DateUtil
;
import
org.dromara.hutool.core.date.DateUtil
;
import
org.dromara.hutool.core.io.file.FileNameUtil
;
import
org.dromara.hutool.core.io.file.FileNameUtil
;
import
org.dromara.hutool.core.io.file.FileUtil
;
import
org.dromara.hutool.core.io.file.FileUtil
;
import
org.dromara.hutool.core.lang.Assert
;
import
org.dromara.hutool.core.net.url.UrlEncoder
;
import
org.dromara.hutool.core.net.url.UrlEncoder
;
import
org.dromara.hutool.core.text.StrUtil
;
import
org.dromara.hutool.core.text.StrUtil
;
import
org.dromara.hutool.core.util.ObjUtil
;
import
org.dromara.hutool.core.util.ObjUtil
;
...
@@ -94,13 +95,23 @@ public class FileController {
...
@@ -94,13 +95,23 @@ public class FileController {
return
"文件删除成功"
;
return
"文件删除成功"
;
}
}
@PostMapping
(
"/file/{id}"
)
@SaCheckPermission
(
value
=
"file:update"
,
orRole
=
"admin"
)
public
String
updateFile
(
@PathVariable
Long
id
,
@RequestBody
FileInfoDTO
dto
)
{
Assert
.
notNull
(
dto
.
getUpdFlag
(),
"更新标识符不能为空!"
);
return
fileService
.
lambdaUpdate
()
.
eq
(
FileInfo:
:
getId
,
id
)
.
set
(
ObjUtil
.
isNotNull
(
dto
.
getSourceType
()),
FileInfo:
:
getSourceType
,
dto
.
getSourceType
())
.
set
(
ObjUtil
.
isNotNull
(
dto
.
getContractId
()),
FileInfo:
:
getContractId
,
dto
.
getContractId
())
.
update
()
?
"修改成功"
:
"修改失败"
;
}
@PostMapping
(
"/file/formFileUpload"
)
@PostMapping
(
"/file/formFileUpload"
)
@SaCheckPermission
(
value
=
"file:form:upload"
,
orRole
=
"admin"
)
@SaCheckPermission
(
value
=
"file:form:upload"
,
orRole
=
"admin"
)
public
String
uploadFile
(
FileInfoDTO
dto
,
@RequestParam
(
name
=
"file"
)
MultipartFile
infile
)
throws
IOException
{
public
String
uploadFile
(
FileInfoDTO
dto
,
@RequestParam
(
name
=
"file"
)
MultipartFile
infile
)
throws
IOException
{
String
orgName
=
infile
.
getOriginalFilename
();
String
filename
=
FileNameUtil
.
mainName
(
infile
.
getOriginalFilename
())
+
"_"
+
String
mainName
=
FileNameUtil
.
mainName
(
orgName
);
DateUtil
.
format
(
new
Date
(),
"yyyyMMdd_HHmmssSSS"
)
+
"."
+
String
fileExt
=
FileNameUtil
.
extName
(
orgName
);
FileNameUtil
.
extName
(
infile
.
getOriginalFilename
());
String
filename
=
StrUtil
.
format
(
"{}_{}.{}"
,
mainName
,
DateUtil
.
format
(
new
Date
(),
"yyyyMMdd_HHmmssSSS"
),
fileExt
);
String
path
=
getPath
(
dto
,
filename
);
String
path
=
getPath
(
dto
,
filename
);
File
file
=
FileUtil
.
touch
(
path
);
File
file
=
FileUtil
.
touch
(
path
);
infile
.
transferTo
(
file
);
infile
.
transferTo
(
file
);
...
@@ -113,12 +124,7 @@ public class FileController {
...
@@ -113,12 +124,7 @@ public class FileController {
tempFileInfo
.
setType
(
FileNameUtil
.
extName
(
file
));
tempFileInfo
.
setType
(
FileNameUtil
.
extName
(
file
));
tempFileInfo
.
setSha256
(
SecureUtil
.
sha256
(
file
).
toUpperCase
());
tempFileInfo
.
setSha256
(
SecureUtil
.
sha256
(
file
).
toUpperCase
());
tempFileInfo
.
setUploader
(
dto
.
getUploader
());
tempFileInfo
.
setUploader
(
dto
.
getUploader
());
return
fileService
.
save
(
tempFileInfo
)
?
path
:
"文件保存失败"
;
if
(
fileService
.
save
(
tempFileInfo
))
{
return
path
;
}
else
{
return
"文件保存失败"
;
}
}
}
private
String
getPath
(
FileInfoDTO
dto
,
String
filename
)
{
private
String
getPath
(
FileInfoDTO
dto
,
String
filename
)
{
...
@@ -135,10 +141,9 @@ public class FileController {
...
@@ -135,10 +141,9 @@ public class FileController {
@SaCheckPermission
(
value
=
"file:upload"
,
orRole
=
"admin"
)
@SaCheckPermission
(
value
=
"file:upload"
,
orRole
=
"admin"
)
public
String
uploadFile1
(
FileInfo
fileInfo
,
@RequestParam
(
name
=
"files"
)
MultipartFile
[]
files
)
throws
IOException
{
public
String
uploadFile1
(
FileInfo
fileInfo
,
@RequestParam
(
name
=
"files"
)
MultipartFile
[]
files
)
throws
IOException
{
for
(
MultipartFile
infile
:
files
)
{
for
(
MultipartFile
infile
:
files
)
{
String
orgName
=
infile
.
getOriginalFilename
();
String
filename
=
FileNameUtil
.
mainName
(
infile
.
getOriginalFilename
())
+
"_"
+
String
mainName
=
FileNameUtil
.
mainName
(
orgName
);
DateUtil
.
format
(
new
Date
(),
"yyyyMMdd_HHmmssSSS"
)
+
"."
+
String
fileExt
=
FileNameUtil
.
extName
(
orgName
);
FileNameUtil
.
extName
(
infile
.
getOriginalFilename
());
String
filename
=
StrUtil
.
format
(
"{}_{}.{}"
,
mainName
,
DateUtil
.
format
(
new
Date
(),
"yyyyMMdd_HHmmssSSS"
),
fileExt
);
String
path
=
fileUrl
+
FileUtil
.
FILE_SEPARATOR
+
fileInfo
.
getStoreId
()
+
FileUtil
.
FILE_SEPARATOR
+
fileInfo
.
getSourceId
()
+
FileUtil
.
FILE_SEPARATOR
+
filename
;
String
path
=
fileUrl
+
FileUtil
.
FILE_SEPARATOR
+
fileInfo
.
getStoreId
()
+
FileUtil
.
FILE_SEPARATOR
+
fileInfo
.
getSourceId
()
+
FileUtil
.
FILE_SEPARATOR
+
filename
;
File
file
=
FileUtil
.
touch
(
path
);
File
file
=
FileUtil
.
touch
(
path
);
infile
.
transferTo
(
file
);
infile
.
transferTo
(
file
);
...
@@ -153,7 +158,6 @@ public class FileController {
...
@@ -153,7 +158,6 @@ public class FileController {
tempFileInfo
.
setType
(
FileNameUtil
.
extName
(
file
));
tempFileInfo
.
setType
(
FileNameUtil
.
extName
(
file
));
tempFileInfo
.
setSha256
(
SecureUtil
.
sha256
(
file
).
toUpperCase
());
tempFileInfo
.
setSha256
(
SecureUtil
.
sha256
(
file
).
toUpperCase
());
tempFileInfo
.
setUploader
(
fileInfo
.
getUploader
());
tempFileInfo
.
setUploader
(
fileInfo
.
getUploader
());
fileService
.
save
(
tempFileInfo
);
fileService
.
save
(
tempFileInfo
);
}
}
return
"文件保存成功"
;
return
"文件保存成功"
;
...
...
src/main/java/vion/controller/InspectController.java
View file @
045ca18
...
@@ -52,10 +52,6 @@ public class InspectController {
...
@@ -52,10 +52,6 @@ public class InspectController {
//审核状态为已完成的时候更新完成时间(0进行中、1待审核、2已完成、3、驳回)
//审核状态为已完成的时候更新完成时间(0进行中、1待审核、2已完成、3、驳回)
.
set
(
data
.
getStatus
()
==
2
,
Inspect:
:
getFinishDate
,
new
Date
())
.
set
(
data
.
getStatus
()
==
2
,
Inspect:
:
getFinishDate
,
new
Date
())
.
update
();
.
update
();
if
(
result
)
{
return
result
?
"更新巡检状态成功"
:
"更新巡检状态失败"
;
return
"更新巡检状态成功"
;
}
else
{
return
"更新巡检状态失败"
;
}
}
}
}
}
src/main/java/vion/controller/PaymentController.java
View file @
045ca18
...
@@ -85,14 +85,4 @@ public class PaymentController {
...
@@ -85,14 +85,4 @@ public class PaymentController {
}
}
}
}
@GetMapping
(
"/openSafe"
)
public
String
openSafe
(
String
code
)
{
// 校验 redis 里查询 code 相关信息
if
(
true
)
{
StpUtil
.
openSafe
(
"payment"
,
600
);
return
"认证成功"
;
}
return
"认证失败"
;
}
}
}
src/main/java/vion/controller/RoleController.java
View file @
045ca18
...
@@ -3,11 +3,13 @@ package vion.controller;
...
@@ -3,11 +3,13 @@ package vion.controller;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
org.dromara.hutool.core.collection.CollUtil
;
import
org.dromara.hutool.core.collection.CollUtil
;
import
org.dromara.hutool.core.collection.ListUtil
;
import
org.dromara.hutool.core.collection.ListUtil
;
import
org.dromara.hutool.core.lang.Assert
;
import
org.dromara.hutool.core.lang.Opt
;
import
org.dromara.hutool.core.lang.Opt
;
import
org.dromara.hutool.core.text.StrUtil
;
import
org.dromara.hutool.core.text.StrUtil
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
io.github.linpeilie.Converter
;
import
io.github.linpeilie.Converter
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.hutool.core.util.ObjUtil
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
vion.dto.RoleDTO
;
import
vion.dto.RoleDTO
;
import
vion.model.*
;
import
vion.model.*
;
...
@@ -50,9 +52,7 @@ public class RoleController {
...
@@ -50,9 +52,7 @@ public class RoleController {
@PostMapping
(
"/role"
)
@PostMapping
(
"/role"
)
@SaCheckPermission
(
value
=
"role:save"
,
orRole
=
"admin"
)
@SaCheckPermission
(
value
=
"role:save"
,
orRole
=
"admin"
)
public
String
save
(
@RequestBody
RoleDTO
dto
)
{
public
String
save
(
@RequestBody
RoleDTO
dto
)
{
if
(
StrUtil
.
equals
(
dto
.
getCode
(),
"admin"
))
{
Assert
.
isFalse
(
StrUtil
.
equals
(
dto
.
getCode
(),
"admin"
),
"管理员角色编码[admin]已存在,不允许再次创建"
);
return
"管理员角色编码[admin]已存在,不允许再次创建"
;
}
Role
role
=
converter
.
convert
(
dto
,
Role
.
class
);
Role
role
=
converter
.
convert
(
dto
,
Role
.
class
);
return
roleService
.
save
(
role
)
?
"创建成功"
:
"创建失败"
;
return
roleService
.
save
(
role
)
?
"创建成功"
:
"创建失败"
;
}
}
...
@@ -60,9 +60,7 @@ public class RoleController {
...
@@ -60,9 +60,7 @@ public class RoleController {
@PostMapping
(
"/role/{id}"
)
@PostMapping
(
"/role/{id}"
)
@SaCheckPermission
(
value
=
"role:edit"
,
orRole
=
"admin"
)
@SaCheckPermission
(
value
=
"role:edit"
,
orRole
=
"admin"
)
public
String
update
(
@PathVariable
Long
id
,
@RequestBody
RoleDTO
dto
)
{
public
String
update
(
@PathVariable
Long
id
,
@RequestBody
RoleDTO
dto
)
{
if
(
id
==
1
)
{
Assert
.
isFalse
(
ObjUtil
.
equals
(
id
,
1
),
"管理员角色不允许修改"
);
return
"管理员角色不允许修改"
;
}
Role
role
=
converter
.
convert
(
dto
,
Role
.
class
);
Role
role
=
converter
.
convert
(
dto
,
Role
.
class
);
role
.
setId
(
id
);
role
.
setId
(
id
);
return
roleService
.
updateById
(
role
)
?
"更新成功"
:
"更新失败"
;
return
roleService
.
updateById
(
role
)
?
"更新成功"
:
"更新失败"
;
...
@@ -71,9 +69,7 @@ public class RoleController {
...
@@ -71,9 +69,7 @@ public class RoleController {
@DeleteMapping
(
"/role/{id}"
)
@DeleteMapping
(
"/role/{id}"
)
@SaCheckPermission
(
value
=
"role:remove"
,
orRole
=
"admin"
)
@SaCheckPermission
(
value
=
"role:remove"
,
orRole
=
"admin"
)
public
String
remove
(
@PathVariable
Long
id
)
{
public
String
remove
(
@PathVariable
Long
id
)
{
if
(
id
==
1
)
{
Assert
.
isFalse
(
ObjUtil
.
equals
(
id
,
1
),
"管理员角色不允许修改"
);
return
"管理员角色不允许删除"
;
}
return
roleService
.
removeById
(
id
)
?
"删除成功"
:
"删除失败"
;
return
roleService
.
removeById
(
id
)
?
"删除成功"
:
"删除失败"
;
}
}
...
...
src/main/java/vion/dto/FileInfoDTO.java
View file @
045ca18
...
@@ -32,6 +32,8 @@ public class FileInfoDTO extends BaseDTO {
...
@@ -32,6 +32,8 @@ public class FileInfoDTO extends BaseDTO {
private
String
sha256
;
private
String
sha256
;
/** 上传人 */
/** 上传人 */
private
String
uploader
;
private
String
uploader
;
/** 标识:storeLog */
/** 标识:storeLog
,用于区分项目日志的表单文件的提交存储和其他通用表单的文件存储
*/
private
String
flag
;
private
String
flag
;
/** 更新标识,更新接口不传该字段,不允许更新文件:1.项目资料 */
private
Integer
updFlag
;
}
}
src/main/java/vion/service/impl/ContractServiceImpl.java
View file @
045ca18
...
@@ -40,6 +40,7 @@ import vion.dto.RContractTeamDTO;
...
@@ -40,6 +40,7 @@ import vion.dto.RContractTeamDTO;
import
vion.mapper.ContractMapper
;
import
vion.mapper.ContractMapper
;
import
vion.mapper.SettlementDiffMapper
;
import
vion.mapper.SettlementDiffMapper
;
import
vion.model.*
;
import
vion.model.*
;
import
vion.model.Dictionary
;
import
vion.service.*
;
import
vion.service.*
;
import
vion.third.DingMod
;
import
vion.third.DingMod
;
import
vion.vo.*
;
import
vion.vo.*
;
...
@@ -407,8 +408,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -407,8 +408,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
Map
<
String
,
Object
>
map
=
MapUtil
.<
String
,
Object
>
builder
()
Map
<
String
,
Object
>
map
=
MapUtil
.<
String
,
Object
>
builder
()
.
put
(
"totalAmount"
,
financialAgeVOList
.
stream
().
map
(
FinancialAgeVO:
:
getAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
)).
build
();
.
put
(
"totalAmount"
,
financialAgeVOList
.
stream
().
map
(
FinancialAgeVO:
:
getAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
)).
build
();
// 手动分页 todo hutool 6.0 暂时没有
// 手动分页 todo hutool 6.0 暂时没有
int
[]
transToStartEnd
=
{(
dto
.
getPageNum
()
-
1
)
*
dto
.
getPageSize
(),
int
[]
transToStartEnd
=
{(
dto
.
getPageNum
()
-
1
)
*
dto
.
getPageSize
(),
(
dto
.
getPageNum
()
-
1
)
*
dto
.
getPageSize
()
+
dto
.
getPageSize
()};
(
dto
.
getPageNum
()
-
1
)
*
dto
.
getPageSize
()
+
dto
.
getPageSize
()};
Page
<
FinancialAgeVO
>
financialAgeVOPage
=
Page
.<
FinancialAgeVO
>
of
(
dto
.
getPageNum
(),
dto
.
getPageSize
(),
financialAgeVOList
.
size
())
Page
<
FinancialAgeVO
>
financialAgeVOPage
=
Page
.<
FinancialAgeVO
>
of
(
dto
.
getPageNum
(),
dto
.
getPageSize
(),
financialAgeVOList
.
size
())
.
setRecords
(
CollUtil
.
sub
(
financialAgeVOList
,
transToStartEnd
[
0
],
transToStartEnd
[
1
]));
.
setRecords
(
CollUtil
.
sub
(
financialAgeVOList
,
transToStartEnd
[
0
],
transToStartEnd
[
1
]));
map
.
put
(
"list"
,
financialAgeVOPage
);
map
.
put
(
"list"
,
financialAgeVOPage
);
...
@@ -561,7 +562,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -561,7 +562,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
var
fileArr
=
JSONUtil
.
parseObj
(
v
).
getJSONObject
(
"data"
).
getJSONArray
(
"file_1"
);
var
fileArr
=
JSONUtil
.
parseObj
(
v
).
getJSONObject
(
"data"
).
getJSONArray
(
"file_1"
);
var
contractNo
=
JSONUtil
.
parseObj
(
v
).
getJSONObject
(
"data"
).
getStr
(
"serialNo"
);
var
contractNo
=
JSONUtil
.
parseObj
(
v
).
getJSONObject
(
"data"
).
getStr
(
"serialNo"
);
return
JSONUtil
.
ofObj
().
set
(
"contractNo"
,
contractNo
).
set
(
"fileArr"
,
fileArr
);
return
JSONUtil
.
ofObj
().
set
(
"contractNo"
,
contractNo
).
set
(
"fileArr"
,
fileArr
);
}).
collect
(
Collectors
.
toList
()
);
}).
toList
(
);
fileList
.
addAll
(
fileListR
);
fileList
.
addAll
(
fileListR
);
}
}
...
@@ -572,6 +573,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -572,6 +573,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
var
contractId2Sha256Map
=
fileInfoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
FileInfo:
:
getContractId
,
var
contractId2Sha256Map
=
fileInfoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
FileInfo:
:
getContractId
,
Collectors
.
mapping
(
FileInfo:
:
getSha256
,
Collectors
.
toList
())));
Collectors
.
mapping
(
FileInfo:
:
getSha256
,
Collectors
.
toList
())));
List
<
FileInfo
>
saveFileInfoList
=
new
ArrayList
<>();
for
(
JSONObject
entries
:
fileList
)
{
for
(
JSONObject
entries
:
fileList
)
{
var
contractNo
=
entries
.
getStr
(
"contractNo"
);
var
contractNo
=
entries
.
getStr
(
"contractNo"
);
var
fileArr
=
entries
.
getJSONArray
(
"fileArr"
);
var
fileArr
=
entries
.
getJSONArray
(
"fileArr"
);
...
@@ -585,7 +587,6 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -585,7 +587,6 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
continue
;
continue
;
}
}
List
<
FileInfo
>
saveFileInfoList
=
new
ArrayList
<>();
for
(
Object
o
:
fileArr
)
{
for
(
Object
o
:
fileArr
)
{
var
fileObj
=
JSONUtil
.
parseObj
(
o
);
var
fileObj
=
JSONUtil
.
parseObj
(
o
);
var
filename
=
fileObj
.
getStr
(
"filename"
);
var
filename
=
fileObj
.
getStr
(
"filename"
);
...
@@ -611,8 +612,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -611,8 +612,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
fileInfo
.
setUploader
(
"销帮帮同步"
);
fileInfo
.
setUploader
(
"销帮帮同步"
);
saveFileInfoList
.
add
(
fileInfo
);
saveFileInfoList
.
add
(
fileInfo
);
}
}
fileService
.
saveBatch
(
saveFileInfoList
);
}
}
fileService
.
saveBatch
(
saveFileInfoList
);
log
.
info
(
"同步销帮帮合同文件[完成]"
);
log
.
info
(
"同步销帮帮合同文件[完成]"
);
return
"销帮帮合同文件同步完成,请核对已同步文件!"
;
return
"销帮帮合同文件同步完成,请核对已同步文件!"
;
}
}
...
@@ -703,9 +704,9 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -703,9 +704,9 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.
between
(
ArrayUtil
.
isAllNotNull
(
dto
.
getSignDateStart
(),
dto
.
getSignDateEnd
()),
Contract:
:
getSignDate
,
dto
.
getSignDateStart
(),
dto
.
getSignDateEnd
());
.
between
(
ArrayUtil
.
isAllNotNull
(
dto
.
getSignDateStart
(),
dto
.
getSignDateEnd
()),
Contract:
:
getSignDate
,
dto
.
getSignDateStart
(),
dto
.
getSignDateEnd
());
if
(
StrUtil
.
isNotBlank
(
dto
.
getOperator
())
&&
ObjUtil
.
isNotNull
(
dto
.
getAmount
()))
{
if
(
StrUtil
.
isNotBlank
(
dto
.
getOperator
())
&&
ObjUtil
.
isNotNull
(
dto
.
getAmount
()))
{
String
ope
=
dto
.
getOperator
();
String
ope
=
dto
.
getOperator
();
if
(
">"
.
equals
(
ope
))
{
if
(
">"
.
equals
(
ope
))
{
wrapper
.
gt
(
getCol
(
dto
),
dto
.
getAmount
());
wrapper
.
gt
(
getCol
(
dto
),
dto
.
getAmount
());
}
else
if
(
"<"
.
equals
(
ope
))
{
}
else
if
(
"<"
.
equals
(
ope
))
{
wrapper
.
lt
(
getCol
(
dto
),
dto
.
getAmount
());
wrapper
.
lt
(
getCol
(
dto
),
dto
.
getAmount
());
}
else
{
}
else
{
wrapper
.
eq
(
getCol
(
dto
),
dto
.
getAmount
());
wrapper
.
eq
(
getCol
(
dto
),
dto
.
getAmount
());
...
@@ -772,13 +773,197 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
...
@@ -772,13 +773,197 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
return
jsonObj
;
return
jsonObj
;
}
}
private
static
class
Result
{
private
record
Result
(
Set
<
String
>
roleCodeList
,
MPJLambdaWrapper
<
Contract
>
wrapper
)
{
public
final
Set
<
String
>
roleCodeList
;
}
public
final
MPJLambdaWrapper
<
Contract
>
wrapper
;
/*
* todo
* 1.校验合同数量,以及合同编号
* 2.校验合同金额
* */
public
JSONObject
ver
()
{
var
contractNoList
=
this
.
listObjs
(
v
->
((
Contract
)
v
).
getContractNo
());
var
json
=
JSONUtil
.
ofObj
()
.
set
(
"sortMap"
,
JSONUtil
.
ofObj
()
.
set
(
"field"
,
"updateTime"
)
.
set
(
"sort"
,
"desc"
))
.
set
(
"conditions"
,
JSONUtil
.
ofArray
()
.
put
(
JSONUtil
.
ofObj
()
.
set
(
"attr"
,
"date_3"
)
.
set
(
"symbol"
,
"greaterequal"
)
.
set
(
"value"
,
new
String
[]{
"1715356800"
}))
)
.
set
(
"corpid"
,
corpId
)
.
set
(
"formId"
,
8429903
)
.
set
(
"pageSize"
,
100
);
var
res
=
Request
.
of
(
"https://proapi.xbongbong.com/pro/v2/api/contract/list"
)
.
header
(
"sign"
,
SecureUtil
.
sha256
(
json
.
toString
()
+
token
))
.
body
(
json
.
toString
())
.
method
(
Method
.
POST
)
.
send
();
var
jobO
=
JSONUtil
.
parseObj
(
res
.
bodyStr
());
if
(
jobO
.
getInt
(
"code"
)
!=
1
)
{
log
.
error
(
"获取合同列表失败,错误原因:{}"
,
jobO
);
return
json
;
}
Integer
cnt
=
jobO
.
getJSONObject
(
"result"
).
getInt
(
"totalCount"
);
Integer
page
=
jobO
.
getJSONObject
(
"result"
).
getInt
(
"totalPage"
);
if
(
NumberUtil
.
equals
(
cnt
,
0
))
{
log
.
info
(
"没有需要插入或更新的合同"
);
return
json
;
}
var
jsonArray
=
jobO
.
getJSONObject
(
"result"
).
getJSONArray
(
"list"
);
// 合同编号
var
dataIdSet
=
jsonArray
.
stream
().
map
(
v
->
JSONUtil
.
parseObj
(
v
).
getJSONObject
(
"data"
).
getStr
(
"serialNo"
)).
collect
(
Collectors
.
toSet
());
for
(
int
i
=
2
;
i
<=
page
;
i
++)
{
var
jsonR
=
JSONUtil
.
ofObj
()
.
set
(
"sortMap"
,
JSONUtil
.
ofObj
()
.
set
(
"field"
,
"updateTime"
)
.
set
(
"order"
,
"desc"
))
.
set
(
"conditions"
,
JSONUtil
.
ofArray
()
.
put
(
JSONUtil
.
ofObj
()
.
set
(
"attr"
,
"date_3"
)
.
set
(
"symbol"
,
"greaterequal"
)
.
set
(
"value"
,
new
String
[]{
"1715356800"
}))
)
.
set
(
"corpid"
,
corpId
)
.
set
(
"formId"
,
8429903
)
.
set
(
"page"
,
i
)
.
set
(
"pageSize"
,
100
);
var
resR
=
Request
.
of
(
"https://proapi.xbongbong.com/pro/v2/api/contract/list"
)
.
header
(
"sign"
,
SecureUtil
.
sha256
(
jsonR
.
toString
()
+
token
))
.
body
(
jsonR
.
toString
())
.
method
(
Method
.
POST
)
.
send
();
var
jobR
=
JSONUtil
.
parseObj
(
resR
.
bodyStr
());
var
jsonArrR
=
jobR
.
getJSONObject
(
"result"
).
getJSONArray
(
"list"
);
var
dataIdSetR
=
jsonArrR
.
stream
().
map
(
v
->
JSONUtil
.
parseObj
(
v
).
getJSONObject
(
"data"
).
getStr
(
"serialNo"
)).
collect
(
Collectors
.
toSet
());
dataIdSet
.
addAll
(
dataIdSetR
);
}
// 返回销帮帮存在,但项目运维管理平台不存在的合同
var
unsyncedList
=
CollUtil
.
subtractToList
(
dataIdSet
,
contractNoList
);
// 返回项目运维管理平台存在,但销帮帮不存在的合同(可能销帮帮对该合同删除了)
var
extraList
=
CollUtil
.
subtractToList
(
contractNoList
,
dataIdSet
);
return
JSONUtil
.
ofObj
().
set
(
"unsynced"
,
unsyncedList
).
set
(
"extra"
,
extraList
);
}
public
JSONObject
contractDiff
(
String
contractNo
)
{
var
platContract
=
this
.
lambdaQuery
().
eq
(
Contract:
:
getContractNo
,
contractNo
).
one
();
var
json
=
JSONUtil
.
ofObj
()
.
set
(
"conditions"
,
JSONUtil
.
ofArray
()
.
put
(
JSONUtil
.
ofObj
()
.
set
(
"attr"
,
"serialNo"
)
.
set
(
"symbol"
,
"equal"
)
.
set
(
"value"
,
new
String
[]{
contractNo
}))
)
.
set
(
"corpid"
,
corpId
)
.
set
(
"formId"
,
8429903
)
.
set
(
"pageSize"
,
100
);
var
res
=
Request
.
of
(
"https://proapi.xbongbong.com/pro/v2/api/contract/list"
)
.
header
(
"sign"
,
SecureUtil
.
sha256
(
json
.
toString
()
+
token
))
.
body
(
json
.
toString
())
.
method
(
Method
.
POST
)
.
send
();
var
jobO
=
JSONUtil
.
parseObj
(
res
.
bodyStr
());
if
(
jobO
.
getInt
(
"code"
)
!=
1
)
{
log
.
error
(
"获取合同列表失败,错误原因:{}"
,
jobO
);
return
json
;
}
var
jsonArray
=
jobO
.
getJSONObject
(
"result"
).
getJSONArray
(
"list"
);
// 合同记录唯一 dataId
var
dataIdSet
=
jsonArray
.
stream
().
map
(
v
->
JSONUtil
.
parseObj
(
v
).
getInt
(
"dataId"
)).
collect
(
Collectors
.
toSet
());
public
Result
(
Set
<
String
>
roleCodeList
,
MPJLambdaWrapper
<
Contract
>
wrapper
)
{
var
json1
=
JSONUtil
.
ofObj
()
this
.
roleCodeList
=
roleCodeList
;
.
set
(
"corpid"
,
corpId
)
this
.
wrapper
=
wrapper
;
.
set
(
"dataId"
,
CollUtil
.
getFirst
(
dataIdSet
));
var
res1
=
Request
.
of
(
"https://proapi.xbongbong.com/pro/v2/api/contract/detail"
)
.
header
(
"sign"
,
SecureUtil
.
sha256
(
json1
.
toString
()
+
token
))
.
body
(
json1
.
toString
())
.
method
(
Method
.
POST
)
.
send
();
var
jobj1
=
JSONUtil
.
parseObj
(
res1
.
bodyStr
());
if
(
jobj1
.
getInt
(
"code"
)
!=
1
)
{
log
.
error
(
"获取合同详情失败,错误原因:{}"
,
jobj1
);
return
json
;
}
}
var
result
=
jobj1
.
getJSONObject
(
"result"
);
var
jsonObj1
=
result
.
getJSONObject
(
"data"
);
Map
<
String
,
Integer
>
contractTypeMap
=
Db
.
list
(
Wrappers
.<
Dictionary
>
lambdaQuery
().
eq
(
Dictionary:
:
getType
,
"contract_type"
))
.
stream
()
.
collect
(
Collectors
.
toMap
(
Dictionary:
:
getValue
,
Dictionary:
:
getKey
));
Contract
xbongContract
=
new
Contract
();
xbongContract
.
setName
(
jsonObj1
.
getStr
(
"text_14"
));
xbongContract
.
setContractNo
(
jsonObj1
.
getStr
(
"serialNo"
));
xbongContract
.
setType
(
contractTypeMap
.
getOrDefault
(
jsonObj1
.
getJSONObject
(
"text_17"
).
getStr
(
"text"
),
0
));
xbongContract
.
setSignDate
(
DateUtil
.
date
(
jsonObj1
.
getLong
(
"date_1"
)
*
1000
));
xbongContract
.
setMaintainSdate
(
Opt
.
ofNullable
(
jsonObj1
.
getLong
(
"date_4"
)).
map
(
sec
->
DateUtil
.
date
(
sec
*
1000
)).
orElse
(
null
));
xbongContract
.
setMaintainEdate
(
Opt
.
ofNullable
(
jsonObj1
.
getLong
(
"date_5"
)).
map
(
sec
->
DateUtil
.
date
(
sec
*
1000
)).
orElse
(
null
));
String
warrantyPeriod
=
Opt
.
ofNullable
(
jsonObj1
.
getJSONObject
(
"text_23"
)).
map
(
wp
->
wp
.
getStr
(
"text"
)).
orElse
(
""
);
if
(
StrUtil
.
isNotBlank
(
warrantyPeriod
)
&&
warrantyPeriod
.
contains
(
"个月"
))
{
String
substring
=
warrantyPeriod
.
substring
(
0
,
(
warrantyPeriod
.
length
()
-
2
));
xbongContract
.
setWarrantyPeriod
(
Integer
.
parseInt
(
substring
));
}
xbongContract
.
setStatus
(
1
);
xbongContract
.
setTotalAmount
(
jsonObj1
.
getBigDecimal
(
"num_1"
));
xbongContract
.
setPaidAmount
(
BigDecimal
.
ZERO
);
xbongContract
.
setReceivableAmount
(
BigDecimal
.
ZERO
);
xbongContract
.
setOutstandingAmount
(
jsonObj1
.
getBigDecimal
(
"num_1"
));
var
paymentForm
=
jsonObj1
.
getJSONArray
(
"subForm_1"
);
if
(!
paymentForm
.
isEmpty
())
{
paymentForm
.
forEach
(
pf
->
{
var
pfObj
=
JSONUtil
.
parseObj
(
pf
);
var
ratio
=
NumberUtil
.
div
(
BigDecimal
.
valueOf
(
Double
.
parseDouble
(
pfObj
.
getStr
(
"text_1"
))),
100
);
var
date
=
DateUtil
.
date
(
pfObj
.
getLong
(
"date_1"
)
*
1000
);
var
stage
=
pfObj
.
getJSONObject
(
"text_2"
).
getStr
(
"text"
);
if
(
StrUtil
.
equals
(
stage
,
"预付款"
))
{
xbongContract
.
setSignRatio
(
ratio
);
xbongContract
.
setSignDate1
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"到货款"
))
{
xbongContract
.
setArriveRatio
(
ratio
);
xbongContract
.
setArriveDate
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"系统验收款"
))
{
xbongContract
.
setSystemCheckRatio
(
ratio
);
xbongContract
.
setSystemCheckDate
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"项目终验款"
))
{
xbongContract
.
setProjectCheckRatio
(
ratio
);
xbongContract
.
setProjectCheckDate
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"质保款"
))
{
xbongContract
.
setWarrantyRatio
(
ratio
);
xbongContract
.
setWarrantyDate
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"维保第一笔款"
))
{
xbongContract
.
setMaintainRatio1
(
ratio
);
xbongContract
.
setMaintainDate1
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"维保第二笔款"
))
{
xbongContract
.
setMaintainRatio2
(
ratio
);
xbongContract
.
setMaintainDate2
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"维保第三笔款"
))
{
xbongContract
.
setMaintainRatio3
(
ratio
);
xbongContract
.
setMaintainDate3
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"维保进度款"
))
{
xbongContract
.
setMaintainProgressRatio
(
ratio
);
xbongContract
.
setMaintainProgressDate
(
date
);
}
else
if
(
StrUtil
.
equals
(
stage
,
"维保验收款"
))
{
xbongContract
.
setMaintainAcceptanceRatio
(
ratio
);
xbongContract
.
setMaintainAcceptanceDate
(
date
);
}
});
}
xbongContract
.
setSubject
(
"北京文安智能技术股份有限公司"
);
xbongContract
.
setCustomerName
(
jsonObj1
.
getJSONObject
(
"text_2"
).
getStr
(
"name"
));
xbongContract
.
setSaleName
(
jsonObj1
.
getJSONObject
(
"text_8"
).
getStr
(
"name"
));
xbongContract
.
setCreateUser
(-
1L
);
xbongContract
.
setModifyUser
(-
1L
);
xbongContract
.
setEntryTime
(
DateUtil
.
date
(
result
.
getLong
(
"addTime"
)
*
1000
));
xbongContract
.
setOriginalModTime
(
DateUtil
.
date
(
result
.
getLong
(
"updateTime"
)
*
1000
));
return
JSONUtil
.
ofObj
().
set
(
"platform"
,
platContract
).
set
(
"xbongbong"
,
xbongContract
);
}
}
}
}
\ No newline at end of file
\ No newline at end of file
src/main/java/vion/service/impl/StoreServiceImpl.java
View file @
045ca18
...
@@ -116,7 +116,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
...
@@ -116,7 +116,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.
map
(
l
->
fileService
.
lambdaQuery
()
.
map
(
l
->
fileService
.
lambdaQuery
()
.
in
(
FileInfo:
:
getSourceId
,
l
)
.
in
(
FileInfo:
:
getSourceId
,
l
)
.
in
(
FileInfo:
:
getStoreId
,
l
)
.
in
(
FileInfo:
:
getStoreId
,
l
)
.
in
(
FileInfo:
:
getSourceType
,
1
,
24
,
25
,
26
,
27
,
28
)
.
in
(
FileInfo:
:
getSourceType
,
1
,
24
,
25
,
26
,
27
,
28
,
29
,
30
)
.
list
())
.
list
())
.
map
(
fileList
->
fileList
.
stream
().
collect
(
Collectors
.
groupingBy
(
FileInfo:
:
getStoreId
,
Collectors
.
counting
())))
.
map
(
fileList
->
fileList
.
stream
().
collect
(
Collectors
.
groupingBy
(
FileInfo:
:
getStoreId
,
Collectors
.
counting
())))
.
orElse
(
MapUtil
.
empty
());
.
orElse
(
MapUtil
.
empty
());
...
@@ -570,7 +570,6 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
...
@@ -570,7 +570,6 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
String
fileNameStr
=
Arrays
.
stream
(
fileNameArr
).
map
(
v
->
StrUtil
.
format
(
"{}.{}"
,
String
fileNameStr
=
Arrays
.
stream
(
fileNameArr
).
map
(
v
->
StrUtil
.
format
(
"{}.{}"
,
Arrays
.
asList
(
fileNameArr
).
indexOf
(
v
)
+
1
,
v
)).
collect
(
Collectors
.
joining
(
"\n"
));
Arrays
.
asList
(
fileNameArr
).
indexOf
(
v
)
+
1
,
v
)).
collect
(
Collectors
.
joining
(
"\n"
));
content
.
set
(
"title"
,
"项目资料提交提醒"
)
content
.
set
(
"title"
,
"项目资料提交提醒"
)
.
set
(
"text"
,
StrUtil
.
format
(
"""
.
set
(
"text"
,
StrUtil
.
format
(
"""
#### 项目名称:{}
#### 项目名称:{}
...
...
src/main/java/vion/service/impl/TaskServiceImpl.java
View file @
045ca18
...
@@ -405,11 +405,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
...
@@ -405,11 +405,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
JSONObject
msg
=
buildMsg3
(
forwardUser
,
store
.
getName
(),
task
);
JSONObject
msg
=
buildMsg3
(
forwardUser
,
store
.
getName
(),
task
);
String
pushRes
=
dingMod
.
workMsg
(
msg
);
String
pushRes
=
dingMod
.
workMsg
(
msg
);
if
(
StrUtil
.
contains
(
pushRes
,
"ok"
))
{
return
StrUtil
.
contains
(
pushRes
,
"ok"
)
?
"成功"
:
"失败"
;
return
"成功"
;
}
else
{
return
"失败"
;
}
}
}
@Override
@Override
...
@@ -424,11 +420,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
...
@@ -424,11 +420,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
JSONObject
msg
=
buildMsg4
(
userid
,
store
.
getName
(),
task
,
remark
);
JSONObject
msg
=
buildMsg4
(
userid
,
store
.
getName
(),
task
,
remark
);
String
pushRes
=
dingMod
.
workMsg
(
msg
);
String
pushRes
=
dingMod
.
workMsg
(
msg
);
if
(
StrUtil
.
contains
(
pushRes
,
"ok"
))
{
return
StrUtil
.
contains
(
pushRes
,
"ok"
)
?
"成功"
:
"失败"
;
return
"成功"
;
}
else
{
return
"失败"
;
}
}
}
@Override
@Override
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment