Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yanxuan-qc-change-system
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
胡园园
yanxuan-qc-change-system
Commits
6db5880c
Commit
6db5880c
authored
Nov 25, 2022
by
“zcwang”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add:变更管理列表下载
parent
50f0371b
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
213 additions
and
26 deletions
+213
-26
pom.xml
pom.xml
+16
-1
ChangeFlowBiz.java
...om/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
+62
-6
ChangeFlowExcelDTO.java
.../yanxuan/change/integration/excel/ChangeFlowExcelDTO.java
+90
-0
ChangeFlowController.java
...l/yanxuan/change/web/controller/ChangeFlowController.java
+45
-19
No files found.
pom.xml
View file @
6db5880c
...
...
@@ -416,7 +416,22 @@
<!-- <artifactId>assertj-core</artifactId>-->
<!-- <version>3.18.1</version>-->
<!-- </dependency>-->
<!--easypoi-->
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-base
</artifactId>
<version>
3.1.0
</version>
</dependency>
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-web
</artifactId>
<version>
3.1.0
</version>
</dependency>
<dependency>
<groupId>
cn.afterturn
</groupId>
<artifactId>
easypoi-annotation
</artifactId>
<version>
3.1.0
</version>
</dependency>
</dependencies>
...
...
yanxuan-qc-change-system-biz/src/main/java/com/netease/mail/yanxuan/change/biz/biz/ChangeFlowBiz.java
View file @
6db5880c
...
...
@@ -6,6 +6,10 @@
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
biz
.
biz
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
...
...
@@ -14,8 +18,11 @@ import java.util.Map;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.Assert
;
...
...
@@ -59,6 +66,7 @@ import com.netease.mail.yanxuan.change.dal.meta.model.vo.BasicChangeFlowVO;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowExecVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ChangeFlowVO
;
import
com.netease.mail.yanxuan.change.dal.meta.model.vo.ItemVO
;
import
com.netease.mail.yanxuan.change.integration.excel.ChangeFlowExcelDTO
;
import
com.netease.mail.yanxuan.change.integration.flow.FlowRpcService
;
import
com.netease.yanxuan.flowx.sdk.meta.controller.communal.AjaxResponse
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.base.FlowDataDTO
;
...
...
@@ -68,6 +76,8 @@ import com.netease.yanxuan.flowx.sdk.meta.dto.exec.UserBaseContainerDTO;
import
com.netease.yanxuan.flowx.sdk.meta.dto.flow.FlowCreateReqDTO
;
import
com.netease.yanxuan.flowx.sdk.meta.dto.flow.NodeSubmitReqDTO
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
lombok.extern.slf4j.Slf4j
;
/**
...
...
@@ -630,13 +640,7 @@ public class ChangeFlowBiz {
changeFlowVO
.
setFlowId
(
c
.
getFlowId
());
changeFlowVO
.
setChangeSubject
(
c
.
getChangeSubject
());
ChangeType
parentChangeType
=
changeTypeService
.
getChangeTypeById
(
c
.
getParentChangeClassId
());
if
(
parentChangeType
==
null
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
CHANGE_TYPE_NOT_EXIST
,
"变更类型不存在"
);
}
ChangeType
sonChangeType
=
changeTypeService
.
getChangeTypeById
(
c
.
getSonChangeClassId
());
if
(
sonChangeType
==
null
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
CHANGE_TYPE_NOT_EXIST
,
"变更类型配置不存在"
);
}
changeFlowVO
.
setChangeType
(
parentChangeType
.
getTypeName
()
+
">"
+
sonChangeType
.
getTypeName
());
changeFlowVO
.
setChangeDepartment
(
c
.
getChangeDepartment
());
changeFlowVO
.
setChangeContent
(
c
.
getChangeContent
());
...
...
@@ -695,4 +699,56 @@ public class ChangeFlowBiz {
userBaseContainer
.
setUserList
(
totalUserList
);
return
userBaseContainer
;
}
public
void
export
(
ChangeFlowListQueryReq
changeFlowListQueryReq
,
HttpServletResponse
response
)
{
List
<
ChangeRecord
>
changeRecords
=
changeRecordMapper
.
selectByCondition
(
changeFlowListQueryReq
);
if
(
CollectionUtils
.
isEmpty
(
changeRecords
))
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
EMPTY
,
"无导出数据"
);
}
List
<
ChangeFlowExcelDTO
>
changeFlowExcelDTOList
=
changeRecords
.
stream
().
map
(
record
->
{
ChangeFlowExcelDTO
changeFlowExcelDTO
=
new
ChangeFlowExcelDTO
();
changeFlowExcelDTO
.
setId
(
record
.
getId
());
changeFlowExcelDTO
.
setChangeSubject
(
ChangeSubjectEnum
.
getChangeSubjectEnum
(
record
.
getChangeSubject
()).
getDesc
());
ChangeType
parentChangeType
=
changeTypeService
.
getChangeTypeById
(
record
.
getParentChangeClassId
());
ChangeType
sonChangeType
=
changeTypeService
.
getChangeTypeById
(
record
.
getSonChangeClassId
());
changeFlowExcelDTO
.
setChangeType
(
parentChangeType
.
getTypeName
()
+
">"
+
sonChangeType
.
getTypeName
());
changeFlowExcelDTO
.
setChangeDepartment
(
record
.
getChangeDepartment
());
changeFlowExcelDTO
.
setChangeContent
(
record
.
getChangeContent
());
changeFlowExcelDTO
.
setChangeCommander
(
record
.
getChangeCommander
());
String
changeItemJsonStr
=
record
.
getChangeItem
();
if
(
StringUtils
.
isNotBlank
(
changeItemJsonStr
))
{
List
<
ItemVO
>
itemVOS
=
JSON
.
parseArray
(
changeItemJsonStr
,
ItemVO
.
class
);
changeFlowExcelDTO
.
setChangeItems
(
itemVOS
.
stream
().
map
(
item
->
item
.
getItemId
()
+
item
.
getItemName
())
.
collect
(
Collectors
.
joining
(
","
)));
}
if
(
StringUtils
.
isNotBlank
(
record
.
getChangeSupplier
()))
{
changeFlowExcelDTO
.
setSupplier
(
record
.
getChangeSupplier
());
}
changeFlowExcelDTO
.
setChangeState
(
record
.
getState
());
// todo:变更发起人组织查询:姓名(组织架构三级部门)/供应商ID/system+发起时间
changeFlowExcelDTO
.
setChangeCreator
(
record
.
getCreator
());
changeFlowExcelDTO
.
setExecDepartmentStrList
(
record
.
getParticipateChangeExecDepartment
());
changeFlowExcelDTO
.
setCreateTime
(
record
.
getCreateTime
());
return
changeFlowExcelDTO
;
}).
collect
(
Collectors
.
toList
());
Workbook
workbook
=
ExcelExportUtil
.
exportExcel
(
new
ExportParams
(),
ChangeFlowExcelDTO
.
class
,
changeFlowExcelDTOList
);
downLoadExcel
(
"变更管理列表"
,
response
,
workbook
);
}
private
void
downLoadExcel
(
String
fileName
,
HttpServletResponse
response
,
Workbook
workbook
)
{
try
{
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setHeader
(
"content-Type"
,
"application/vnd.ms-excel"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
fileName
,
"UTF-8"
)
+
".xls"
);
ByteArrayOutputStream
baos
=
new
ByteArrayOutputStream
();
workbook
.
write
(
baos
);
response
.
setHeader
(
"Content-Length"
,
String
.
valueOf
(
baos
.
size
()));
OutputStream
out
=
response
.
getOutputStream
();
out
.
write
(
baos
.
toByteArray
());
}
catch
(
IOException
ex
)
{
throw
ExceptionFactory
.
createBiz
(
ResponseCode
.
BAD_REQUEST
);
}
}
}
yanxuan-qc-change-system-integration/src/main/java/com/netease/mail/yanxuan/change/integration/excel/ChangeFlowExcelDTO.java
0 → 100644
View file @
6db5880c
/**
* @(#)ChangeFlowExcelDTO.java, 2022/11/25.
* <p/>
* Copyright 2022 Netease, Inc. All rights reserved.
* NETEASE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
integration
.
excel
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeStatusEnum
;
import
com.netease.mail.yanxuan.change.common.enums.ChangeSubjectEnum
;
import
cn.afterturn.easypoi.excel.annotation.Excel
;
import
lombok.Data
;
/**
* @Author zcwang
* @Date 2022/11/25
*/
@Data
public
class
ChangeFlowExcelDTO
{
/**
* 主键id
*/
@Excel
(
name
=
"变更ID"
)
private
Long
id
;
/**
* 变更主体
* @see ChangeSubjectEnum
*/
@Excel
(
name
=
"变更主体"
)
private
String
changeSubject
;
/**
* 变更类型,一级类型>二级类型
*/
@Excel
(
name
=
"变更类型"
)
private
String
changeType
;
/**
* 变更负责部门名
*/
@Excel
(
name
=
"变更负责部门名"
)
private
String
changeDepartment
;
/**
* 变更内容
*/
@Excel
(
name
=
"变更内容"
)
private
String
changeContent
;
/**
* 变更负责人
*/
@Excel
(
name
=
"变更负责人"
)
private
String
changeCommander
;
/**
* 变更商品列表,SPUID+商品名称
*/
@Excel
(
name
=
"变更商品"
)
private
String
changeItems
;
/**
* 变更供应商,仅展示供应商ID,没有时展示为“/”
*/
@Excel
(
name
=
"变更供应商"
)
private
String
supplier
;
/**
* 变更状态
* @see ChangeStatusEnum
*/
@Excel
(
name
=
"变更状态"
)
private
Integer
changeState
;
/**
* 变更发起人
*/
@Excel
(
name
=
"变更发起人"
)
private
String
changeCreator
;
/**
* 变更行动部门列表
*/
@Excel
(
name
=
"变更行动部门"
)
private
String
execDepartmentStrList
;
/**
* 创建时间
*/
@Excel
(
name
=
"创建时间"
)
private
Long
createTime
;
}
\ No newline at end of file
yanxuan-qc-change-system-web/src/main/java/com/netease/mail/yanxuan/change/web/controller/ChangeFlowController.java
View file @
6db5880c
...
...
@@ -6,6 +6,7 @@
*/
package
com
.
netease
.
mail
.
yanxuan
.
change
.
web
.
controller
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -16,14 +17,11 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.alibaba.fastjson.JSON
;
import
com.github.pagehelper.PageInfo
;
import
com.netease.mail.yanxuan.change.biz.biz.ChangeFlowBiz
;
import
com.netease.mail.yanxuan.change.biz.config.TitleConfig
;
import
com.netease.mail.yanxuan.change.biz.service.ChangeFlowService
;
import
com.netease.mail.yanxuan.change.common.bean.AjaxResult
;
import
com.netease.mail.yanxuan.change.common.util.DateUtils
;
import
com.netease.mail.yanxuan.change.dal.entity.ChangeRecord
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCancelReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowCreateReq
;
import
com.netease.mail.yanxuan.change.dal.meta.model.req.ChangeFlowListQueryReq
;
...
...
@@ -52,6 +50,7 @@ public class ChangeFlowController {
/**
* 变更工单详情查询
*
* @return
*/
@GetMapping
(
"/detail"
)
...
...
@@ -66,17 +65,17 @@ public class ChangeFlowController {
*/
@GetMapping
(
"/query"
)
public
AjaxResult
<
PageInfo
<
ChangeFlowVO
>>
query
(
@RequestParam
(
name
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"itemId"
,
required
=
false
)
String
itemId
,
@RequestParam
(
name
=
"supplier"
,
required
=
false
)
String
supplier
,
@RequestParam
(
name
=
"parentChangeClassId"
,
required
=
false
)
Long
parentChangeClassId
,
@RequestParam
(
name
=
"sonChangeClassId"
,
required
=
false
)
Long
sonChangeClassId
,
@RequestParam
(
name
=
"changeState"
,
required
=
false
)
Integer
changeState
,
@RequestParam
(
name
=
"changeCommander"
,
required
=
false
)
String
changeCommander
,
@RequestParam
(
name
=
"changeDepartment"
,
required
=
false
)
String
changeDepartment
,
@RequestParam
(
name
=
"changeExecDepartment"
,
required
=
false
)
String
changeExecDepartment
,
@RequestParam
(
name
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
name
=
"endTime"
,
required
=
false
)
Long
endTime
)
{
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
name
=
"itemId"
,
required
=
false
)
String
itemId
,
@RequestParam
(
name
=
"supplier"
,
required
=
false
)
String
supplier
,
@RequestParam
(
name
=
"parentChangeClassId"
,
required
=
false
)
Long
parentChangeClassId
,
@RequestParam
(
name
=
"sonChangeClassId"
,
required
=
false
)
Long
sonChangeClassId
,
@RequestParam
(
name
=
"changeState"
,
required
=
false
)
Integer
changeState
,
@RequestParam
(
name
=
"changeCommander"
,
required
=
false
)
String
changeCommander
,
@RequestParam
(
name
=
"changeDepartment"
,
required
=
false
)
String
changeDepartment
,
@RequestParam
(
name
=
"changeExecDepartment"
,
required
=
false
)
String
changeExecDepartment
,
@RequestParam
(
name
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
name
=
"endTime"
,
required
=
false
)
Long
endTime
)
{
ChangeFlowListQueryReq
changeFlowListQueryReq
=
new
ChangeFlowListQueryReq
();
changeFlowListQueryReq
.
setItemId
(
itemId
);
changeFlowListQueryReq
.
setSupplier
(
supplier
);
...
...
@@ -93,6 +92,7 @@ public class ChangeFlowController {
/**
* 返回提示文案
*
* @return
*/
@GetMapping
(
"/title"
)
...
...
@@ -102,6 +102,7 @@ public class ChangeFlowController {
/**
* 发起变更,如果发起人=审核人,自动跳转到第一个节点
*
* @return
*/
@PostMapping
(
"/create"
)
...
...
@@ -111,6 +112,7 @@ public class ChangeFlowController {
/**
* 变更工单提交
*
* @return
*/
@PostMapping
(
"/submit"
)
...
...
@@ -120,15 +122,18 @@ public class ChangeFlowController {
/**
* 工单转交
*
* @return
*/
@PostMapping
(
"/deliver"
)
public
AjaxResult
<
Boolean
>
deliver
()
{
return
AjaxResult
.
success
();
}
/**
* 工单取消
*
* @return
*/
@PostMapping
(
"/cancel"
)
...
...
@@ -138,6 +143,7 @@ public class ChangeFlowController {
/**
* 引用变更工单
*
* @return
*/
@GetMapping
(
"/quote"
)
...
...
@@ -145,19 +151,40 @@ public class ChangeFlowController {
return
AjaxResult
.
success
(
changeFlowBiz
.
quote
(
flowId
));
}
/**
* 导出变更
*
* @return
*/
@PostMapping
(
"/export"
)
public
AjaxResult
<
Void
>
export
()
{
public
AjaxResult
<
Void
>
export
(
@RequestParam
(
name
=
"itemId"
,
required
=
false
)
String
itemId
,
@RequestParam
(
name
=
"supplier"
,
required
=
false
)
String
supplier
,
@RequestParam
(
name
=
"parentChangeClassId"
,
required
=
false
)
Long
parentChangeClassId
,
@RequestParam
(
name
=
"sonChangeClassId"
,
required
=
false
)
Long
sonChangeClassId
,
@RequestParam
(
name
=
"changeState"
,
required
=
false
)
Integer
changeState
,
@RequestParam
(
name
=
"changeCommander"
,
required
=
false
)
String
changeCommander
,
@RequestParam
(
name
=
"changeDepartment"
,
required
=
false
)
String
changeDepartment
,
@RequestParam
(
name
=
"changeExecDepartment"
,
required
=
false
)
String
changeExecDepartment
,
@RequestParam
(
name
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
name
=
"endTime"
,
required
=
false
)
Long
endTime
,
HttpServletResponse
response
)
{
ChangeFlowListQueryReq
changeFlowListQueryReq
=
new
ChangeFlowListQueryReq
();
changeFlowListQueryReq
.
setItemId
(
itemId
);
changeFlowListQueryReq
.
setSupplier
(
supplier
);
changeFlowListQueryReq
.
setParentChangeClassId
(
parentChangeClassId
);
changeFlowListQueryReq
.
setSonChangeClassId
(
sonChangeClassId
);
changeFlowListQueryReq
.
setState
(
changeState
);
changeFlowListQueryReq
.
setChangeCommander
(
changeCommander
);
changeFlowListQueryReq
.
setChangeDepartment
(
changeDepartment
);
changeFlowListQueryReq
.
setChangeExecDepartment
(
changeExecDepartment
);
changeFlowListQueryReq
.
setStartTime
(
startTime
);
changeFlowListQueryReq
.
setEndTime
(
endTime
);
changeFlowBiz
.
export
(
changeFlowListQueryReq
,
response
);
return
AjaxResult
.
success
();
}
/**
* 获取审批人
*
* @param interfaceInput
* @return
*/
...
...
@@ -165,4 +192,4 @@ public class ChangeFlowController {
public
AjaxResult
<
UserBaseContainerDTO
>
getOperator
(
@RequestBody
InterfaceInputDTO
interfaceInput
)
{
return
AjaxResult
.
success
(
changeFlowBiz
.
getOperator
(
interfaceInput
));
}
}
\ No newline at end of file
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment