Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
topsun-bpm
Project
Project
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
鲁鑫
topsun-bpm
Commits
98236001
Commit
98236001
authored
Aug 12, 2024
by
鲁鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
工序外协申请流程,放行条待办任务优化
parent
0ab66938
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1759 additions
and
3 deletions
+1759
-3
processOutsourceDetail.js
...biz/topsun/sap/processOutsource/processOutsourceDetail.js
+361
-0
processOutsourceDetail.jsp
...iz/topsun/sap/processOutsource/processOutsourceDetail.jsp
+44
-0
processOutsourceList.js
...p/biz/topsun/sap/processOutsource/processOutsourceList.js
+88
-0
processOutsourceList.jsp
.../biz/topsun/sap/processOutsource/processOutsourceList.jsp
+24
-0
SapPermitApplicationImpl.java
...sap/permit/application/impl/SapPermitApplicationImpl.java
+23
-3
ProcessOutsourceApplication.java
...essOutsource/application/ProcessOutsourceApplication.java
+22
-0
ProcessOutsourceMaterialApplication.java
...urce/application/ProcessOutsourceMaterialApplication.java
+23
-0
ProcessOutsourceOrderItemApplication.java
...rce/application/ProcessOutsourceOrderItemApplication.java
+23
-0
ProcessOutsourceApplicationImpl.java
...rce/application/impl/ProcessOutsourceApplicationImpl.java
+333
-0
ProcessOutsourceMaterialApplicationImpl.java
...ication/impl/ProcessOutsourceMaterialApplicationImpl.java
+57
-0
ProcessOutsourceOrderItemApplicationImpl.java
...cation/impl/ProcessOutsourceOrderItemApplicationImpl.java
+58
-0
ProcessOutsourceController.java
...ocessOutsource/controller/ProcessOutsourceController.java
+99
-0
ProcessOutsource.java
.../topsun/sap/processOutsource/domain/ProcessOutsource.java
+36
-0
ProcessOutsourceMaterial.java
...sap/processOutsource/domain/ProcessOutsourceMaterial.java
+37
-0
ProcessOutsourceOrderItem.java
...ap/processOutsource/domain/ProcessOutsourceOrderItem.java
+128
-0
ProcessOutsourceQueryRequest.java
...sOutsource/domain/query/ProcessOutsourceQueryRequest.java
+16
-0
ProcessOutsourceItemVo.java
...ap/processOutsource/domain/vo/ProcessOutsourceItemVo.java
+133
-0
ProcessOutsourceVo.java
...un/sap/processOutsource/domain/vo/ProcessOutsourceVo.java
+60
-0
ProcessOutsourceMaterialRepository.java
...source/repository/ProcessOutsourceMaterialRepository.java
+15
-0
ProcessOutsourceOrderItemRepository.java
...ource/repository/ProcessOutsourceOrderItemRepository.java
+17
-0
ProcessOutsourceRepository.java
...ocessOutsource/repository/ProcessOutsourceRepository.java
+14
-0
processOutsource.bpmn
...fig/bpm/topsun/sap/processOutsource/processOutsource.bpmn
+111
-0
processOutsource.xml
...s/config/topsun/sap/processOutsource/processOutsource.xml
+37
-0
No files found.
topsun-xt/src/main/webapp/biz/topsun/sap/processOutsource/processOutsourceDetail.js
0 → 100644
View file @
98236001
var
gridManager
=
null
;
var
orderItemGridManager
=
null
;
var
materialGridManager
=
null
;
var
canEdit
=
true
;
$
(
document
).
ready
(
function
()
{
initialize
();
loadMaterialGrid
();
loadOrderItemGrid
();
bindEvent
();
});
function
initialize
(){
UICtrl
.
layout
(
"#layout"
,
{
leftWidth
:
3
});
}
/**
* 流程引擎回调设置打样的id
* @param value 打样申请的id
*/
function
setId
(
bizId
)
{
$
(
"#id"
).
val
(
bizId
);
var
_grid
=
UICtrl
.
getGridManager
(
'#orderItemGrid'
);
_grid
.
options
.
parms
.
processOutsourceId
=
bizId
;
var
_grid3
=
UICtrl
.
getGridManager
(
'#materialGrid'
);
_grid3
.
options
.
parms
.
processOutsourceId
=
bizId
;
orderItemGridManager
.
loadData
();
materialGridManager
.
loadData
();
}
/**
* 流程引擎获取打样申请id的回掉方法。
* @return 打样申请的id
*/
function
getId
()
{
var
id
=
$
(
"#id"
).
val
()
||
""
;
return
id
;
}
// 加载订单行项目表格
function
loadOrderItemGrid
()
{
var
toolbarOptions
=
null
;
toolbarOptions
=
UICtrl
.
getDefaultToolbarOptions
({
// 添加一行表格
addHandler
:
function
()
{
UICtrl
.
addGridRow
(
orderItemGridManager
,
{
// 行号加一
sequence
:
(
orderItemGridManager
.
getData
().
length
+
1
)
}
);
},
// 删除
deleteHandler
:
function
()
{
var
_grid
=
UICtrl
.
getGridManager
(
'#orderItemGrid'
);
DataUtil
.
delSelectedRows
({
action
:
'processOutsource/deleteProcessOutsourceOrderItem.ajax'
,
param
:
{},
gridManager
:
_grid
,
idFieldName
:
'id'
,
onSuccess
:
function
()
{
orderItemGridManager
.
loadData
();
}
});
}
});
// 表格
orderItemGridManager
=
UICtrl
.
grid
(
"#orderItemGrid"
,
{
columns
:
[
{
display
:
"采购订单"
,
name
:
"ebeln"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"订单行项目号"
,
name
:
"ebelp"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"序号"
,
name
:
"sequence"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工单"
,
name
:
"aufnr"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"AUFNR"
}
},
back
:
{
AUFNR
:
"aufnr"
,
}
}
}
},
{
display
:
"工序号"
,
name
:
"wempf"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:{
type
:
"text"
,
required
:
true
}
},
{
display
:
"工序描述"
,
name
:
"txz01"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:{
type
:
"text"
,
required
:
true
}
},
{
display
:
"同一工序外发次数"
,
name
:
"ablad"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"数量"
,
name
:
"menge"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:{
type
:
"text"
,
mask
:
'9999999.999'
,
required
:
true
}
},
{
display
:
"单价"
,
name
:
"kbetr"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:{
type
:
"text"
,
mask
:
'9999999.999'
,
required
:
true
}
},
{
display
:
"定价基数"
,
name
:
"kpein"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:{
type
:
"text"
,
mask
:
'9999999.999'
,
required
:
true
}
},
{
display
:
"需求日期"
,
name
:
"eeind"
,
width
:
140
,
minWidth
:
60
,
type
:
"date"
,
align
:
"left"
,
editor
:{
type
:
"date"
,
required
:
true
}
},
{
display
:
"供应商"
,
name
:
"lifnrName"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'suppliers'
,
name
:
"selectSuppliers"
,
getParam
:
function
(
item
)
{
},
back
:
{
partner
:
"lifnr"
,
nameOrg1
:
"lifnrName"
,
}
}
}
},
{
display
:
"单位"
,
name
:
"meinsName"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"MEINS"
}
},
back
:
{
MSEHI
:
"meins"
,
MSEHL
:
"meinsName"
,
}
}
}
},
{
display
:
"币别"
,
name
:
"waersTextView"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:
{
type
:
'dictionary'
,
data
:
{
name
:
'waers'
},
textField
:
'waersTextView'
,
valueField
:
'waers'
,
required
:
true
,
render
:
function
(
item
)
{
return
item
.
waersTextView
;
}
},
},
{
display
:
"税码"
,
name
:
"purchaseMwskzTextView"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
,
editor
:
{
type
:
'dictionary'
,
data
:
{
name
:
'purchaseMwskz'
},
textField
:
'purchaseMwskzTextView'
,
valueField
:
'purchaseMwskz'
,
required
:
true
,
render
:
function
(
item
)
{
return
item
.
purchaseMwskzTextView
;
}
},
}
],
dataAction
:
"server"
,
url
:
web_app
.
name
+
'/processOutsource/queryProcessOutsourceOrderItems.ajax'
,
parms
:
{
processOutsourceId
:
getId
()},
pageSize
:
20
,
usePager
:
true
,
toolbar
:
toolbarOptions
,
enabledEdit
:
true
,
width
:
"98%"
,
height
:
"300px"
,
heightDiff
:
-
8
,
checkbox
:
true
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
});
UICtrl
.
setSearchAreaToggle
(
orderItemGridManager
);
}
// 加载组件信息表格
function
loadMaterialGrid
()
{
var
toolbarOptions
=
null
;
toolbarOptions
=
UICtrl
.
getDefaultToolbarOptions
({
// 添加一行表格
addHandler
:
function
()
{
UICtrl
.
addGridRow
(
materialGridManager
)},
// 删除
deleteHandler
:
function
()
{
var
_grid
=
UICtrl
.
getGridManager
(
'#materialGrid'
);
DataUtil
.
delSelectedRows
({
action
:
'processOutsource/deleteProcessOutsourceMaterial.ajax'
,
param
:
{},
gridManager
:
_grid
,
idFieldName
:
'id'
,
onSuccess
:
function
()
{
materialGridManager
.
loadData
();
}
});
}
});
// 表格
materialGridManager
=
UICtrl
.
grid
(
"#materialGrid"
,
{
gridManager
:
null
,
columns
:
[
{
display
:
"供给物品名称"
,
name
:
"materialName"
,
width
:
300
,
minWidth
:
60
,
type
:
"String"
,
align
:
"left"
,
editor
:
{
type
:
'text'
,
required
:
true
}
},
{
display
:
"数量"
,
name
:
"num"
,
width
:
150
,
minWidth
:
60
,
type
:
"String"
,
align
:
"left"
,
editor
:
{
required
:
true
,
type
:
"text"
,
mask
:
'9999999.999'
}
},
{
display
:
"计量单位"
,
name
:
"unitName"
,
width
:
100
,
minWidth
:
60
,
type
:
"String"
,
align
:
"left"
,
editor
:
{
required
:
true
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"MEINS"
}
},
back
:
{
MSEHI
:
"unit"
,
MSEHL
:
"unitName"
,
}
}
}
},
{
display
:
"运输方式"
,
name
:
"deliveryMethodTextView"
,
width
:
200
,
minWidth
:
60
,
type
:
"String"
,
align
:
"left"
,
editor
:
{
type
:
'dictionary'
,
data
:
{
name
:
'deliveryMethod'
},
textField
:
'deliveryMethodTextView'
,
valueField
:
'deliveryMethod'
,
required
:
true
,
render
:
function
(
item
)
{
return
item
.
deliveryMethodTextView
;
}
}
},
],
dataAction
:
"server"
,
url
:
web_app
.
name
+
'/processOutsource/queryProcessOutsourceMaterials.ajax'
,
parms
:
{
processOutsourceId
:
getId
()},
pageSize
:
20
,
usePager
:
true
,
toolbar
:
toolbarOptions
,
enabledEdit
:
canEdit
,
width
:
"98%"
,
height
:
"300px"
,
heightDiff
:
-
8
,
checkbox
:
true
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
});
UICtrl
.
setSearchAreaToggle
(
materialGridManager
);
}
//获取数据保存的参数
function
getExtendedData
(
processAction
)
{
//回退、打回、转交时,不需要验证必填项是否已经填写;
if
(
processAction
==
ProcessAction
.
BACK
||
processAction
==
ProcessAction
.
REPLENISH
||
processAction
==
ProcessAction
.
TRANSMIT
)
{
//不验证
$
(
'#submitForm'
).
attr
(
'check'
,
false
);
}
var
extendedData
=
{};
var
_grid
=
UICtrl
.
getGridManager
(
'#orderItemGrid'
);
if
(
_grid
)
{
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
_grid
,
isAllData
:
true
});
if
(
!
datas
)
{
return
false
;
}
extendedData
.
orderItems
=
Public
.
encodeJSONURI
(
datas
);
}
var
material_grid
=
UICtrl
.
getGridManager
(
'#materialGrid'
);
if
(
material_grid
)
{
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
material_grid
,
isAllData
:
true
});
if
(
!
datas
)
{
return
false
;
}
extendedData
.
materialItems
=
Public
.
encodeJSONURI
(
datas
);
}
return
extendedData
;
}
function
checkConstraints
(){
//物料组件信息
var
material_grid
=
UICtrl
.
getGridManager
(
'#materialGrid'
);
if
(
material_grid
)
{
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
material_grid
,
isAllData
:
true
});
if
(
!
datas
)
{
return
false
;
}
if
(
isApplyProcUnit
()
&&
datas
.
length
==
0
){
Public
.
tip
(
"物料组件信息必填"
);
return
false
;
}
}
//订单行项目信息
var
orderItem_grid
=
UICtrl
.
getGridManager
(
'#orderItemGrid'
);
if
(
orderItem_grid
)
{
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
orderItem_grid
,
isAllData
:
true
});
if
(
!
datas
)
{
return
false
;
}
if
(
isApplyProcUnit
()
&&
datas
.
length
==
0
){
Public
.
tip
(
"订单行项目信息必填"
);
return
false
;
}
}
return
true
;
}
function
bindEvent
(){
$
(
'#werksName'
).
searchbox
({
type
:
"system"
,
name
:
"dictionary"
,
getParam
:
function
(
item
)
{
return
{
fieldName
:
"WERKS"
}
},
onChange
:
function
(
value
,
data
)
{
$
(
'#werks'
).
val
(
data
.
WERKS
);
$
(
'#werksName'
).
val
(
data
.
NAME1
);
}
});
}
function
reloadGrid
()
{
orderItemGridManager
.
loadData
();
materialGridManager
.
loadData
();
}
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/sap/processOutsource/processOutsourceDetail.jsp
0 → 100644
View file @
98236001
<%@ page
language=
"java"
contentType=
"text/html; charset=utf-8"
%>
<%@taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,combox,commonTree,date,attachment"
/>
<x:script
src=
'/biz/topsun/sap/processOutsource/processOutsourceDetail.js'
/>
</head>
<body>
<x:billTitle
title=
"工序外协申请"
needStatus=
"false"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<x:hidden
name=
"id"
/>
<x:hidden
name=
"sId"
/>
<x:hidden
name=
"applyType"
/>
<x:hidden
name=
"billCode"
/>
<x:hidden
name=
"fillinDate"
type=
"datetime"
/>
<x:hidden
name=
"fullId"
/>
<x:hidden
name=
"organId"
/>
<x:hidden
name=
"organName"
/>
<x:hidden
name=
"deptId"
/>
<x:hidden
name=
"deptName"
/>
<x:hidden
name=
"positionId"
/>
<x:hidden
name=
"positionName"
/>
<x:hidden
name=
"personMemberId"
/>
<x:hidden
name=
"statusId"
/>
<x:hidden
name=
"personMemberName"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:hidden
name=
"werks"
/>
<x:inputC
name=
"werksName"
label=
"工厂"
labelCol=
"2"
fieldCol=
"2"
required=
"true"
wrapper=
"select"
/>
</div>
<div
class=
"hg-form-row"
>
<x:textareaC
name=
"situationDesc"
label=
"情况说明"
labelCol=
"2"
fieldCol=
"10"
required=
"true"
rows=
"3"
/>
</div>
</div>
<div
class=
"blank_div clearfix"
></div>
<x:title
title=
"行项目"
name=
"group"
/>
<div
id=
"orderItemGrid"
style=
"margin: 2px;"
></div>
<div
class=
"blank_div clearfix"
></div>
<x:title
title=
"组件"
name=
"group"
/>
<div
id=
"materialGrid"
style=
"margin: 2px;"
></div>
</form>
</body>
</html>
topsun-xt/src/main/webapp/biz/topsun/sap/processOutsource/processOutsourceList.js
0 → 100644
View file @
98236001
var
gridManager
=
null
;
var
refreshFlag
=
false
;
$
(
document
).
ready
(
function
()
{
initializateUI
()
loadProcessOutsourceOrderListGrid
();
})
function
initializateUI
()
{
UICtrl
.
layout
(
"#layout"
,
{
leftWidth
:
3
});
}
function
loadProcessOutsourceOrderListGrid
()
{
var
toolbarOptions
=
UICtrl
.
getDefaultToolbarOptions
({
addHandler
:
function
(){
addHandler
()
}
});
gridManager
=
UICtrl
.
grid
(
"#processOutsourceOrderGrid"
,
{
columns
:
[
{
display
:
"申请单编号"
,
name
:
"billCode"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"申请状态"
,
name
:
"statusTextView"
,
width
:
60
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"申请日期"
,
name
:
"fillinDate"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工厂"
,
name
:
"werks"
,
width
:
80
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"采购订单"
,
name
:
"ebeln"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"订单行项目号"
,
name
:
"ebelp"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"序号"
,
name
:
"sequence"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工单"
,
name
:
"aufnr"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工序号"
,
name
:
"wempf"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工序描述"
,
name
:
"txz01"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"同一工序外发次数"
,
name
:
"ablad"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"单价"
,
name
:
"kbetr"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"数量"
,
name
:
"menge"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"单位"
,
name
:
"meinsName"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"定价基数"
,
name
:
"kpein"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"币别"
,
name
:
"waersTextView"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"税码"
,
name
:
"purchaseMwskzTextView"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"需求到货日期"
,
name
:
"eeind"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"供应商"
,
name
:
"lifnrName"
,
width
:
140
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"申请人"
,
name
:
"personMemberName"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"申请部门"
,
name
:
"deptName"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
],
dataAction
:
"server"
,
url
:
web_app
.
name
+
'/processOutsource/slicedProcessOutsourceList.ajax'
,
pageSize
:
20
,
usePager
:
true
,
toolbar
:
toolbarOptions
,
sortName
:
"fillinDate"
,
width
:
"100%"
,
height
:
"100%"
,
heightDiff
:
-
8
,
checkbox
:
true
,
async
:
false
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
onDblClickRow
:
function
(
data
,
rowindex
,
rowobj
)
{
doView
(
data
.
processOutsourceId
);
},
});
UICtrl
.
setSearchAreaToggle
(
gridManager
);
}
function
query
(
obj
)
{
var
param
=
$
(
obj
).
formToJSON
();
UICtrl
.
gridSearch
(
gridManager
,
param
);
}
function
reloadGrid
()
{
gridManager
.
loadData
();
}
function
resetForm
(
obj
)
{
$
(
obj
).
formClean
();
}
function
addHandler
()
{
UICtrl
.
addTabItem
({
tabid
:
'processOutsourceApply'
,
text
:
"工序外协申请"
,
url
:
web_app
.
name
+
'/processOutsource/forwardProcessOutsourceDetail.job'
});
}
function
doView
(
processOutsourceId
)
{
UICtrl
.
addTabItem
({
tabid
:
'processOutsource'
+
processOutsourceId
,
text
:
"工序外协申请明细"
,
url
:
web_app
.
name
+
'/processOutsource/showProcessOutsourceDetail.job?isReadOnly=true&bizId='
+
processOutsourceId
});
}
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/sap/processOutsource/processOutsourceList.jsp
0 → 100644
View file @
98236001
<%@ page
contentType=
"text/html; charset=utf-8"
language=
"java"
%>
<%@ taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,combox,commonTree"
/>
<x:script
src=
'/biz/topsun/sap/processOutsource/processOutsourceList.js'
/>
</head>
<body>
<div
class=
"container-fluid"
>
<div
id=
"layout"
>
<div
position=
"center"
title=
"工序外协申请查询"
>
<x:title
title=
"common.button.search"
hideTable=
"queryMainForm"
isHide=
"true"
/>
<form
class=
"hg-form ui-hide"
method=
"post"
action=
""
id=
"queryMainForm"
>
<x:inputC
name=
"billCode"
required=
"false"
label=
"申请单号"
labelCol=
"1"
/>
<x:searchButtons/>
</form>
<div
class=
"blank_div clearfix"
></div>
<div
id=
"processOutsourceOrderGrid"
style=
"margin: 2px;"
></div>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
topsun/src/main/java/com/huigou/topsun/sap/permit/application/impl/SapPermitApplicationImpl.java
View file @
98236001
...
@@ -25,9 +25,6 @@ import com.huigou.uasp.bpm.ProcessAction;
...
@@ -25,9 +25,6 @@ import com.huigou.uasp.bpm.ProcessAction;
import
com.huigou.uasp.bpm.ProcessStartModel
;
import
com.huigou.uasp.bpm.ProcessStartModel
;
import
com.huigou.uasp.bpm.engine.application.WorkflowApplication
;
import
com.huigou.uasp.bpm.engine.application.WorkflowApplication
;
import
com.huigou.util.*
;
import
com.huigou.util.*
;
import
com.itextpdf.text.*
;
import
com.itextpdf.text.html.simpleparser.HTMLWorker
;
import
com.itextpdf.text.pdf.*
;
import
freemarker.template.Template
;
import
freemarker.template.Template
;
...
@@ -199,6 +196,29 @@ public class SapPermitApplicationImpl extends FlowBroker implements SapPermitApp
...
@@ -199,6 +196,29 @@ public class SapPermitApplicationImpl extends FlowBroker implements SapPermitApp
return
permit
.
getId
();
return
permit
.
getId
();
}
}
/**
* 设置任务名称
*/
@Override
protected
void
setTaskDescription
(
DelegateTask
delegateTask
)
{
String
bizId
=
delegateTask
.
getExecution
().
getProcessBusinessKey
();
delegateTask
.
setDescription
(
this
.
getApprovalSubjectName
(
bizId
));
}
/**
* 获取任务标题
*
* @param bizId
* @return
*/
private
String
getApprovalSubjectName
(
String
bizId
)
{
SapPermit
sapPermit
=
this
.
sapPermitRepository
.
findOne
(
bizId
);
//查询 单据日期
String
fillinDateStr
=
DateUtil
.
getDateFormat
(
"yyyy-MM-dd HH:mm:ss"
,
sapPermit
.
getFillinDate
());
//设置标题
return
String
.
format
(
"%s-%s(%s)"
,
"放行条"
,
sapPermit
.
getBillCode
(),
fillinDateStr
);
}
@Override
@Override
public
void
saveSapPermitVo
(
SapPermitVo
sapPermitVo
){
public
void
saveSapPermitVo
(
SapPermitVo
sapPermitVo
){
SapPermit
sapPermit
=
new
SapPermit
();
SapPermit
sapPermit
=
new
SapPermit
();
...
...
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/application/ProcessOutsourceApplication.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
application
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsource
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:01
* @Description:
*/
public
interface
ProcessOutsourceApplication
{
public
static
final
String
QUERY_XML_FILE_PATH
=
"config/topsun/sap/processOutsource/processOutsource.xml"
;
String
PROCESS_DEFINITION_KEY
=
"processOutsourceProc"
;
Map
<
String
,
Object
>
slicedProcessOutsourceList
(
ProcessOutsourceQueryRequest
queryRequest
);
ProcessOutsource
loadProcessOutsource
(
String
id
);
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/application/ProcessOutsourceMaterialApplication.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
application
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceMaterial
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:01
* @Description:
*/
public
interface
ProcessOutsourceMaterialApplication
{
public
static
final
String
QUERY_XML_FILE_PATH
=
"config/topsun/sap/processOutsource/processOutsource.xml"
;
void
saveProcessOutsourceMaterials
(
String
sapPurchaseId
,
List
<
ProcessOutsourceMaterial
>
processOutsourceMaterials
);
Map
<
String
,
Object
>
queryProcessOutsourceMaterials
(
ProcessOutsourceQueryRequest
queryRequest
);
void
deleteByIds
(
List
<
String
>
ids
);
List
<
ProcessOutsourceMaterial
>
findByProcessOutsourceId
(
String
processOutsourceId
);
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/application/ProcessOutsourceOrderItemApplication.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
application
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceOrderItem
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:01
* @Description:
*/
public
interface
ProcessOutsourceOrderItemApplication
{
public
static
final
String
QUERY_XML_FILE_PATH
=
"config/topsun/sap/processOutsource/processOutsource.xml"
;
void
saveProcessOutsourceOrderItems
(
String
sapPurchaseId
,
List
<
ProcessOutsourceOrderItem
>
processOutsourceOrderItems
);
Map
<
String
,
Object
>
queryProcessOutsourceOrderItems
(
ProcessOutsourceQueryRequest
queryRequest
);
void
deleteByIds
(
List
<
String
>
ids
);
List
<
ProcessOutsourceOrderItem
>
findByProcessOutsourceId
(
String
processOutsourceId
);
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/application/impl/ProcessOutsourceApplicationImpl.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
application
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.huigou.cache.SystemCache
;
import
com.huigou.data.domain.model.CommonDomainConstants
;
import
com.huigou.data.query.model.QueryDescriptor
;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.topsun.sap.common.HttpClient
;
import
com.huigou.topsun.sap.common.application.SapMutualEpLogApplication
;
import
com.huigou.topsun.sap.common.domain.SapResult
;
import
com.huigou.topsun.sap.permit.application.SapPermitApplication
;
import
com.huigou.topsun.sap.permit.vo.SapPermitItemVo
;
import
com.huigou.topsun.sap.permit.vo.SapPermitVo
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceApplication
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceMaterialApplication
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceOrderItemApplication
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsource
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceMaterial
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceOrderItem
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
com.huigou.topsun.sap.processOutsource.domain.vo.ProcessOutsourceItemVo
;
import
com.huigou.topsun.sap.processOutsource.domain.vo.ProcessOutsourceVo
;
import
com.huigou.topsun.sap.processOutsource.repository.ProcessOutsourceOrderItemRepository
;
import
com.huigou.topsun.sap.processOutsource.repository.ProcessOutsourceRepository
;
import
com.huigou.topsun.sap.wasteSale.domain.WasteSale
;
import
com.huigou.topsun.sap.wasteSale.domain.WasteSaleItem
;
import
com.huigou.uasp.bmp.common.BizBillStatus
;
import
com.huigou.uasp.bpm.FlowBroker
;
import
com.huigou.util.ClassHelper
;
import
com.huigou.util.DateUtil
;
import
com.huigou.util.StringUtil
;
import
org.activiti.engine.delegate.DelegateExecution
;
import
org.activiti.engine.delegate.DelegateTask
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.Assert
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:01
* @Description:
*/
@Service
(
"processOutsourceApplication"
)
public
class
ProcessOutsourceApplicationImpl
extends
FlowBroker
implements
ProcessOutsourceApplication
{
@Autowired
private
ProcessOutsourceRepository
processOutsourceRepository
;
@Autowired
private
ProcessOutsourceMaterialApplication
processOutsourceMaterialApplication
;
@Autowired
private
ProcessOutsourceOrderItemApplication
processOutsourceOrderItemApplication
;
@Autowired
private
HttpClient
httpClient
;
@Autowired
private
SapMutualEpLogApplication
sapMutualEpLogApplication
;
@Autowired
private
ProcessOutsourceOrderItemRepository
processOutsourceOrderItemRepository
;
@Autowired
private
SapPermitApplication
sapPermitApplication
;
@Override
protected
String
saveBizAndApprovalData
()
{
super
.
saveBizAndApprovalData
();
ProcessOutsource
processOutsource
=
getBizEntity
(
ProcessOutsource
.
class
);
if
(
processOutsource
.
isNew
())
{
processOutsource
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
}
else
{
processOutsource
=
(
ProcessOutsource
)
commonDomainService
.
loadAndFillinProperties
(
processOutsource
);
}
processOutsource
=
processOutsourceRepository
.
save
(
processOutsource
);
//保存组件明细
List
<
ProcessOutsourceMaterial
>
processOutsourceMaterials
=
getBizEntities
(
ProcessOutsourceMaterial
.
class
,
"materialItems"
);
processOutsourceMaterialApplication
.
saveProcessOutsourceMaterials
(
processOutsource
.
getId
(),
processOutsourceMaterials
);
//保存工单明细
List
<
ProcessOutsourceOrderItem
>
orderItems
=
getBizEntities
(
ProcessOutsourceOrderItem
.
class
,
"orderItems"
);
processOutsourceOrderItemApplication
.
saveProcessOutsourceOrderItems
(
processOutsource
.
getId
(),
orderItems
);
//this.sendData(processOutsource);
this
.
startSapPermit
(
processOutsource
);
return
processOutsource
.
getId
();
}
/**
* 设置任务名称
*/
@Override
protected
void
setTaskDescription
(
DelegateTask
delegateTask
)
{
String
bizId
=
delegateTask
.
getExecution
().
getProcessBusinessKey
();
delegateTask
.
setDescription
(
this
.
getApprovalSubjectName
(
bizId
));
}
/**
* 获取任务标题
*
* @param bizId
* @return
*/
private
String
getApprovalSubjectName
(
String
bizId
)
{
ProcessOutsource
processOutsource
=
this
.
processOutsourceRepository
.
findOne
(
bizId
);
//查询 单据日期
String
fillinDateStr
=
DateUtil
.
getDateFormat
(
"yyyy-MM-dd HH:mm:ss"
,
processOutsource
.
getFillinDate
());
//设置标题
return
String
.
format
(
"%s-%s(%s)"
,
"工序外协"
,
processOutsource
.
getBillCode
(),
fillinDateStr
);
}
@Override
protected
Map
<
String
,
Object
>
getProcessBizParams
(
String
bizId
)
{
// 返回业务数据给流程实例,
return
ClassHelper
.
toMap
(
processOutsourceRepository
.
getOne
(
bizId
));
}
/**
* 流程撤销事件
**/
@Override
protected
void
onRecallProcessInstance
(
DelegateExecution
delegateExecution
)
{
String
bizId
=
delegateExecution
.
getProcessBusinessKey
();
// 修改单据状态为申请
updateStatus
(
bizId
,
BizBillStatus
.
APPLYING
);
}
/**
* 任务完成前执行
*/
@Override
protected
void
onBeforeComplete
(
DelegateTask
delegateTask
)
{
super
.
onBeforeComplete
(
delegateTask
);
String
bizId
=
delegateTask
.
getExecution
().
getProcessBusinessKey
();
if
(
this
.
isApplyProcUnit
(
delegateTask
)
&&
this
.
getApprovalParameter
().
isAdvanceProcessAction
())
{
updateStatus
(
bizId
,
BizBillStatus
.
APPROVING
);
}
}
/**
* 回收事件
**/
@Override
protected
void
onWithdraw
(
DelegateTask
delegateTask
,
String
destActivityId
)
{
super
.
onWithdraw
(
delegateTask
,
destActivityId
);
String
bizId
=
delegateTask
.
getExecution
().
getProcessBusinessKey
();
if
(
destActivityId
.
equalsIgnoreCase
(
"apply"
))
{
updateStatus
(
bizId
,
BizBillStatus
.
APPLYING
);
}
}
@Transactional
protected
void
updateStatus
(
String
bizId
,
BizBillStatus
status
)
{
Assert
.
hasText
(
bizId
,
CommonDomainConstants
.
ID_NOT_BLANK
);
this
.
commonDomainService
.
updateStatus
(
ProcessOutsource
.
class
,
bizId
,
status
.
getId
());
}
@Override
protected
void
onEnd
(
DelegateExecution
delegateExecution
)
{
super
.
onEnd
(
delegateExecution
);
String
bizId
=
delegateExecution
.
getProcessBusinessKey
();
BizBillStatus
status
=
approvePassed
()
?
BizBillStatus
.
COMPLETED
:
BizBillStatus
.
ABORTED
;
ProcessOutsource
processOutsource
=
processOutsourceRepository
.
findOne
(
bizId
);
processOutsource
.
setStatusId
(
status
.
getId
());
//推送到SAP
this
.
sendData
(
processOutsource
);
//创建放行条
this
.
startSapPermit
(
processOutsource
);
processOutsourceRepository
.
save
(
processOutsource
);
}
/**
* 转换成SAP JSON格式数据
* @param processOutsource
* @return
*/
public
void
sendData
(
ProcessOutsource
processOutsource
){
List
<
ProcessOutsourceOrderItem
>
orderItems
=
this
.
processOutsourceOrderItemApplication
.
findByProcessOutsourceId
(
processOutsource
.
getId
());
Set
<
String
>
lifnrSets
=
orderItems
.
stream
().
map
(
ProcessOutsourceOrderItem:
:
getLifnr
).
collect
(
Collectors
.
toSet
());
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
lifnrSets
.
forEach
(
lifnrSet
->{
ProcessOutsourceVo
processOutsourceVo
=
new
ProcessOutsourceVo
();
processOutsourceVo
.
setBsart
(
"ZNB3"
);
processOutsourceVo
.
setBukrs
(
"1000"
);
processOutsourceVo
.
setEkorg
(
"1000"
);
processOutsourceVo
.
setEkgrp
(
"003"
);
processOutsourceVo
.
setLifnr
(
lifnrSet
);
List
<
ProcessOutsourceItemVo
>
itemVos
=
new
ArrayList
<>();
int
i
=
10
;
for
(
ProcessOutsourceOrderItem
processOutsourceOrderItem
:
orderItems
)
{
//根据供应商封装一个ProcessOutsourceVo类
if
(
lifnrSet
.
equals
(
processOutsourceOrderItem
.
getLifnr
())){
//自动计数器,匹配条件为“如果之前状态为通过的申请中有相同工单+工序,则计数器+1,起始为1”
List
<
ProcessOutsourceOrderItem
>
outsourceOrderItemList
=
processOutsourceOrderItemRepository
.
findByAufnrAndWempf
(
processOutsourceOrderItem
.
getAufnr
(),
processOutsourceOrderItem
.
getWempf
());
List
<
ProcessOutsourceOrderItem
>
collect
=
outsourceOrderItemList
.
stream
()
.
filter
(
processOutsourceOrderItem1
->
StringUtil
.
isNotBlank
(
processOutsourceOrderItem1
.
getAblad
()))
.
collect
(
Collectors
.
toList
());
processOutsourceOrderItem
.
setAblad
(
String
.
valueOf
(
collect
.
size
()
+
1
));
//ProcessOutsourceItemVo类组装数据
ProcessOutsourceItemVo
processOutsourceItemVo
=
new
ProcessOutsourceItemVo
();
BeanUtil
.
copyProperties
(
processOutsourceOrderItem
,
processOutsourceItemVo
);
processOutsourceItemVo
.
setWerks
(
processOutsource
.
getWerks
());
//默认传F,隐藏
processOutsourceItemVo
.
setKnttp
(
"F"
);
//默认传F00,隐藏
processOutsourceItemVo
.
setMatkl
(
"F00"
);
//操作/活动编号 收货方同一个值
processOutsourceItemVo
.
setVornr
(
processOutsourceOrderItem
.
getWempf
());
//日期转换
if
(
processOutsourceOrderItem
.
getEeind
()
!=
null
){
String
format
=
dateFormat
.
format
(
processOutsourceOrderItem
.
getEeind
());
processOutsourceItemVo
.
setEeind
(
format
);
}
//设置默认值
//processOutsourceVo.setPersonMemberName(processOutsource.getPersonMemberName());
//同一个供应商下的行项目序号
processOutsourceItemVo
.
setEbelp
(
String
.
valueOf
(
i
));
processOutsourceOrderItem
.
setEbelp
(
String
.
valueOf
(
i
));
itemVos
.
add
(
processOutsourceItemVo
);
i
=
i
+
10
;
}
}
processOutsourceVo
.
setItem
(
itemVos
);
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"businessType"
,
"工序外协申请"
);
resultMap
.
put
(
"businessId"
,
processOutsource
.
getId
());
resultMap
.
put
(
"parameter"
,
JSON
.
toJSONString
(
processOutsourceVo
));
try
{
String
url
=
"cud_po_zub/po_zub"
;
//String url = SystemCache.getParameter("", String.class);
String
execute
=
httpClient
.
execute
(
processOutsourceVo
,
url
);
List
<
SapResult
>
resultList
=
JSONObject
.
parseArray
(
execute
,
SapResult
.
class
);
//TODO 待SAP返回数据结构
SapResult
sapResult
=
resultList
.
get
(
0
);
if
(!
"S"
.
equals
(
sapResult
.
getTYPE
())){
List
<
String
>
messages
=
resultList
.
stream
()
.
map
(
SapResult:
:
getMESSAGE
).
collect
(
Collectors
.
toList
());
throw
new
RuntimeException
(
"数据传输失败,"
+
String
.
join
(
";"
,
messages
));
}
else
{
resultMap
.
put
(
"TYPE"
,
sapResult
.
getTYPE
());
resultMap
.
put
(
"MESSAGE"
,
sapResult
.
getMESSAGE
());
}
orderItems
.
stream
().
forEach
(
orderItem
->{
//根据供应商来匹配赋值采购订单号
if
(
lifnrSet
.
equals
(
orderItem
.
getLifnr
())){
orderItem
.
setEbeln
(
sapResult
.
getMESSAGE_V1
());
processOutsourceOrderItemRepository
.
save
(
orderItem
);
}
});
}
catch
(
IOException
e
)
{
resultMap
.
put
(
"TYPE"
,
"E"
);
resultMap
.
put
(
"MESSAGE"
,
e
.
getMessage
());
throw
new
RuntimeException
(
e
);
}
finally
{
sapMutualEpLogApplication
.
saveSapMutualEpLog
(
resultMap
);
}
});
}
/**
* 推送SAP成功后,自动创建放行条
* @param processOutsource
*/
public
void
startSapPermit
(
ProcessOutsource
processOutsource
){
List
<
ProcessOutsourceMaterial
>
materialList
=
processOutsourceMaterialApplication
.
findByProcessOutsourceId
(
processOutsource
.
getId
());
SapPermitVo
sapPermitVo
=
new
SapPermitVo
();
sapPermitVo
.
setApplyPerson
(
processOutsource
.
getPersonMemberId
());
sapPermitVo
.
setApplyPersonName
(
processOutsource
.
getPersonMemberName
());
sapPermitVo
.
setDutyDepart
(
processOutsource
.
getDeptId
());
sapPermitVo
.
setDutyDepartName
(
processOutsource
.
getDeptName
());
sapPermitVo
.
setPermitDate
(
new
Date
());
List
<
SapPermitItemVo
>
sapPermitItemVos
=
new
ArrayList
<>();
for
(
ProcessOutsourceMaterial
material
:
materialList
)
{
SapPermitItemVo
sapPermitItemVo
=
new
SapPermitItemVo
();
sapPermitItemVo
.
setBelongings
(
material
.
getMaterialName
());
String
remark
=
"工序外协单:"
+
processOutsource
.
getBillCode
();
sapPermitItemVo
.
setRemark
(
remark
);
sapPermitItemVo
.
setQuantity
(
material
.
getNum
());
sapPermitItemVo
.
setUnit
(
material
.
getUnit
());
sapPermitItemVo
.
setUnitName
(
material
.
getUnitName
());
sapPermitItemVos
.
add
(
sapPermitItemVo
);
}
sapPermitVo
.
setItemVos
(
sapPermitItemVos
);
//创建放行条
sapPermitApplication
.
saveSapPermitVo
(
sapPermitVo
);
}
@Override
protected
void
onAbortProcessInstance
(
DelegateExecution
delegateExecution
)
{
super
.
onAbortProcessInstance
(
delegateExecution
);
String
bizId
=
delegateExecution
.
getProcessBusinessKey
();
ProcessOutsource
processOutsource
=
processOutsourceRepository
.
findOne
(
bizId
);
processOutsource
.
setStatusId
(
BizBillStatus
.
ABORTED
.
getId
());
processOutsourceRepository
.
save
(
processOutsource
);
}
/**
* @param delegateTask
* @param destActivityId 回退到的目标节点id
*/
@Override
protected
void
onBack
(
DelegateTask
delegateTask
,
String
destActivityId
)
{
super
.
onBack
(
delegateTask
,
destActivityId
);
if
(
"Apply"
.
equalsIgnoreCase
(
destActivityId
))
{
String
bizId
=
delegateTask
.
getExecution
().
getProcessBusinessKey
();
ProcessOutsource
processOutsource
=
processOutsourceRepository
.
findOne
(
bizId
);
processOutsource
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
processOutsourceRepository
.
save
(
processOutsource
);
}
}
@Override
public
Map
<
String
,
Object
>
slicedProcessOutsourceList
(
ProcessOutsourceQueryRequest
queryRequest
)
{
QueryDescriptor
queryDescriptor
=
this
.
sqlExecutorDao
.
getQuery
(
QUERY_XML_FILE_PATH
,
"slicedProcessOutsourceList"
);
QueryModel
queryModel
=
this
.
sqlExecutorDao
.
getQueryModel
(
queryDescriptor
,
queryRequest
);
return
this
.
sqlExecutorDao
.
executeSlicedQuery
(
queryModel
);
}
@Override
public
ProcessOutsource
loadProcessOutsource
(
String
id
)
{
return
processOutsourceRepository
.
findOne
(
id
);
}
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/application/impl/ProcessOutsourceMaterialApplicationImpl.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
application
.
impl
;
import
com.huigou.data.query.model.QueryDescriptor
;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceMaterialApplication
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceMaterial
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
com.huigou.topsun.sap.processOutsource.repository.ProcessOutsourceMaterialRepository
;
import
com.huigou.uasp.bmp.common.application.BaseApplication
;
import
com.huigou.util.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:02
* @Description:
*/
@Service
(
"processOutsourceMaterialApplication"
)
public
class
ProcessOutsourceMaterialApplicationImpl
extends
BaseApplication
implements
ProcessOutsourceMaterialApplication
{
@Autowired
private
ProcessOutsourceMaterialRepository
processOutsourceMaterialRepository
;
@Override
public
void
saveProcessOutsourceMaterials
(
String
processOutsourceMaterialId
,
List
<
ProcessOutsourceMaterial
>
processOutsourceMaterialItems
)
{
processOutsourceMaterialItems
.
forEach
(
processOutsourceMaterialItem
->{
processOutsourceMaterialItem
.
setProcessOutsourceId
(
processOutsourceMaterialId
);
processOutsourceMaterialRepository
.
save
(
processOutsourceMaterialItem
);
});
}
@Override
public
Map
<
String
,
Object
>
queryProcessOutsourceMaterials
(
ProcessOutsourceQueryRequest
queryRequest
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
StringUtil
.
isNotBlank
(
queryRequest
.
getProcessOutsourceId
())){
QueryDescriptor
queryDescriptor
=
this
.
sqlExecutorDao
.
getQuery
(
QUERY_XML_FILE_PATH
,
"processOutsourceMaterialItems"
);
QueryModel
queryModel
=
this
.
sqlExecutorDao
.
getQueryModel
(
queryDescriptor
,
queryRequest
);
map
=
this
.
sqlExecutorDao
.
executeSlicedQuery
(
queryModel
);
}
return
map
;
}
@Override
public
void
deleteByIds
(
List
<
String
>
ids
)
{
ids
.
forEach
(
id
->{
processOutsourceMaterialRepository
.
delete
(
id
);
});
}
@Override
public
List
<
ProcessOutsourceMaterial
>
findByProcessOutsourceId
(
String
processOutsourceId
)
{
return
processOutsourceMaterialRepository
.
findByProcessOutsourceId
(
processOutsourceId
);
}
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/application/impl/ProcessOutsourceOrderItemApplicationImpl.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
application
.
impl
;
import
com.huigou.data.query.model.QueryDescriptor
;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceOrderItemApplication
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceOrderItem
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
com.huigou.topsun.sap.processOutsource.repository.ProcessOutsourceOrderItemRepository
;
import
com.huigou.uasp.bmp.common.application.BaseApplication
;
import
com.huigou.util.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:02
* @Description:
*/
@Service
(
"processOutsourceOrderItemApplication"
)
public
class
ProcessOutsourceOrderItemApplicationImpl
extends
BaseApplication
implements
ProcessOutsourceOrderItemApplication
{
@Autowired
private
ProcessOutsourceOrderItemRepository
processOutsourceOrderItemRepository
;
@Override
public
void
saveProcessOutsourceOrderItems
(
String
processOutsourceOrderItemId
,
List
<
ProcessOutsourceOrderItem
>
processOutsourceOrderItemItems
)
{
processOutsourceOrderItemItems
.
forEach
(
processOutsourceOrderItemItem
->{
processOutsourceOrderItemItem
.
setProcessOutsourceId
(
processOutsourceOrderItemId
);
processOutsourceOrderItemRepository
.
save
(
processOutsourceOrderItemItem
);
});
}
@Override
public
Map
<
String
,
Object
>
queryProcessOutsourceOrderItems
(
ProcessOutsourceQueryRequest
queryRequest
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
StringUtil
.
isNotBlank
(
queryRequest
.
getProcessOutsourceId
())){
QueryDescriptor
queryDescriptor
=
this
.
sqlExecutorDao
.
getQuery
(
QUERY_XML_FILE_PATH
,
"processOutsourceOrderItems"
);
QueryModel
queryModel
=
this
.
sqlExecutorDao
.
getQueryModel
(
queryDescriptor
,
queryRequest
);
map
=
this
.
sqlExecutorDao
.
executeSlicedQuery
(
queryModel
);
}
return
map
;
}
@Override
public
void
deleteByIds
(
List
<
String
>
ids
)
{
ids
.
forEach
(
id
->{
processOutsourceOrderItemRepository
.
delete
(
id
);
});
}
@Override
public
List
<
ProcessOutsourceOrderItem
>
findByProcessOutsourceId
(
String
processOutsourceId
)
{
return
processOutsourceOrderItemRepository
.
findByProcessOutsourceId
(
processOutsourceId
);
}
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/controller/ProcessOutsourceController.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
controller
;
import
com.huigou.context.Operator
;
import
com.huigou.context.OrgUnit
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceApplication
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceMaterialApplication
;
import
com.huigou.topsun.sap.processOutsource.application.ProcessOutsourceOrderItemApplication
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsource
;
import
com.huigou.topsun.sap.processOutsource.domain.query.ProcessOutsourceQueryRequest
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.bmp.common.BizBillStatus
;
import
com.huigou.uasp.client.CommonController
;
import
com.huigou.util.SDO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:43
* @Description:
*/
@Controller
@ControllerMapping
(
"/processOutsource"
)
public
class
ProcessOutsourceController
extends
CommonController
{
@Override
protected
String
getPagePath
()
{
return
"/biz/topsun/sap/processOutsource/"
;
}
@Autowired
private
ProcessOutsourceApplication
processOutsourceApplication
;
@Autowired
private
ProcessOutsourceMaterialApplication
processOutsourceMaterialApplication
;
@Autowired
private
ProcessOutsourceOrderItemApplication
processOutsourceOrderItemApplication
;
public
String
forwardProcessOutsourceList
(){
return
forward
(
"processOutsourceList"
);
}
public
String
slicedProcessOutsourceList
(){
SDO
sdo
=
this
.
getSDO
();
ProcessOutsourceQueryRequest
queryRequest
=
sdo
.
toQueryRequest
(
ProcessOutsourceQueryRequest
.
class
);
Map
<
String
,
Object
>
map
=
processOutsourceApplication
.
slicedProcessOutsourceList
(
queryRequest
);
return
toResult
(
map
);
}
public
String
forwardProcessOutsourceDetail
(){
this
.
putAttribute
(
"processDefinitionKey"
,
ProcessOutsourceApplication
.
PROCESS_DEFINITION_KEY
);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this
.
putAttribute
(
"procUnitId"
,
"Apply"
);
ProcessOutsource
processOutsource
=
new
ProcessOutsource
();
processOutsource
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
Operator
operator
=
getOperator
();
processOutsource
.
setDefaultValues
(
new
OrgUnit
(
operator
.
getFullId
(),
operator
.
getFullName
()));
return
forward
(
"processOutsourceDetail"
,
processOutsource
);
}
public
String
showProcessOutsourceDetail
(){
SDO
sdo
=
this
.
getSDO
();
String
id
=
sdo
.
getBizId
();
ProcessOutsource
processOutsource
=
processOutsourceApplication
.
loadProcessOutsource
(
id
);
return
forward
(
"processOutsourceDetail"
,
processOutsource
);
}
public
String
queryProcessOutsourceOrderItems
(){
SDO
sdo
=
this
.
getSDO
();
ProcessOutsourceQueryRequest
queryRequest
=
sdo
.
toQueryRequest
(
ProcessOutsourceQueryRequest
.
class
);
Map
<
String
,
Object
>
map
=
this
.
processOutsourceOrderItemApplication
.
queryProcessOutsourceOrderItems
(
queryRequest
);
return
toResult
(
map
);
}
public
String
deleteProcessOutsourceOrderItem
(){
SDO
sdo
=
this
.
getSDO
();
List
<
String
>
ids
=
sdo
.
getIds
();
processOutsourceOrderItemApplication
.
deleteByIds
(
ids
);
return
success
();
}
public
String
queryProcessOutsourceMaterials
(){
SDO
sdo
=
this
.
getSDO
();
ProcessOutsourceQueryRequest
queryRequest
=
sdo
.
toQueryRequest
(
ProcessOutsourceQueryRequest
.
class
);
Map
<
String
,
Object
>
map
=
this
.
processOutsourceMaterialApplication
.
queryProcessOutsourceMaterials
(
queryRequest
);
return
toResult
(
map
);
}
public
String
deleteProcessOutsourceMaterial
(){
SDO
sdo
=
this
.
getSDO
();
List
<
String
>
ids
=
sdo
.
getIds
();
processOutsourceOrderItemApplication
.
deleteByIds
(
ids
);
return
success
();
}
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/domain/ProcessOutsource.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
domain
;
import
com.huigou.data.domain.model.FlowBillAbstractEntity
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:42
* @Description: 工序外协申请单
*/
@Data
@Entity
@Table
(
name
=
"sap_process_outsource"
)
public
class
ProcessOutsource
extends
FlowBillAbstractEntity
{
@Column
(
name
=
"werks"
)
private
String
werks
;
@Column
(
name
=
"werks_name"
)
private
String
werksName
;
/**
* 情况说明
*/
@Column
(
name
=
"situation_desc"
)
private
String
situationDesc
;
@Override
protected
String
getCodeRuleId
()
{
return
"processOutsource"
;
}
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/domain/ProcessOutsourceMaterial.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
domain
;
import
com.huigou.data.domain.model.AbstractEntity
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
java.math.BigDecimal
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:52
* @Description: 工序外协申请组件
*/
@Data
@Entity
@Table
(
name
=
"sap_process_outsource_material"
)
public
class
ProcessOutsourceMaterial
extends
AbstractEntity
{
@Column
(
name
=
"process_outsource_id"
)
private
String
processOutsourceId
;
@Column
(
name
=
"material_name"
)
private
String
materialName
;
@Column
(
name
=
"num"
)
private
BigDecimal
num
;
@Column
(
name
=
"unit"
)
private
String
unit
;
@Column
(
name
=
"unit_name"
)
private
String
unitName
;
@Column
(
name
=
"delivery_method"
)
private
String
deliveryMethod
;
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/domain/ProcessOutsourceOrderItem.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
domain
;
import
com.huigou.data.domain.model.AbstractEntity
;
import
com.huigou.data.domain.model.FlowBillAbstractEntity
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:42
* @Description: 工序外协申请单订单明细
*/
@Data
@Entity
@Table
(
name
=
"sap_process_outsource_order_item"
)
public
class
ProcessOutsourceOrderItem
extends
AbstractEntity
{
@Column
(
name
=
"process_outsource_id"
)
private
String
processOutsourceId
;
/**
* SAP采购订单
*/
@Column
(
name
=
"EBELN"
)
private
String
ebeln
;
/**
* 订单行项目号
*/
@Column
(
name
=
"EBELP"
)
private
String
ebelp
;
/**
* 序号
*/
@Column
(
name
=
"sequence"
)
private
String
sequence
;
/**
* 工单
*/
@Column
(
name
=
"AUFNR"
)
private
String
aufnr
;
/**
* 工序号
*/
@Column
(
name
=
"WEMPF"
)
private
String
wempf
;
/**
* 工序描述
*/
@Column
(
name
=
"TXZ01"
)
private
String
txz01
;
/**
* 同一工序外发次数
* 自动计数器,匹配条件为“如果之前状态为通过的申请中有相同工单+工序,则计数器+1,起始为1”
*/
@Column
(
name
=
"ABLAD"
)
private
String
ablad
;
/**
* 数量
*/
@Column
(
name
=
"MENGE"
)
private
BigDecimal
menge
;
/**
* 单位
*/
@Column
(
name
=
"MEINS"
)
private
String
meins
;
/**
* 单位描述
*/
@Column
(
name
=
"MEINS_NAME"
)
private
String
meinsName
;
/**
* 需求到货日期
*/
@Column
(
name
=
"EEIND"
)
private
Date
eeind
;
/**
* 供应商编码
*/
@Column
(
name
=
"LIFNR"
)
private
String
lifnr
;
/**
* 供应商名称
*/
@Column
(
name
=
"LIFNR_NAME"
)
private
String
lifnrName
;
/**
* 单价
*/
@Column
(
name
=
"KBETR"
)
private
BigDecimal
kbetr
;
/**
* 税码
*/
@Column
(
name
=
"PURCHASE_MWSKZ"
)
private
String
purchaseMwskz
;
/**
* 定价基数 默认为1,可修改
*/
@Column
(
name
=
"KPEIN"
)
private
BigDecimal
kpein
;
/**
* 币别
*/
@Column
(
name
=
"WAERS"
)
private
String
waers
;
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/domain/query/ProcessOutsourceQueryRequest.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
domain
.
query
;
import
com.huigou.data.domain.query.QueryAbstractRequest
;
import
lombok.Data
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:04
* @Description:
*/
@Data
public
class
ProcessOutsourceQueryRequest
extends
QueryAbstractRequest
{
private
String
billCode
;
private
String
processOutsourceId
;
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/domain/vo/ProcessOutsourceItemVo.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.ws.rs.DefaultValue
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:42
* @Description: 工序外协申请单
*/
@Data
public
class
ProcessOutsourceItemVo
implements
Serializable
{
/**
* SAP采购订单
*/
@JsonProperty
(
"EBELN"
)
private
String
ebeln
;
/**
* 订单行项目号
*/
@JsonProperty
(
"EBELP"
)
private
String
ebelp
;
/**
* 物料编码
*/
@JsonProperty
(
"MATNR"
)
private
String
matnr
;
/**
* 物料描述
*/
@JsonProperty
(
"MAKTX"
)
private
String
txz01
;
/**
* 数量
*/
@JsonProperty
(
"MENGE"
)
private
BigDecimal
menge
;
/**
* 单位
*/
@JsonProperty
(
"MEINS"
)
private
String
meins
;
/**
* 需求到货日期
*/
@JsonProperty
(
"EEIND"
)
private
String
eeind
;
/**
* 工厂
*/
@JsonProperty
(
"WERKS"
)
private
String
werks
;
/**
* 存储地点
*/
@JsonProperty
(
"LGORT"
)
private
String
lgort
;
/**
* 工单
*/
@JsonProperty
(
"AUFNR"
)
private
String
aufnr
;
/**
* 操作/活动编号
*/
@JsonProperty
(
"VORNR"
)
private
String
vornr
;
/**
* 收货方
*/
@JsonProperty
(
"WEMPF"
)
private
String
wempf
;
/**
* 同一工序外发次数
* 自动计数器,匹配条件为“如果之前状态为通过的申请中有相同工单+工序,则计数器+1,起始为1”
*/
@JsonProperty
(
"ABLAD"
)
private
String
ablad
;
/**
* 单价
*/
@JsonProperty
(
"KBETR"
)
private
BigDecimal
kbetr
;
/**
* 税码
*/
@JsonProperty
(
"MWSKZ"
)
private
String
purchaseMwskz
;
/**
* 物料组
*/
@JsonProperty
(
"MATKL"
)
private
String
matkl
;
/**
* 科目分配类别
*/
@JsonProperty
(
"KNTTP"
)
private
String
knttp
;
/**
* 条件定价单位
*/
@JsonProperty
(
"KPEIN"
)
private
BigDecimal
kpein
;
/**
*货币码
*/
@JsonProperty
(
"WAERS"
)
private
String
waers
;
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/domain/vo/ProcessOutsourceVo.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:42
* @Description: 工序外协申请单
*/
@Data
public
class
ProcessOutsourceVo
implements
Serializable
{
@JsonProperty
(
"ZTYPE"
)
private
String
ztype
;
/**
* 订单类型
*/
@JsonProperty
(
"BSART"
)
private
String
bsart
;
/**
* 申请人
*/
// @JsonProperty("AFNAM")
// private String personMemberName;
/**
* 公司代码
*/
@JsonProperty
(
"BUKRS"
)
private
String
bukrs
;
/**
* 采购组织
*/
@JsonProperty
(
"EKORG"
)
private
String
ekorg
;
/**
* 采购组
*/
@JsonProperty
(
"EKGRP"
)
private
String
ekgrp
;
/**
* 供应商编码
*/
@JsonProperty
(
"LIFNR"
)
private
String
lifnr
;
@JsonProperty
(
"ITEM"
)
private
List
<
ProcessOutsourceItemVo
>
item
;
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/repository/ProcessOutsourceMaterialRepository.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
repository
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceMaterial
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:55
* @Description:
*/
public
interface
ProcessOutsourceMaterialRepository
extends
JpaRepository
<
ProcessOutsourceMaterial
,
String
>
{
List
<
ProcessOutsourceMaterial
>
findByProcessOutsourceId
(
String
processOutsourceId
);
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/repository/ProcessOutsourceOrderItemRepository.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
repository
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsourceOrderItem
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/10:00
* @Description:
*/
public
interface
ProcessOutsourceOrderItemRepository
extends
JpaRepository
<
ProcessOutsourceOrderItem
,
String
>
{
List
<
ProcessOutsourceOrderItem
>
findByProcessOutsourceId
(
String
processOutsourceId
);
List
<
ProcessOutsourceOrderItem
>
findByAufnrAndWempf
(
String
aufnr
,
String
wempf
);
}
topsun/src/main/java/com/huigou/topsun/sap/processOutsource/repository/ProcessOutsourceRepository.java
0 → 100644
View file @
98236001
package
com
.
huigou
.
topsun
.
sap
.
processOutsource
.
repository
;
import
com.huigou.topsun.sap.processOutsource.domain.ProcessOutsource
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
java.util.List
;
/**
* @Auther: xin.lu
* @Date: 2024/08/02/9:55
* @Description:
*/
public
interface
ProcessOutsourceRepository
extends
JpaRepository
<
ProcessOutsource
,
String
>
{
}
topsun/src/main/resources/config/bpm/topsun/sap/processOutsource/processOutsource.bpmn
0 → 100644
View file @
98236001
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:activiti=
"http://activiti.org/bpmn"
xmlns:bpmndi=
"http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc=
"http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi=
"http://www.omg.org/spec/DD/20100524/DI"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://www.w3.org/1999/XPath"
targetNamespace=
"http://www.activiti.org/test"
>
<process
id=
"processOutsourceProc"
name=
"工序外协"
isExecutable=
"true"
>
<extensionElements>
<activiti:executionListener
event=
"start"
delegateExpression=
"#{processOutsourceApplication}"
></activiti:executionListener>
<activiti:executionListener
event=
"end"
delegateExpression=
"#{processOutsourceApplication}"
></activiti:executionListener>
</extensionElements>
<startEvent
id=
"startevent1"
name=
"Start"
></startEvent>
<endEvent
id=
"endevent1"
name=
"End"
></endEvent>
<userTask
id=
"Apply"
name=
"工序外协申请"
activiti:formKey=
"processOutsource/showProcessOutsourceDetail.job"
>
<extensionElements>
<activiti:taskListener
event=
"all"
delegateExpression=
"#{processOutsourceApplication}"
></activiti:taskListener>
<activiti:taskListener
event=
"saveBizData"
delegateExpression=
"#{processOutsourceApplication}"
></activiti:taskListener>
</extensionElements>
</userTask>
<userTask
id=
"Approve"
name=
"工序外协审批"
activiti:assignee=
"${assignee} "
activiti:formKey=
"processOutsource/showProcessOutsourceDetail.job"
>
<extensionElements>
<activiti:taskListener
event=
"all"
delegateExpression=
"#{processOutsourceApplication}"
></activiti:taskListener>
<activiti:taskListener
event=
"saveBizData"
delegateExpression=
"#{processOutsourceApplication}"
></activiti:taskListener>
</extensionElements>
<multiInstanceLoopCharacteristics
isSequential=
"false"
activiti:collection=
"handlerList"
activiti:elementVariable=
"assignee"
>
<completionCondition>
${chiefApprovePassed}
</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
<sequenceFlow
id=
"flow1"
sourceRef=
"startevent1"
targetRef=
"Apply"
></sequenceFlow>
<sequenceFlow
id=
"flow2"
sourceRef=
"Apply"
targetRef=
"Approve"
></sequenceFlow>
<exclusiveGateway
id=
"ApproveFinished"
name=
"审批结束"
></exclusiveGateway>
<sequenceFlow
id=
"flow3"
name=
"审批通过"
sourceRef=
"ApprovePassed"
targetRef=
"ApproveFinished"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${approvePassed}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow4"
name=
"审批结束"
sourceRef=
"ApproveFinished"
targetRef=
"endevent1"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${approveFinished}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow5"
name=
"审批未结束"
sourceRef=
"ApproveFinished"
targetRef=
"Approve"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${!approveFinished}]]>
</conditionExpression>
</sequenceFlow>
<exclusiveGateway
id=
"ApprovePassed"
name=
"审批通过"
></exclusiveGateway>
<sequenceFlow
id=
"flow6"
sourceRef=
"Approve"
targetRef=
"ApprovePassed"
></sequenceFlow>
<sequenceFlow
id=
"flow9"
name=
"审批未通过"
sourceRef=
"ApprovePassed"
targetRef=
"Apply"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${!approvePassed}]]>
</conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram
id=
"BPMNDiagram_processOutsourceProc"
>
<bpmndi:BPMNPlane
bpmnElement=
"processOutsourceProc"
id=
"BPMNPlane_processOutsourceProc"
>
<bpmndi:BPMNShape
bpmnElement=
"startevent1"
id=
"BPMNShape_startevent1"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"355.0"
y=
"50.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"endevent1"
id=
"BPMNShape_endevent1"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"355.0"
y=
"550.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"Apply"
id=
"BPMNShape_Apply"
>
<omgdc:Bounds
height=
"55.0"
width=
"161.0"
x=
"292.0"
y=
"140.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"Approve"
id=
"BPMNShape_Approve"
>
<omgdc:Bounds
height=
"55.0"
width=
"161.0"
x=
"292.0"
y=
"240.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"ApproveFinished"
id=
"BPMNShape_ApproveFinished"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"352.0"
y=
"440.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"ApprovePassed"
id=
"BPMNShape_ApprovePassed"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"352.0"
y=
"349.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge
bpmnElement=
"flow1"
id=
"BPMNEdge_flow1"
>
<omgdi:waypoint
x=
"372.0"
y=
"85.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"140.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow2"
id=
"BPMNEdge_flow2"
>
<omgdi:waypoint
x=
"372.0"
y=
"195.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"240.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow3"
id=
"BPMNEdge_flow3"
>
<omgdi:waypoint
x=
"372.0"
y=
"389.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"440.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"48.0"
x=
"320.0"
y=
"396.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow4"
id=
"BPMNEdge_flow4"
>
<omgdi:waypoint
x=
"372.0"
y=
"480.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"550.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"48.0"
x=
"382.0"
y=
"489.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow5"
id=
"BPMNEdge_flow5"
>
<omgdi:waypoint
x=
"392.0"
y=
"460.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"519.0"
y=
"459.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"519.0"
y=
"317.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"519.0"
y=
"267.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"489.0"
y=
"267.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"453.0"
y=
"267.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"60.0"
x=
"459.0"
y=
"411.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow6"
id=
"BPMNEdge_flow6"
>
<omgdi:waypoint
x=
"372.0"
y=
"295.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"349.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow9"
id=
"BPMNEdge_flow9"
>
<omgdi:waypoint
x=
"352.0"
y=
"369.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"231.0"
y=
"369.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"231.0"
y=
"167.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"292.0"
y=
"167.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"60.0"
x=
"257.0"
y=
"376.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
topsun/src/main/resources/config/topsun/sap/processOutsource/processOutsource.xml
0 → 100644
View file @
98236001
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query
name=
"slicedProcessOutsourceList"
table=
"sap_process_outsource"
>
<sql-query>
SELECT
ot.*,
t.werks_name,
t.fillin_date,
t.bill_code,
t.`status`,
t.person_member_name
FROM sap_process_outsource_order_item ot
LEFT JOIN sap_process_outsource t ON t.id = ot.process_outsource_id where 1=1
</sql-query>
<condition
column=
"bill_code"
name=
"billCode"
type=
"java.lang.String"
symbol=
"like"
alias=
"t"
/>
</query>
<query
name=
"processOutsourceMaterialItems"
label=
"组件明细"
table=
"sap_process_outsource_material"
>
<sql-query>
select t.* from sap_process_outsource_material t where 1=1
</sql-query>
<condition
column=
"process_outsource_id"
name=
"processOutsourceId"
type=
"java.lang.String"
symbol=
"="
alias=
"t"
/>
</query>
<query
name=
"processOutsourceOrderItems"
label=
"订单明细"
table=
"sap_process_outsource_order_item"
>
<sql-query>
select t.* from sap_process_outsource_order_item t where 1=1
</sql-query>
<condition
column=
"process_outsource_id"
name=
"processOutsourceId"
type=
"java.lang.String"
symbol=
"="
alias=
"t"
/>
</query>
<query
name=
"countProcessOutsourceOrderItem"
table=
"sap_process_outsource_order_item"
>
<sql-query>
select count(t.id) as num from sap_process_outsource_order_item t where t.aufnr = ? and t.wempf = ?
</sql-query>
</query>
</query-mappings>
\ 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