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
827d32b7
Commit
827d32b7
authored
Jan 09, 2024
by
鲁鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SAP采购审批
parent
0cb62a27
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
1185 additions
and
10 deletions
+1185
-10
sapPurchaseApprovalDetail.js
.../topsun/sap/purchaseApproval/sapPurchaseApprovalDetail.js
+174
-0
sapPurchaseApprovalDetail.jsp
...topsun/sap/purchaseApproval/sapPurchaseApprovalDetail.jsp
+38
-0
sapPurchaseApprovalList.js
...iz/topsun/sap/purchaseApproval/sapPurchaseApprovalList.js
+101
-0
sapPurchaseApprovalList.jsp
...z/topsun/sap/purchaseApproval/sapPurchaseApprovalList.jsp
+30
-0
ResourceSearchController.java
...om/huigou/topsun/controller/ResourceSearchController.java
+29
-2
DefaultHttpClient.java
.../java/com/huigou/topsun/sap/common/DefaultHttpClient.java
+3
-8
SapDictionaryApplication.java
.../sap/dictionary/application/SapDictionaryApplication.java
+14
-0
SapDictionaryApplicationImpl.java
...ionary/application/impl/SapDictionaryApplicationImpl.java
+36
-0
SapDictionaryController.java
...un/sap/dictionary/controller/SapDictionaryController.java
+28
-0
SapPurchaseApprovalApplication.java
...eApproval/application/SapPurchaseApprovalApplication.java
+21
-0
SapPurchaseApprovalItemApplication.java
...roval/application/SapPurchaseApprovalItemApplication.java
+22
-0
SapPurchaseApprovalApplicationImpl.java
.../application/impl/SapPurchaseApprovalApplicationImpl.java
+130
-0
SapPurchaseApprovalItemApplicationImpl.java
...lication/impl/SapPurchaseApprovalItemApplicationImpl.java
+52
-0
SapPurchaseApprovalController.java
...aseApproval/controller/SapPurchaseApprovalController.java
+74
-0
SapPurchaseApprovalItemController.java
...pproval/controller/SapPurchaseApprovalItemController.java
+42
-0
SapPurchaseApproval.java
...psun/sap/purchaseApproval/domain/SapPurchaseApproval.java
+41
-0
SapPurchaseApprovalItem.java
.../sap/purchaseApproval/domain/SapPurchaseApprovalItem.java
+164
-0
SapPurchaseApprovalItemQueryRequest.java
...val/domain/query/SapPurchaseApprovalItemQueryRequest.java
+18
-0
SapPurchaseApprovalQueryRequest.java
...pproval/domain/query/SapPurchaseApprovalQueryRequest.java
+13
-0
SapPurchaseApprovalItemRepository.java
...pproval/repository/SapPurchaseApprovalItemRepository.java
+12
-0
SapPurchaseApprovalRepository.java
...aseApproval/repository/SapPurchaseApprovalRepository.java
+12
-0
sapPurchaseApprovalProc.bpmn
...psun/sap/sapPurchaseApproval/sapPurchaseApprovalProc.bpmn
+111
-0
sapPurchaseApproval.xml
...ig/topsun/sap/sapPurchaseApproval/sapPurchaseApproval.xml
+10
-0
sapPurchaseApprovalItem.xml
...opsun/sap/sapPurchaseApproval/sapPurchaseApprovalItem.xml
+10
-0
No files found.
topsun-xt/src/main/webapp/biz/topsun/sap/purchaseApproval/sapPurchaseApprovalDetail.js
0 → 100644
View file @
827d32b7
var
itemGridManager
=
null
;
$
(
function
()
{
initItemGrid
();
bindEvent
();
});
function
bindEvent
()
{
}
function
initItemGrid
()
{
var
toolbarOptions
=
UICtrl
.
getDefaultToolbarOptions
({
addHandler
:
function
(){
UICtrl
.
addGridRow
(
itemGridManager
);
},
deleteHandler
:
function
(){
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
DataUtil
.
delSelectedRows
({
action
:
'sapPurchaseApprovalItem/deleteSapPurchaseApprovalItem.ajax'
,
param
:
{},
gridManager
:
_grid
,
idFieldName
:
'id'
,
onSuccess
:
function
()
{
reloadGrid
();
}
});
},
});
itemGridManager
=
UICtrl
.
grid
(
'#maingrid'
,
{
columns
:
getGridColumns
(),
dataAction
:
'server'
,
url
:
web_app
.
name
+
'/sapPurchaseApprovalItem/querySapPurchaseApprovalItems.ajax'
,
parms
:{
sapPurchaseId
:
getId
()},
height
:
'99.6%'
,
heightDiff
:
-
4
,
sortName
:
'id'
,
sortOrder
:
'asc'
,
checkbox
:
true
,
usePager
:
true
,
rownumbers
:
true
,
enabledEdit
:
true
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
//autoApplyNextEditor:false,
toolbar
:
toolbarOptions
,
}
);
UICtrl
.
setSearchAreaToggle
(
itemGridManager
);
}
function
getGridColumns
()
{
var
columns
=
[];
columns
=
[
{
display
:
"项目编号"
,
name
:
"bnfpo"
,
width
:
"80"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'spinner'
,
min
:
10
,
max
:
200
,
mask
:
'nnn'
}
},
{
display
:
"项目类别"
,
name
:
"pstyp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
},
{
display
:
"项目类别描述"
,
name
:
"ptext"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
},
{
display
:
"科目分配类别"
,
name
:
"knttp"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"select"
,
data
:
{
type
:
'system'
,
name
:
"knttp"
,
getParam
:
function
(
item
)
{
return
{
paramValue
:
$
(
"#bsart"
).
val
()}
},
back
:
{
knttp
:
"knttp"
}
},
}
},
{
display
:
"科目分配类别描述"
,
name
:
"knttx"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
},
{
display
:
"工厂"
,
name
:
"werks"
,
width
:
"200"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"工厂名称"
,
name
:
"name1"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
},
{
display
:
"物料编号"
,
name
:
"matnr"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,},
{
display
:
"物料描述"
,
name
:
"txz01"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,},
{
display
:
"物料组"
,
name
:
"matkl"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"物料组描述"
,
name
:
"wgbez"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
//editor: {required: false, type: "text"}
},
{
display
:
"采购申请数量"
,
name
:
"menge"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
false
,
type
:
"text"
,
mask
:
'9999999.999'
}
},
{
display
:
"采购申请计量单位"
,
name
:
"meins"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"单位描述"
,
name
:
"msehl"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"要求交货日期"
,
name
:
"lfdat"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
required
:
false
,
type
:
"date"
}
},
{
display
:
"库存地点"
,
name
:
"lgort"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,},
{
display
:
"库存地点名称"
,
name
:
"lgobe"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
},
//{display: "短文本", name: "txz01", width: "100", align: "left", type: "string",
// editor: {required: false, type: "text"}
//},
{
display
:
"采购组"
,
name
:
"ekgrp"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"采购组描述"
,
name
:
"eknam"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
//editor: {required: false, type: "text"}
},
{
display
:
"评估价格"
,
name
:
"preis"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
mask
:
'9999999.99'
,
required
:
false
}
},
{
display
:
"价格单位"
,
name
:
"peinh"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
,
editor
:
{
required
:
false
,
type
:
"text"
}
},
{
display
:
"币种"
,
name
:
"waers"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
}
},
{
display
:
"价格基数"
,
name
:
"rlwrt"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
,
editor
:
{
type
:
'text'
,
mask
:
'9999999'
,
required
:
false
}
},
]
return
columns
;
}
//获取数据保存的参数
function
getExtendedData
(
processAction
)
{
//回退、打回、转交时,不需要验证必填项是否已经填写;
if
(
processAction
==
ProcessAction
.
BACK
||
processAction
==
ProcessAction
.
REPLENISH
||
processAction
==
ProcessAction
.
TRANSMIT
)
{
//不验证
$
(
'#submitForm'
).
attr
(
'check'
,
false
);
}
var
extendedData
=
{};
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
if
(
_grid
)
{
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
_grid
,
isAllData
:
true
});
if
(
!
datas
)
{
return
false
;
}
extendedData
.
sapPurchaseApprovalItems
=
Public
.
encodeJSONURI
(
datas
);
}
return
extendedData
;
}
function
getId
()
{
return
$
(
'#id'
).
val
();
}
function
setId
(
value
)
{
$
(
"#id"
).
val
(
value
);
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
_grid
.
options
.
parms
.
sapPurchaseApprovalId
=
value
;
}
function
reloadGrid
()
{
itemGridManager
.
loadData
();
}
function
getGridData
(){
var
_grid
=
UICtrl
.
getGridManager
(
'#maingrid'
);
var
datas
=
DataUtil
.
getGridData
({
gridManager
:
_grid
,
isAllData
:
true
});
return
datas
;
}
topsun-xt/src/main/webapp/biz/topsun/sap/purchaseApproval/sapPurchaseApprovalDetail.jsp
0 → 100644
View file @
827d32b7
<%--采购申请--%>
<%@ 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,dateTime,combox,attachment,commonTree,comboDialog"
/>
<x:script
src=
"/biz/topsun/sap/purchaseApproval/sapPurchaseApprovalDetail.js"
/>
</head>
<body>
<div
class=
"container-fluid"
>
<x:billTitle
title=
"采购申请"
needStatus=
"true"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<x:hidden
name=
"id"
/>
<x:hidden
name=
"version"
/>
<x:hidden
name=
"billCode"
/>
<x:hidden
name=
"fillinDate"
/>
<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=
"personMemberName"
/>
<x:hidden
name=
"statusId"
/>
<x:hidden
name=
"bsart"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:inputC
name=
"banfn"
label=
"采购申请号"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
<x:inputC
name=
"batxt"
label=
"采购申请类型描述"
readonly=
"true"
labelCol=
"1"
fieldCol=
"2"
required=
"true"
/>
</div>
</div>
<div
id=
"maingrid"
></div>
</form>
</div>
</body>
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/sap/purchaseApproval/sapPurchaseApprovalList.js
0 → 100644
View file @
827d32b7
var
purchaseApprovalGridManager
=
null
;
$
(
document
).
ready
(
function
()
{
initUI
();
initPurchaseListGrid
();
}
);
function
initUI
()
{
UICtrl
.
initDefaultLayout
();
}
function
initPurchaseListGrid
()
{
var
toolbarOptions
=
UICtrl
.
getDefaultToolbarOptions
({
addHandler
:
addHandler
,
});
purchaseApprovalGridManager
=
UICtrl
.
grid
(
'#purchaseApprovalGrid'
,
{
columns
:
[
{
display
:
"状态"
,
name
:
"statusTextView"
,
width
:
"100"
,
align
:
"left"
,
type
:
"string"
}
,
{
display
:
"id"
,
name
:
"id"
,
width
:
"140"
,
align
:
"left"
,
type
:
"string"
,
hide
:
true
}
,
{
display
:
"需求跟踪编号"
,
name
:
"billCode"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
}
,
{
display
:
"采购申请类型描述"
,
name
:
"batxt"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
}
,
{
display
:
"采购申请编号"
,
name
:
"banfn"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"center"
}
],
dataAction
:
'server'
,
url
:
web_app
.
name
+
'/sapPurchaseApproval/slicedSapPurchaseApprovalList.ajax?'
,
//parms: {requireItemId: $("#prepareItemId").val()},
toolbar
:
toolbarOptions
,
width
:
'99.8%'
,
height
:
'100%'
,
pageSize
:
100
,
heightDiff
:
-
4
,
//sortName: 'lastModifiedDate',
//sortOrder: 'desc',
checkbox
:
true
,
usePager
:
true
,
rownumbers
:
true
,
enabledEdit
:
false
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
enableObjectBag
:
true
,
onSuccess
:
function
(
data
)
{
if
(
data
.
error
)
{
Public
.
tip
(
data
.
error
);
}
}
,
onDblClickRow
:
function
(
data
,
rowindex
,
rowobj
)
{
viewHandler
(
data
.
id
);
},
onAfterShowData
:
function
(
currentData
)
{
}
}
);
UICtrl
.
setSearchAreaToggle
(
purchaseApprovalGridManager
);
}
/**
* 查看采购申请详情
* @param id 采购申请id
* @returns {boolean}
*/
function
viewHandler
(
id
)
{
if
(
!
id
)
{
var
row
=
DataUtil
.
getSelectedRow
(
purchaseApprovalGridManager
);
if
(
!
row
)
{
return
row
;
}
id
=
row
.
id
;
}
UICtrl
.
addTabItem
({
tabid
:
'viewPurchase'
+
id
,
text
:
'查看采购申请'
,
url
:
web_app
.
name
+
'/sapPurchaseApproval/loadPurchaseApprovalDetail.do?isReadOnly=true&id='
+
id
});
}
function
addHandler
()
{
UICtrl
.
addTabItem
({
tabid
:
'addPurchase'
,
text
:
'新增采购审批'
,
url
:
web_app
.
name
+
'/sapPurchaseApproval/forwardSapPurchaseApprovalDetail.job'
});
}
function
reloadPurchaseGrid
()
{
var
params
=
$
(
"#queryMainForm"
).
formToJSON
();
UICtrl
.
gridSearch
(
purchaseApprovalGridManager
,
params
);
}
function
query
(
obj
)
{
var
param
=
$
(
obj
).
formToJSON
();
UICtrl
.
gridSearch
(
purchaseApprovalGridManager
,
param
);
}
function
resetForm
(
obj
)
{
$
(
obj
).
formClean
();
}
topsun-xt/src/main/webapp/biz/topsun/sap/purchaseApproval/sapPurchaseApprovalList.jsp
0 → 100644
View file @
827d32b7
<%@ 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,dateTime,combox,attachment,commonTree,comboDialog"
/>
<script
src=
'
<c:url
value=
"/lib/jquery/jquery.comboDialog.js"
/>
'
type=
"text/javascript"
></script>
<script
src=
'
<c:url
value=
"/lib/jquery/jquery.commonTree.js"
/>
'
type=
"text/javascript"
></script>
<script
src=
'
<c:url
value=
"/lib/jquery/jquery.flexField.js"
/>
'
type=
"text/javascript"
></script>
<script
src=
'
<c:url
value=
"/biz/topsun/sap/purchaseApproval/sapPurchaseApprovalList.js"
/>
'
type=
"text/javascript"
></script>
</head>
<body>
<div
class=
"container-fluid"
>
<div
id=
"layout"
>
<div
position=
"center"
title=
""
>
<x:title
title=
"搜索"
hideTable=
"queryMainForm"
/>
<form
class=
"hg-form ui-show"
method=
"post"
action=
""
id=
"queryMainForm"
>
<div
class=
"hg-form-row"
>
<x:inputC
name=
"billCode"
label=
"需求跟踪编号"
labelCol=
"1"
/>
</div>
<x:searchButtons/>
</form>
<x:title
title=
"采购审批明细"
hideTable=
"#purchaseApprovalGrid"
name=
"list"
/>
<div
id=
"purchaseApprovalGrid"
style=
"margin:2px;"
></div>
</div>
</div>
</div>
</body>
</html>
topsun/src/main/java/com/huigou/topsun/
demo/
controller/ResourceSearchController.java
→
topsun/src/main/java/com/huigou/topsun/controller/ResourceSearchController.java
View file @
827d32b7
package
com
.
huigou
.
topsun
.
demo
.
controller
;
package
com
.
huigou
.
topsun
.
controller
;
import
cn.hutool.core.collection.CollectionUtil
;
import
com.huigou.cache.DictUtil
;
import
com.huigou.cache.DictUtil
;
import
com.huigou.topsun.product.application.ColorApplication
;
import
com.huigou.topsun.product.application.ColorApplication
;
import
com.huigou.topsun.product.domain.query.ColorQueryRequest
;
import
com.huigou.topsun.product.domain.query.ColorQueryRequest
;
import
com.huigou.topsun.resource.service.ResourceFiledService
;
import
com.huigou.topsun.resource.service.ResourceFiledService
;
import
com.huigou.topsun.sap.dictionary.application.SapDictionaryApplication
;
import
com.huigou.topsun.technology.application.ProcessApplication
;
import
com.huigou.topsun.technology.application.ProcessApplication
;
import
com.huigou.topsun.technology.domain.query.ProcessQueryRequest
;
import
com.huigou.topsun.technology.domain.query.ProcessQueryRequest
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.bmp.common.easysearch.EasySearch
;
import
com.huigou.uasp.bmp.common.easysearch.EasySearch
;
import
com.huigou.uasp.bmp.common.easysearch.domain.model.EasySearchParse
;
import
com.huigou.uasp.bmp.common.easysearch.domain.model.EasySearchParse
;
import
com.huigou.uasp.bmp.common.easysearch.domain.model.QuerySchemeField
;
import
com.huigou.uasp.bmp.common.easysearch.domain.model.QuerySchemeField
;
import
com.huigou.uasp.bmp.configuration.application.DictionaryApplication
;
import
com.huigou.uasp.bmp.opm.application.MemEasySearcher
;
import
com.huigou.uasp.bmp.opm.application.MemEasySearcher
;
import
com.huigou.uasp.bmp.opm.application.impl.MemEasySearcherImpl
;
import
com.huigou.uasp.bmp.opm.application.impl.MemEasySearcherImpl
;
import
com.huigou.util.SDO
;
import
com.huigou.util.SDO
;
...
@@ -18,6 +19,7 @@ import org.springframework.data.domain.PageRequest;
...
@@ -18,6 +19,7 @@ import org.springframework.data.domain.PageRequest;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.*
;
/**
/**
...
@@ -34,6 +36,8 @@ public class ResourceSearchController {
...
@@ -34,6 +36,8 @@ public class ResourceSearchController {
private
ProcessApplication
processApplication
;
private
ProcessApplication
processApplication
;
@Resource
@Resource
private
ColorApplication
colorApplication
;
private
ColorApplication
colorApplication
;
@Resource
private
SapDictionaryApplication
sapDictionaryApplication
;
@EasySearch
(
queryName
=
"resourceNameGroup"
)
@EasySearch
(
queryName
=
"resourceNameGroup"
)
public
Map
<
String
,
Object
>
queryResourceNameGroup
(
SDO
sdo
){
public
Map
<
String
,
Object
>
queryResourceNameGroup
(
SDO
sdo
){
Integer
intPage
=
sdo
.
getInteger
(
"intPage"
,
1
);
Integer
intPage
=
sdo
.
getInteger
(
"intPage"
,
1
);
...
@@ -205,4 +209,27 @@ public class ResourceSearchController {
...
@@ -205,4 +209,27 @@ public class ResourceSearchController {
Map
<
String
,
Object
>
model
=
memEasySearcher
.
search
(
mapList
,
easySearchParse
,
pageRequest
,
null
);
Map
<
String
,
Object
>
model
=
memEasySearcher
.
search
(
mapList
,
easySearchParse
,
pageRequest
,
null
);
return
model
;
return
model
;
}
}
@EasySearch
(
queryName
=
"dictionary"
)
public
Map
<
String
,
Object
>
queryDictionary
(
SDO
sdo
)
throws
IOException
{
String
fieldName
=
sdo
.
getString
(
"paramValue"
);
List
<
Map
<
String
,
Object
>>
mapList
=
sapDictionaryApplication
.
getSapDictionary
(
fieldName
);
List
<
QuerySchemeField
>
fields
=
new
ArrayList
<>();
if
(
CollectionUtil
.
isNotEmpty
(
mapList
)){
Map
<
String
,
Object
>
map
=
mapList
.
get
(
0
);
map
.
keySet
().
forEach
(
key
->{
QuerySchemeField
querySchemeField
=
new
QuerySchemeField
(
""
,
key
,
"string"
,
200L
);
fields
.
add
(
querySchemeField
);
});
}
Integer
intPage
=
sdo
.
getInteger
(
"intPage"
,
1
);
Integer
pageSize
=
sdo
.
getInteger
(
"pageSize"
,
10
);
PageRequest
pageRequest
=
new
PageRequest
(
intPage
-
1
,
pageSize
);
EasySearchParse
easySearchParse
=
new
EasySearchParse
();
easySearchParse
.
setFields
(
fields
);
easySearchParse
.
setWidth
(
450L
);
MemEasySearcher
<
Map
<
String
,
Object
>>
memEasySearcher
=
new
MemEasySearcherImpl
<>();
Map
<
String
,
Object
>
model
=
memEasySearcher
.
search
(
mapList
,
easySearchParse
,
pageRequest
,
null
);
return
model
;
}
}
}
topsun/src/main/java/com/huigou/topsun/sap/common/DefaultHttpClient.java
View file @
827d32b7
...
@@ -12,6 +12,7 @@ import org.apache.http.client.methods.HttpPost;
...
@@ -12,6 +12,7 @@ import org.apache.http.client.methods.HttpPost;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.apache.http.util.EntityUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -58,11 +59,9 @@ public class DefaultHttpClient extends BaseApplication implements HttpClient {
...
@@ -58,11 +59,9 @@ public class DefaultHttpClient extends BaseApplication implements HttpClient {
.
append
(
"?"
)
.
append
(
"?"
)
.
append
(
client
);
.
append
(
client
);
HttpPost
post
=
new
HttpPost
(
serverUrl
.
toString
());
HttpPost
post
=
new
HttpPost
(
serverUrl
.
toString
());
post
.
setHeader
(
"Content-type"
,
"application/json;charset=utf-8"
);
String
usernameAndPassword
=
username
+
":"
+
password
;
String
usernameAndPassword
=
username
+
":"
+
password
;
post
.
addHeader
(
"Authorization"
,
"Basic "
+
Base64
.
getEncoder
().
encodeToString
(
usernameAndPassword
.
getBytes
()));
post
.
addHeader
(
"Authorization"
,
"Basic "
+
Base64
.
getEncoder
().
encodeToString
(
usernameAndPassword
.
getBytes
()));
//post.addHeader("token",SystemCache.getParameter("material.token",String.class));
// String requestText = messageSerializer.serialize(param);
String
requestText
=
new
ObjectMapper
().
writeValueAsString
(
param
);
String
requestText
=
new
ObjectMapper
().
writeValueAsString
(
param
);
LOG
.
info
(
"requestText={}"
,
requestText
);
LOG
.
info
(
"requestText={}"
,
requestText
);
...
@@ -72,16 +71,12 @@ public class DefaultHttpClient extends BaseApplication implements HttpClient {
...
@@ -72,16 +71,12 @@ public class DefaultHttpClient extends BaseApplication implements HttpClient {
String
responseText
=
""
;
String
responseText
=
""
;
try
{
try
{
response
=
http
.
execute
(
post
);
response
=
http
.
execute
(
post
);
LOG
.
info
(
"response={}"
,
response
);
StatusLine
statusLine
=
response
.
getStatusLine
();
StatusLine
statusLine
=
response
.
getStatusLine
();
LOG
.
info
(
"statusLine={}"
,
statusLine
);
int
statusCode
=
statusLine
.
getStatusCode
();
int
statusCode
=
statusLine
.
getStatusCode
();
if
(
statusLine
.
getStatusCode
()
<
HttpStatus
.
SC_OK
||
statusLine
.
getStatusCode
()
>=
HttpStatus
.
SC_MULTIPLE_CHOICES
)
{
if
(
statusLine
.
getStatusCode
()
<
HttpStatus
.
SC_OK
||
statusLine
.
getStatusCode
()
>=
HttpStatus
.
SC_MULTIPLE_CHOICES
)
{
throw
new
IOException
(
String
.
format
(
"调用SAP系统出错,statusCode=%s, %s"
,
statusCode
,
statusLine
.
getReasonPhrase
()));
throw
new
IOException
(
String
.
format
(
"调用SAP系统出错,statusCode=%s, %s"
,
statusCode
,
statusLine
.
getReasonPhrase
()));
}
}
responseText
=
IOUtils
.
readLines
(
response
.
getEntity
().
getContent
())
responseText
=
EntityUtils
.
toString
(
response
.
getEntity
(),
"UTF-8"
);
.
stream
()
.
collect
(
Collectors
.
joining
(
"\n"
));
LOG
.
info
(
"responseText={}"
,
responseText
);
LOG
.
info
(
"responseText={}"
,
responseText
);
LOG
.
info
(
"----------->> 调用SAP接口 {} 成功 <<-----------"
,
serverUrl
);
LOG
.
info
(
"----------->> 调用SAP接口 {} 成功 <<-----------"
,
serverUrl
);
}
finally
{
}
finally
{
...
...
topsun/src/main/java/com/huigou/topsun/sap/dictionary/application/SapDictionaryApplication.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
dictionary
.
application
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/11:23
* @Description:
*/
public
interface
SapDictionaryApplication
{
List
<
Map
<
String
,
Object
>>
getSapDictionary
(
String
fieldName
)
throws
IOException
;
}
topsun/src/main/java/com/huigou/topsun/sap/dictionary/application/impl/SapDictionaryApplicationImpl.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
dictionary
.
application
.
impl
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.huigou.cache.SystemCache
;
import
com.huigou.topsun.sap.common.HttpClient
;
import
com.huigou.topsun.sap.dictionary.application.SapDictionaryApplication
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/11:24
* @Description:
*/
@Service
public
class
SapDictionaryApplicationImpl
implements
SapDictionaryApplication
{
@Resource
private
HttpClient
httpClient
;
@Override
public
List
<
Map
<
String
,
Object
>>
getSapDictionary
(
String
fieldName
)
throws
IOException
{
String
url
=
SystemCache
.
getParameter
(
"sap.service.dictionary.url"
,
String
.
class
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"FIELDNAME"
,
fieldName
);
String
execute
=
httpClient
.
execute
(
map
,
url
);
List
<
Map
<
String
,
Object
>>
mapList
=
(
List
<
Map
<
String
,
Object
>>)
JSONArray
.
parse
(
execute
);
return
mapList
;
}
}
topsun/src/main/java/com/huigou/topsun/sap/dictionary/controller/SapDictionaryController.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
dictionary
.
controller
;
import
com.huigou.topsun.sap.dictionary.application.SapDictionaryApplication
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.annotation.SkipAuth
;
import
com.huigou.uasp.client.CommonController
;
import
org.springframework.stereotype.Controller
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/11:24
* @Description:
*/
@Controller
@ControllerMapping
(
"/sapDictionary"
)
public
class
SapDictionaryController
extends
CommonController
{
@Resource
private
SapDictionaryApplication
sapDictionaryApplication
;
@SkipAuth
public
String
getSapDictionary
()
throws
IOException
{
sapDictionaryApplication
.
getSapDictionary
(
"EKGRP"
);
return
success
();
}
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/application/SapPurchaseApprovalApplication.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
application
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval
;
import
com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalQueryRequest
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/18:59
* @Description:
*/
public
interface
SapPurchaseApprovalApplication
{
public
static
final
String
QUERY_XML_FILE_PATH
=
"config/topsun/sap/sapPurchaseApproval/sapPurchaseApproval.xml"
;
String
PROCESS_DEFINITION_KEY
=
"sapPurchaseApprovalProc"
;
Map
<
String
,
Object
>
slicedSapPurchaseApprovalList
(
SapPurchaseApprovalQueryRequest
queryRequest
);
SapPurchaseApproval
loadSapPurchaseApproval
(
String
id
);
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/application/SapPurchaseApprovalItemApplication.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
application
;
import
com.huigou.topsun.sap.purchase.domain.SapPurchaseItem
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApprovalItem
;
import
com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalItemQueryRequest
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:19
* @Description:
*/
public
interface
SapPurchaseApprovalItemApplication
{
public
static
final
String
QUERY_XML_FILE_PATH
=
"config/topsun/sap/sapPurchaseApproval/sapPurchaseApprovalItem.xml"
;
void
saveSapPurchaseApprovalItems
(
String
sapPurchaseApprovalId
,
List
<
SapPurchaseApprovalItem
>
sapPurchaseApprovalItems
);
void
deleteByIds
(
List
<
String
>
ids
);
Map
<
String
,
Object
>
querySapPurchaseApprovalItems
(
SapPurchaseApprovalItemQueryRequest
queryRequest
);
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/application/impl/SapPurchaseApprovalApplicationImpl.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
application
.
impl
;
import
com.huigou.data.query.model.QueryDescriptor
;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalApplication
;
import
com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalItemApplication
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApprovalItem
;
import
com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalQueryRequest
;
import
com.huigou.topsun.sap.purchaseApproval.repository.SapPurchaseApprovalRepository
;
import
com.huigou.uasp.bmp.common.BizBillStatus
;
import
com.huigou.uasp.bpm.FlowBroker
;
import
com.huigou.util.ClassHelper
;
import
org.activiti.engine.delegate.DelegateExecution
;
import
org.activiti.engine.delegate.DelegateTask
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/18:59
* @Description:
*/
@Service
public
class
SapPurchaseApprovalApplicationImpl
extends
FlowBroker
implements
SapPurchaseApprovalApplication
{
@Resource
private
SapPurchaseApprovalRepository
sapPurchaseApprovalRepository
;
@Resource
private
SapPurchaseApprovalItemApplication
sapPurchaseApprovalItemApplication
;
@Override
protected
String
saveBizAndApprovalData
()
{
super
.
saveBizAndApprovalData
();
SapPurchaseApproval
sapPurchaseApproval
=
getBizEntity
(
SapPurchaseApproval
.
class
);
if
(
sapPurchaseApproval
.
isNew
())
{
sapPurchaseApproval
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
}
else
{
sapPurchaseApproval
=
(
SapPurchaseApproval
)
commonDomainService
.
loadAndFillinProperties
(
sapPurchaseApproval
);
}
sapPurchaseApproval
=
sapPurchaseApprovalRepository
.
save
(
sapPurchaseApproval
);
List
<
SapPurchaseApprovalItem
>
sapPurchaseApprovalItems
=
getBizEntities
(
SapPurchaseApprovalItem
.
class
,
"sapPurchaseItems"
);
sapPurchaseApprovalItemApplication
.
saveSapPurchaseApprovalItems
(
sapPurchaseApproval
.
getId
(),
sapPurchaseApprovalItems
);
//String sapPurchaseVoJson = this.getSapPurchaseVoJson(sapPurchaseApproval);
return
sapPurchaseApproval
.
getId
();
}
@Override
protected
Map
<
String
,
Object
>
getProcessBizParams
(
String
bizId
)
{
// 返回业务数据给流程实例,
return
ClassHelper
.
toMap
(
sapPurchaseApprovalRepository
.
getOne
(
bizId
));
}
@Override
protected
void
onEnd
(
DelegateExecution
delegateExecution
)
{
super
.
onEnd
(
delegateExecution
);
String
bizId
=
delegateExecution
.
getProcessBusinessKey
();
BizBillStatus
status
=
approvePassed
()
?
BizBillStatus
.
COMPLETED
:
BizBillStatus
.
ABORTED
;
SapPurchaseApproval
sapPurchaseApproval
=
sapPurchaseApprovalRepository
.
findOne
(
bizId
);
sapPurchaseApproval
.
setStatusId
(
status
.
getId
());
sapPurchaseApprovalRepository
.
save
(
sapPurchaseApproval
);
}
/**
* 转换成SAP JSON格式数据
* @param sapPurchase
* @return
*/
/*public String getSapPurchaseVoJson(SapPurchaseApproval sapPurchase){
List<SapPurchaseItem> sapPurchaseItemList = this.sapPurchaseApprovalItemApplication.findBySapPurchaseApprovalId(sapPurchase.getId());
List<SapPurchaseVo> sapPurchaseVoList = new ArrayList<>();
sapPurchaseItemList.forEach(sapPurchaseItem -> {
SapPurchaseVo sapPurchaseVo = new SapPurchaseVo();
BeanUtil.copyProperties(sapPurchaseItem,sapPurchaseVo);
sapPurchaseVo.setBillCode(sapPurchase.getBillCode());
sapPurchaseVo.setBsart(sapPurchase.getBsart());
sapPurchaseVoList.add(sapPurchaseVo);
});
ObjectMapper objectMapper = new ObjectMapper();
String returnJson = null;
try {
returnJson = objectMapper.writeValueAsString(sapPurchaseVoList);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
return returnJson;
}*/
@Override
protected
void
onAbortProcessInstance
(
DelegateExecution
delegateExecution
)
{
super
.
onAbortProcessInstance
(
delegateExecution
);
String
bizId
=
delegateExecution
.
getProcessBusinessKey
();
SapPurchaseApproval
sapPurchaseApproval
=
sapPurchaseApprovalRepository
.
findOne
(
bizId
);
sapPurchaseApproval
.
setStatusId
(
BizBillStatus
.
ABORTED
.
getId
());
sapPurchaseApprovalRepository
.
save
(
sapPurchaseApproval
);
}
/**
* @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
();
SapPurchaseApproval
sapPurchaseApproval
=
sapPurchaseApprovalRepository
.
findOne
(
bizId
);
sapPurchaseApproval
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
sapPurchaseApprovalRepository
.
save
(
sapPurchaseApproval
);
}
}
@Override
public
Map
<
String
,
Object
>
slicedSapPurchaseApprovalList
(
SapPurchaseApprovalQueryRequest
queryRequest
)
{
QueryDescriptor
queryDescriptor
=
this
.
sqlExecutorDao
.
getQuery
(
QUERY_XML_FILE_PATH
,
"sapPurchaseApprovalList"
);
QueryModel
queryModel
=
this
.
sqlExecutorDao
.
getQueryModel
(
queryDescriptor
,
queryRequest
);
queryModel
.
putDictionary
(
"status"
,
BizBillStatus
.
getMap
());
return
this
.
sqlExecutorDao
.
executeSlicedQuery
(
queryModel
);
}
@Override
public
SapPurchaseApproval
loadSapPurchaseApproval
(
String
id
)
{
return
sapPurchaseApprovalRepository
.
findOne
(
id
);
}
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/application/impl/SapPurchaseApprovalItemApplicationImpl.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
application
.
impl
;
import
com.huigou.data.query.model.QueryDescriptor
;
import
com.huigou.data.query.model.QueryModel
;
import
com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalItemApplication
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApprovalItem
;
import
com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalItemQueryRequest
;
import
com.huigou.topsun.sap.purchaseApproval.repository.SapPurchaseApprovalItemRepository
;
import
com.huigou.uasp.bmp.common.application.BaseApplication
;
import
com.huigou.util.StringUtil
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:20
* @Description:
*/
@Service
public
class
SapPurchaseApprovalItemApplicationImpl
extends
BaseApplication
implements
SapPurchaseApprovalItemApplication
{
@Resource
private
SapPurchaseApprovalItemRepository
sapPurchaseApprovalItemRepository
;
@Override
public
void
saveSapPurchaseApprovalItems
(
String
sapPurchaseApprovalId
,
List
<
SapPurchaseApprovalItem
>
sapPurchaseApprovalItems
)
{
sapPurchaseApprovalItems
.
forEach
(
sapPurchaseApprovalItem
->
{
sapPurchaseApprovalItem
.
setSapPurchaseApprovalId
(
sapPurchaseApprovalId
);
sapPurchaseApprovalItemRepository
.
save
(
sapPurchaseApprovalItem
);
});
}
@Override
public
void
deleteByIds
(
List
<
String
>
ids
)
{
ids
.
forEach
(
id
->{
sapPurchaseApprovalItemRepository
.
delete
(
id
);
});
}
@Override
public
Map
<
String
,
Object
>
querySapPurchaseApprovalItems
(
SapPurchaseApprovalItemQueryRequest
queryRequest
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
StringUtil
.
isNotBlank
(
queryRequest
.
getSapPurchaseApprovalId
())){
QueryDescriptor
queryDescriptor
=
this
.
sqlExecutorDao
.
getQuery
(
QUERY_XML_FILE_PATH
,
"sapPurchaseApprovalItems"
);
QueryModel
queryModel
=
this
.
sqlExecutorDao
.
getQueryModel
(
queryDescriptor
,
queryRequest
);
map
=
this
.
sqlExecutorDao
.
executeSlicedQuery
(
queryModel
);
}
return
map
;
}
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/controller/SapPurchaseApprovalController.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
controller
;
import
com.huigou.context.Operator
;
import
com.huigou.context.OrgUnit
;
import
com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalApplication
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval
;
import
com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalQueryRequest
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.annotation.SkipAuth
;
import
com.huigou.uasp.bmp.common.BizBillStatus
;
import
com.huigou.uasp.client.CommonController
;
import
com.huigou.util.SDO
;
import
org.springframework.stereotype.Controller
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/18:58
* @Description:
*/
@Controller
@ControllerMapping
(
"/sapPurchaseApproval"
)
public
class
SapPurchaseApprovalController
extends
CommonController
{
@Resource
private
SapPurchaseApprovalApplication
sapPurchaseApprovalApplication
;
@Override
protected
String
getPagePath
()
{
return
"/biz/topsun/sap/purchaseApproval/"
;
}
@SkipAuth
public
String
getSapPurchaseApprovalApproval
(){
SDO
sdo
=
this
.
getSDO
();
HashMap
<
String
,
Object
>
messageMap
=
new
HashMap
<>();
messageMap
.
put
(
"Message_Status"
,
"S"
);
messageMap
.
put
(
"Message_Text"
,
"成功"
);
return
toResult
(
messageMap
);
}
public
String
forwardSapPurchaseApprovalList
(){
return
forward
(
"sapPurchaseApprovalList"
);
}
public
String
slicedSapPurchaseApprovalList
(){
SDO
sdo
=
this
.
getSDO
();
SapPurchaseApprovalQueryRequest
queryRequest
=
sdo
.
toQueryRequest
(
SapPurchaseApprovalQueryRequest
.
class
);
Map
<
String
,
Object
>
map
=
sapPurchaseApprovalApplication
.
slicedSapPurchaseApprovalList
(
queryRequest
);
return
toResult
(
map
);
}
public
String
forwardSapPurchaseApprovalDetail
(){
this
.
putAttribute
(
"processDefinitionKey"
,
SapPurchaseApprovalApplication
.
PROCESS_DEFINITION_KEY
);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this
.
putAttribute
(
"procUnitId"
,
"Apply"
);
SapPurchaseApproval
sapPurchase
=
new
SapPurchaseApproval
();
sapPurchase
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
Operator
operator
=
getOperator
();
sapPurchase
.
setDefaultValues
(
new
OrgUnit
(
operator
.
getFullId
(),
operator
.
getFullName
()));
return
forward
(
"sapPurchaseApprovalDetail"
,
sapPurchase
);
}
public
String
showSapPurchaseApprovalDetail
(){
SDO
sdo
=
this
.
getSDO
();
String
id
=
sdo
.
getBizId
();
SapPurchaseApproval
sapPurchaseApproval
=
sapPurchaseApprovalApplication
.
loadSapPurchaseApproval
(
id
);
return
forward
(
"sapPurchaseApprovalDetail"
,
sapPurchaseApproval
);
}
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/controller/SapPurchaseApprovalItemController.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
controller
;
import
com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalItemApplication
;
import
com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalItemQueryRequest
;
import
com.huigou.topsun.sap.purchaseApproval.repository.SapPurchaseApprovalItemRepository
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.client.CommonController
;
import
com.huigou.util.SDO
;
import
org.springframework.stereotype.Controller
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2023/12/27/17:24
* @Description:
*/
@Controller
@ControllerMapping
(
"/sapPurchaseApprovalItem"
)
public
class
SapPurchaseApprovalItemController
extends
CommonController
{
@Resource
private
SapPurchaseApprovalItemApplication
sapPurchaseApprovalItemApplication
;
@Resource
private
SapPurchaseApprovalItemRepository
sapPurchaseApprovalItemRepository
;
public
String
querySapPurchaseApprovalItems
(){
SDO
sdo
=
this
.
getSDO
();
SapPurchaseApprovalItemQueryRequest
queryRequest
=
sdo
.
toQueryRequest
(
SapPurchaseApprovalItemQueryRequest
.
class
);
Map
<
String
,
Object
>
map
=
sapPurchaseApprovalItemApplication
.
querySapPurchaseApprovalItems
(
queryRequest
);
return
toResult
(
map
);
}
public
String
deleteSapPurchaseApprovalItem
(){
SDO
sdo
=
this
.
getSDO
();
List
<
String
>
ids
=
sdo
.
getIds
();
sapPurchaseApprovalItemApplication
.
deleteByIds
(
ids
);
return
success
();
}
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/domain/SapPurchaseApproval.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
domain
;
import
javax.persistence.*
;
import
com.huigou.data.domain.model.FlowBillAbstractEntity
;
import
lombok.Data
;
/**
* SAP采购申请审批表
* @TableName sap_purchase_approval
*/
@Table
(
name
=
"sap_purchase_approval"
)
@Entity
@Data
public
class
SapPurchaseApproval
extends
FlowBillAbstractEntity
{
/**
* 采购申请号
*/
@Column
(
name
=
"BANFN"
)
private
String
banfn
;
/**
* 采购申请类型(只传输四种:NB、ZNB1、ZNB2和ZSTR)
*/
@Column
(
name
=
"BSART"
)
private
String
bsart
;
/**
* 采购申请类型描述
*/
@Column
(
name
=
"BATXT"
)
private
String
batxt
;
private
static
final
long
serialVersionUID
=
1L
;
@Override
protected
String
getCodeRuleId
()
{
return
"purchaseApproval"
;
}
}
\ No newline at end of file
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/domain/SapPurchaseApprovalItem.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
domain
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
javax.persistence.*
;
import
com.huigou.data.domain.model.AbstractEntity
;
import
lombok.Data
;
/**
*
* @TableName sap_purchase_approval_item
*/
@Table
(
name
=
"sap_purchase_approval_item"
)
@Entity
@Data
public
class
SapPurchaseApprovalItem
extends
AbstractEntity
{
/**
* SAP采购申请审批id
*/
@Column
(
name
=
"sap_purchase_approval_id"
)
private
String
sapPurchaseApprovalId
;
/**
* 项目编号(已删除(EBAN-LOEKZ=X)者不传EP;已结清(EBAN-EBAKZ=X)者也不传(结清指已全部转为采购订单))
*/
@Column
(
name
=
"BNFPO"
)
private
String
bnfpo
;
/**
* 项目类别
*/
@Column
(
name
=
"PSTYP"
)
private
String
pstyp
;
/**
* 项目类别描述
*/
@Column
(
name
=
"PTEXT"
)
private
String
ptext
;
/**
* 科目分配类别
*/
@Column
(
name
=
"KNTTP"
)
private
String
knttp
;
/**
* 科目分配类别描述
*/
@Column
(
name
=
"KNTTX"
)
private
String
knttx
;
/**
* 物料号
*/
@Column
(
name
=
"MATNR"
)
private
String
matnr
;
/**
* 物料描述
*/
@Column
(
name
=
"TXZ01"
)
private
String
txz01
;
/**
* 物料组
*/
@Column
(
name
=
"MATKL"
)
private
String
matkl
;
/**
* 物料组描述
*/
@Column
(
name
=
"WGBEZ"
)
private
String
wgbez
;
/**
* 采购申请数量
*/
@Column
(
name
=
"MENGE"
)
private
BigDecimal
menge
;
/**
* 采购申请计量单位
*/
@Column
(
name
=
"MEINS"
)
private
String
meins
;
/**
* 单位描述
*/
@Column
(
name
=
"MSEHL"
)
private
String
msehl
;
/**
* 要求交货日期
*/
@Column
(
name
=
"LFDAT"
)
private
Date
lfdat
;
/**
* 工厂
*/
@Column
(
name
=
"WERKS"
)
private
String
werks
;
/**
* 名称
*/
@Column
(
name
=
"NAME1"
)
private
String
name1
;
/**
* 库存地点
*/
@Column
(
name
=
"LGORT"
)
private
String
lgort
;
/**
* 库存地点的描述
*/
@Column
(
name
=
"LGOBE"
)
private
String
lgobe
;
/**
* 采购组
*/
@Column
(
name
=
"EKGRP"
)
private
String
ekgrp
;
/**
* 采购组描述
*/
@Column
(
name
=
"EKNAM"
)
private
String
eknam
;
/**
* 评估价格
*/
@Column
(
name
=
"PREIS"
)
private
BigDecimal
preis
;
/**
* 价格单位
*/
@Column
(
name
=
"PEINH"
)
private
String
peinh
;
/**
* 币种
*/
@Column
(
name
=
"WAERS"
)
private
String
waers
;
/**
* 评估金额
*/
@Column
(
name
=
"RLWRT"
)
private
BigDecimal
rlwrt
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/domain/query/SapPurchaseApprovalItemQueryRequest.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
domain
.
query
;
import
com.huigou.data.domain.query.QueryAbstractRequest
;
import
lombok.Data
;
/**
* @Auther: xin.lu
* @Date: 2023/12/27/10:45
* @Description:
*/
@Data
public
class
SapPurchaseApprovalItemQueryRequest
extends
QueryAbstractRequest
{
/**
* 采购审批id
*/
private
String
sapPurchaseApprovalId
;
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/domain/query/SapPurchaseApprovalQueryRequest.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
domain
.
query
;
import
com.huigou.data.domain.query.QueryAbstractRequest
;
import
lombok.Data
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:13
* @Description:
*/
@Data
public
class
SapPurchaseApprovalQueryRequest
extends
QueryAbstractRequest
{
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/repository/SapPurchaseApprovalItemRepository.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
repository
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApprovalItem
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:01
* @Description:
*/
public
interface
SapPurchaseApprovalItemRepository
extends
JpaRepository
<
SapPurchaseApprovalItem
,
String
>
{
}
topsun/src/main/java/com/huigou/topsun/sap/purchaseApproval/repository/SapPurchaseApprovalRepository.java
0 → 100644
View file @
827d32b7
package
com
.
huigou
.
topsun
.
sap
.
purchaseApproval
.
repository
;
import
com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:00
* @Description:
*/
public
interface
SapPurchaseApprovalRepository
extends
JpaRepository
<
SapPurchaseApproval
,
String
>
{
}
topsun/src/main/resources/config/bpm/topsun/sap/sapPurchaseApproval/sapPurchaseApprovalProc.bpmn
0 → 100644
View file @
827d32b7
<?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=
"sapPurchaseProcProc"
name=
"采购审批"
isExecutable=
"true"
>
<extensionElements>
<activiti:executionListener
event=
"start"
delegateExpression=
"#{sapPurchaseApprovalApplication}"
></activiti:executionListener>
<activiti:executionListener
event=
"end"
delegateExpression=
"#{sapPurchaseApprovalApplication}"
></activiti:executionListener>
</extensionElements>
<startEvent
id=
"startevent1"
name=
"Start"
></startEvent>
<endEvent
id=
"endevent1"
name=
"End"
></endEvent>
<userTask
id=
"Apply"
name=
"采购申请"
activiti:formKey=
"sapPurchaseApproval/showSapPurchaseApprovalDetail.job"
>
<extensionElements>
<activiti:taskListener
event=
"all"
delegateExpression=
"#{sapPurchaseApprovalApplication}"
></activiti:taskListener>
<activiti:taskListener
event=
"saveBizData"
delegateExpression=
"#{sapPurchaseApprovalApplication}"
></activiti:taskListener>
</extensionElements>
</userTask>
<userTask
id=
"Approve"
name=
"采购审批"
activiti:assignee=
"${assignee} "
activiti:formKey=
"sapPurchaseApproval/showSapPurchaseApprovalDetail.job"
>
<extensionElements>
<activiti:taskListener
event=
"all"
delegateExpression=
"#{sapPurchaseApprovalApplication}"
></activiti:taskListener>
<activiti:taskListener
event=
"saveBizData"
delegateExpression=
"#{sapPurchaseApprovalApplication}"
></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_sapPurchaseProcProc"
>
<bpmndi:BPMNPlane
bpmnElement=
"sapPurchaseProcProc"
id=
"BPMNPlane_sapPurchaseProcProc"
>
<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/sapPurchaseApproval/sapPurchaseApproval.xml
0 → 100644
View file @
827d32b7
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query
name=
"sapPurchaseApprovalList"
label=
"SAP采购审批"
table=
"sap_purchase_approval"
>
<sql-query>
select t.* from sap_purchase_approval t
</sql-query>
<condition
column=
"bill_code"
name=
"billCode"
type=
"java.lang.String"
symbol=
"like"
alias=
"t"
/>
</query>
</query-mappings>
\ No newline at end of file
topsun/src/main/resources/config/topsun/sap/sapPurchaseApproval/sapPurchaseApprovalItem.xml
0 → 100644
View file @
827d32b7
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query
name=
"sapPurchaseApprovalItems"
label=
"SAP采购申请明细"
table=
"sap_purchase_approval_item"
>
<sql-query>
select t.* from sap_purchase_approval_item t
</sql-query>
<condition
column=
"SAP_PURCHASE_APPROVAL_ID"
name=
"sapPurchaseApprovalId"
type=
"java.lang.String"
symbol=
"="
alias=
"t"
/>
</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