Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
京
京能客户端
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王亚宁
京能客户端
Commits
fbfd9c56
Commit
fbfd9c56
authored
Jul 19, 2024
by
liangyb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#20240719 1.专家评审-查看对比表-当页面无数据时什么都不显示
2.开标工具-解密过程错误弹窗,未设置招标代表 3.评标工具-项目解析结构化数据保存数据失败
parent
586d5fca
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
240 additions
and
128 deletions
+240
-128
BID-EVALUATION-STEP/src/com/gx/obe/evaluation/step/composite/AiEvalLeftButton.java
...om/gx/obe/evaluation/step/composite/AiEvalLeftButton.java
+98
-35
BID-EVALUATION-STEP/src/com/gx/obe/evaluation/step/shell/ShowAiProcessShell.java
.../com/gx/obe/evaluation/step/shell/ShowAiProcessShell.java
+80
-81
BID-OPENING/src/com/gx/obe/opening/dialog/BatchRemoteBidOpeningDialog.java
...om/gx/obe/opening/dialog/BatchRemoteBidOpeningDialog.java
+19
-10
com.gx.obe.component/src/com/gx/obe/component/handler/TabHandler.java
...omponent/src/com/gx/obe/component/handler/TabHandler.java
+2
-0
com.gx.obe.struct/src/com/gx/obe/struct/composite/TemplateTableListComposite.java
...m/gx/obe/struct/composite/TemplateTableListComposite.java
+41
-2
No files found.
BID-EVALUATION-STEP/src/com/gx/obe/evaluation/step/composite/AiEvalLeftButton.java
View file @
fbfd9c56
package
com
.
gx
.
obe
.
evaluation
.
step
.
composite
;
package
com
.
gx
.
obe
.
evaluation
.
step
.
composite
;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.Random
;
import
java.nio.file.Files
;
import
java.util.concurrent.Callable
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.ScheduledExecutorService
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.locks.ReentrantLock
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.core.CallBack
;
import
org.eclipse.swt.core.CallBack
;
...
@@ -26,9 +33,6 @@ import com.gx.obe.common.icons.IconsActivator;
...
@@ -26,9 +33,6 @@ import com.gx.obe.common.icons.IconsActivator;
import
com.gx.obe.components.core.enumeration.CommonEnum
;
import
com.gx.obe.components.core.enumeration.CommonEnum
;
import
com.gx.obe.config.utils.PropertiesUtils
;
import
com.gx.obe.config.utils.PropertiesUtils
;
import
com.gx.obe.evaluation.step.shell.ShowAiProcessShell
;
import
com.gx.obe.evaluation.step.shell.ShowAiProcessShell
;
import
com.gx.obe.evaluation.step.widgets.EvalLeftGroupButton
;
import
com.gx.obe.evaluation.step.widgets.LeftMenuMouseAdapter
;
import
com.gx.obe.message.Messages
;
import
com.gx.obe.util.utils.ObjectUtils
;
import
com.gx.obe.util.utils.ObjectUtils
;
import
com.gx.obe.util.utils.RuntimeUtils
;
import
com.gx.obe.util.utils.RuntimeUtils
;
import
com.gx.obe.util.utils.StringUtils
;
import
com.gx.obe.util.utils.StringUtils
;
...
@@ -44,6 +48,11 @@ public class AiEvalLeftButton extends ImageButton{
...
@@ -44,6 +48,11 @@ public class AiEvalLeftButton extends ImageButton{
private
ShowAiProcessShell
showAiProcessShell
;
private
ShowAiProcessShell
showAiProcessShell
;
private
File
downLoadPath
;
private
File
downLoadPath
;
public
static
Color
BG
=
ColorConstants
.
SKIN_BG
;
public
static
Color
BG
=
ColorConstants
.
SKIN_BG
;
private
static
final
String
title
=
"标书正在下载中... 请勿离开该页面"
;
private
static
final
String
todo
=
" 已耗时:"
;
private
static
final
ReentrantLock
lock
=
new
ReentrantLock
();
private
static
volatile
Future
<
Boolean
>
future
=
null
;
public
AiEvalLeftButton
(
Composite
parent
,
int
style
,
TenderProjectEntity
curTender
)
{
public
AiEvalLeftButton
(
Composite
parent
,
int
style
,
TenderProjectEntity
curTender
)
{
super
(
parent
,
SWT
.
CENTER
|
SWT
.
NONE
);
super
(
parent
,
SWT
.
CENTER
|
SWT
.
NONE
);
this
.
setTopMargin
(
3
);
this
.
setTopMargin
(
3
);
...
@@ -83,6 +92,15 @@ public class AiEvalLeftButton extends ImageButton{
...
@@ -83,6 +92,15 @@ public class AiEvalLeftButton extends ImageButton{
HttpResponse
httpResponse
=
HttpUtils
.
doPost
(
httpUrl
);
HttpResponse
httpResponse
=
HttpUtils
.
doPost
(
httpUrl
);
downLoadPath
=
new
File
(
FileConstants
.
getBiddingFilePath
(
curTender
.
getId
())
+
"ai.pdf"
);
downLoadPath
=
new
File
(
FileConstants
.
getBiddingFilePath
(
curTender
.
getId
())
+
"ai.pdf"
);
if
(
StringUtils
.
isNotEmpty
(
downLoadPath
.
getAbsolutePath
())
&&
downLoadPath
.
exists
())
{
if
(
StringUtils
.
isNotEmpty
(
downLoadPath
.
getAbsolutePath
())
&&
downLoadPath
.
exists
())
{
if
(
null
==
listener
)
{
listener
=
new
MouseAdapter
()
{
public
void
mouseUp
(
MouseEvent
e
)
{
if
(!
AiEvalLeftButton
.
this
.
getEnabled
())
return
;
RuntimeUtils
.
openFIle
(
downLoadPath
);
}
};
AiEvalLeftButton
.
this
.
addMouseListener
(
listener
);
}
return
;
return
;
}
}
downloadBiddingFile
(
httpResponse
);
downloadBiddingFile
(
httpResponse
);
...
@@ -119,6 +137,7 @@ public class AiEvalLeftButton extends ImageButton{
...
@@ -119,6 +137,7 @@ public class AiEvalLeftButton extends ImageButton{
String
downLoadPaths
=
downLoadPath
.
getAbsolutePath
();
String
downLoadPaths
=
downLoadPath
.
getAbsolutePath
();
downLoadFile
(
downUrl
,
downLoadPaths
);
downLoadFile
(
downUrl
,
downLoadPaths
);
}
else
{
}
else
{
AiEvalLeftButton
.
this
.
setImage
(
ResourceManager
.
getPluginImage
(
IconsActivator
.
PLUGIN_ID
,
"icons/btn/white/hourglass.png"
));
String
progress
=
httpResponse
.
getDataParam
(
"progress"
);
String
progress
=
httpResponse
.
getDataParam
(
"progress"
);
String
waitTime
=
httpResponse
.
getDataParam
(
"waitTime"
);
String
waitTime
=
httpResponse
.
getDataParam
(
"waitTime"
);
showAiProcessShell
=
new
ShowAiProcessShell
(
getShell
(),
AiEvalLeftButton
.
this
,
ObjectUtils
.
getIntValue
(
progress
,
0
),
waitTime
);
showAiProcessShell
=
new
ShowAiProcessShell
(
getShell
(),
AiEvalLeftButton
.
this
,
ObjectUtils
.
getIntValue
(
progress
,
0
),
waitTime
);
...
@@ -131,41 +150,85 @@ public class AiEvalLeftButton extends ImageButton{
...
@@ -131,41 +150,85 @@ public class AiEvalLeftButton extends ImageButton{
private
void
downLoadFile
(
String
downLoadUrl
,
String
downLoadPaths
){
private
void
downLoadFile
(
String
downLoadUrl
,
String
downLoadPaths
){
// callBackMsg("开始下载招标文件...");
// callBackMsg("开始下载招标文件...");
HttpURLDown
httpURLDown
=
new
HttpURLDown
(
downLoadUrl
,
downLoadPaths
,
new
CallBack
()
{
HttpURLDown
httpURLDown
=
new
HttpURLDown
(
downLoadUrl
,
downLoadPaths
,
new
CallBack
()
{});
});
// 初始化ExecutorService
try
{
ExecutorService
executor
=
Executors
.
newSingleThreadExecutor
();
showAiProcessShell
=
new
ShowAiProcessShell
(
getShell
(),
AiEvalLeftButton
.
this
,
ObjectUtils
.
getIntValue
(
"0"
,
0
),
"10s"
);
showAiProcessShell
.
open
();
// 定义异步任务
boolean
downFlag
=
httpURLDown
.
downLoad
(
"标书比对相似度分析"
);
Callable
<
Boolean
>
downLoadTask
=
()
->
{
showAiProcessShell
.
close
();
// 模拟下载任务
showAiProcessShell
=
new
ShowAiProcessShell
(
getShell
(),
AiEvalLeftButton
.
this
,
ObjectUtils
.
getIntValue
(
"100"
,
0
),
"0s"
);
System
.
out
.
println
(
"Starting download task..."
);
showAiProcessShell
.
open
();
Thread
.
sleep
(
100
);
// callBackMsg("招标文件下载结束!");
return
httpURLDown
.
downLoad
(
"标书比对相似度分析"
);
// 下载成功并且是.zip文件才进行解压操作
};
if
(
downFlag
){
final
AiEvalLeftButton
groupButton
=
AiEvalLeftButton
.
this
;
// 提交异步任务
groupButton
.
setToolTipText
(
"标书比对相似度分析"
);
synchronized
(
AiEvalLeftButton
.
class
)
{
if
(
null
==
listener
)
{
if
(
future
==
null
||
future
.
isDone
())
{
listener
=
new
MouseAdapter
()
{
future
=
executor
.
submit
(
downLoadTask
);
public
void
mouseUp
(
MouseEvent
e
)
{
// 调用异步前的操作
if
(!
groupButton
.
getEnabled
())
return
;
AiEvalLeftButton
.
this
.
setImage
(
ResourceManager
.
getPluginImage
(
IconsActivator
.
PLUGIN_ID
,
"icons/btn/white/hourglass.png"
));
RuntimeUtils
.
openFIle
(
new
File
(
downLoadPaths
));
// showAiProcessShell = new ShowAiProcessShell(getShell(), AiEvalLeftButton.this, ObjectUtils.getIntValue("0", 0), "0s", title, todo);
// showAiProcessShell.open();
}
else
{
System
.
out
.
println
(
"A task is already running. Not submitting a new task."
);
}
}
// 使用ScheduledExecutorService定期检查任务状态,其实只检查了一次
ScheduledExecutorService
scheduler
=
Executors
.
newScheduledThreadPool
(
1
);
Runnable
checkTask
=
new
Runnable
()
{
@Override
public
void
run
()
{
lock
.
lock
();
try
{
Random
random
=
new
Random
();
int
index
=
0
;
int
time
=
5
;
while
(!
future
.
isDone
())
{
// 每隔5秒检查一次
Thread
.
sleep
(
5000
);
int
increment
=
random
.
nextInt
(
6
)
+
1
;
// 生成1到10的随机数
index
+=
increment
;
time
+=
5
;
System
.
out
.
println
(
"task status do do do..."
);
if
(
future
.
isDone
())
{
boolean
downFlag
=
future
.
get
();
if
(
downFlag
)
{
changeStyle
(
"100"
,
time
+
"s"
,
"icons/btn/white/view.png"
);
}
}
else
{
// 任务还在进行中
changeStyle
(
""
+
Math
.
min
(
index
,
95
),
time
+
"s"
,
"icons/btn/white/hourglass.png"
);
}
}
};
}
groupButton
.
addMouseListener
(
listener
);
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
((
Throwable
)
e
).
printStackTrace
();
}
finally
{
lock
.
unlock
();
// 关闭ExecutorService
executor
.
shutdown
();
// 任务完成,关闭scheduler
scheduler
.
shutdown
();
System
.
out
.
println
(
"Scheduler shutdown."
);
}
}
// unZipFile(savePath, FileConstants.getBiddingFilePath(curTender.getId()));
}
}
}
catch
(
IOException
e
)
{
// LOG.error("招标文件下载失败", e);
};
// callBackMsg("招标文件下载文件出现错误");
// callBackMsg("错误信息为:"+e.getMessage());
// 每隔5秒检查一次任务状态
return
;
scheduler
.
scheduleAtFixedRate
(
checkTask
,
0
,
5
,
TimeUnit
.
SECONDS
);
}
}
}
// HttpUrl httpUrl = HttpUtils.getProjectHttpUrl(curTender, PropertiesUtils.getWebserviceProperty(WebserviceConstants.GET_AI_RESULT_METHOD, "bidOpeningHS.do?downloadOpenBidSupplierAiResult"));
// HttpUrl httpUrl = HttpUtils.getProjectHttpUrl(curTender, PropertiesUtils.getWebserviceProperty(WebserviceConstants.GET_AI_RESULT_METHOD, "bidOpeningHS.do?downloadOpenBidSupplierAiResult"));
// HttpResponse httpResponse = HttpUtils.doPost(httpUrl);
// HttpResponse httpResponse = HttpUtils.doPost(httpUrl);
// downloadBiddingFile(httpResponse);
// downloadBiddingFile(httpResponse);
private
void
changeStyle
(
String
start
,
String
end
,
String
picture
)
{
Display
.
getDefault
().
syncExec
(
new
Runnable
()
{
public
void
run
()
{
// showAiProcessShell = new ShowAiProcessShell(getShell(), AiEvalLeftButton.this, ObjectUtils.getIntValue(start, 0), end, title, todo);
// showAiProcessShell.open();
AiEvalLeftButton
.
this
.
setImage
(
ResourceManager
.
getPluginImage
(
IconsActivator
.
PLUGIN_ID
,
picture
));
}
});
}
}
}
BID-EVALUATION-STEP/src/com/gx/obe/evaluation/step/shell/ShowAiProcessShell.java
View file @
fbfd9c56
...
@@ -45,88 +45,14 @@ public class ShowAiProcessShell extends Shell {
...
@@ -45,88 +45,14 @@ public class ShowAiProcessShell extends Shell {
*/
*/
public
ShowAiProcessShell
(
final
Shell
shell
,
AiEvalLeftButton
shortMenu
,
int
process
,
String
needTime
)
{
public
ShowAiProcessShell
(
final
Shell
shell
,
AiEvalLeftButton
shortMenu
,
int
process
,
String
needTime
)
{
super
(
shell
,
SWT
.
NO_TRIM
|
SWT
.
TOP
);
super
(
shell
,
SWT
.
NO_TRIM
|
SWT
.
TOP
);
this
.
groupMenuBtn
=
shortMenu
;
initStruct
(
shortMenu
,
process
,
needTime
,
"标书相似度分析进度"
,
" 预计还需要:"
);
// this.process = process;
}
// this.needTime = needTime;
// super(parent.getShell(), SWT.NO_TRIM | SWT.ON_TOP | SWT.TOOL);
public
ShowAiProcessShell
(
final
Shell
shell
,
AiEvalLeftButton
shortMenu
,
int
process
,
String
needTime
,
String
title
,
String
todo
)
{
// addDisposeListener(new DisposeListener() {
super
(
shell
,
SWT
.
NO_TRIM
|
SWT
.
TOP
);
// public void widgetDisposed(DisposeEvent e) {
initStruct
(
shortMenu
,
process
,
needTime
,
title
,
todo
);
// removeListener(SWT.Deactivate, deactivateListener);
// }
// });
GridLayout
gridLayout
=
new
GridLayout
(
2
,
false
);
gridLayout
.
horizontalSpacing
=
0
;
gridLayout
.
verticalSpacing
=
0
;
gridLayout
.
marginHeight
=
1
;
gridLayout
.
marginWidth
=
1
;
setLayout
(
gridLayout
);
setBackground
(
shortMenu
.
getActiveBackgroundColor
());
// setBackground(shortMenu.getBackground());
setBackgroundMode
(
SWT
.
INHERIT_FORCE
);
curComposite
=
new
Composite
(
this
,
SWT
.
NONE
);
curComposite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
TOP
,
false
,
false
,
1
,
2
));
GridLayout
gl_curComposite
=
new
GridLayout
(
1
,
false
);
gl_curComposite
.
marginHeight
=
0
;
gl_curComposite
.
marginWidth
=
0
;
gl_curComposite
.
marginRight
=
5
;
curComposite
.
setLayout
(
gl_curComposite
);
curComposite
.
setBackground
(
shortMenu
.
getActiveBackgroundColor
());
// curComposite.setBackground(SWTResourceManager.getColor(123, 13, 15));
curBtn
=
new
ImageButton
(
curComposite
,
SWT
.
NONE
);
curBtn
.
setLayoutData
(
new
GridData
(
SWT
.
LEFT
,
SWT
.
CENTER
,
false
,
true
,
1
,
1
));
curBtn
.
setImage
(
shortMenu
.
getImage
());
// curBtn.setTopMargin(3);
// curBtn.setBottomMargin(3);
curBtn
.
setLeftMargin
(
5
);
curBtn
.
setRightMargin
(
5
);
composite
=
new
Composite
(
this
,
SWT
.
NONE
);
composite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
FILL
,
true
,
true
,
1
,
2
));
GridLayout
gl_composite
=
new
GridLayout
(
1
,
false
);
gl_composite
.
marginWidth
=
0
;
gl_composite
.
horizontalSpacing
=
0
;
gl_composite
.
marginHeight
=
0
;
gl_composite
.
verticalSpacing
=
0
;
composite
.
setLayout
(
gl_composite
);
composite
.
setBackground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_WHITE
));
Label
labe
=
new
Label
(
composite
,
SWT
.
None
);
labe
.
setText
(
"标书相似度分析进度"
);
messageComposite
=
new
Composite
(
composite
,
SWT
.
NONE
);
messageComposite
.
setLayout
(
new
GridLayout
(
4
,
false
));
messageComposite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
FILL
,
true
,
false
,
1
,
1
));
// messageComposite.setVisible(false);
Label
lblNewLabel
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
lblNewLabel
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
CENTER
,
false
,
false
,
1
,
1
));
lblNewLabel
.
setText
(
Messages
.
ShowViewAiProcessDialog_lblNewLabel_text
);
lblNewLabel_1
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel_1
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
GridData
gd_lblNewLabel_1
=
new
GridData
(
SWT
.
LEFT
,
SWT
.
CENTER
,
false
,
false
,
1
,
1
);
gd_lblNewLabel_1
.
widthHint
=
40
;
lblNewLabel_1
.
setLayoutData
(
gd_lblNewLabel_1
);
lblNewLabel_1
.
setText
(
process
+
"%"
);
Label
lblNewLabel_2
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel_2
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
lblNewLabel_2
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
CENTER
,
false
,
false
,
1
,
1
));
lblNewLabel_2
.
setText
(
" 预计还需要:"
);
Label
lblNewLabel_3
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel_3
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
lblNewLabel_3
.
setText
(
needTime
);
ProgressBar
progressBar
=
new
ProgressBar
(
composite
,
SWT
.
NONE
);
progressBar
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
CENTER
,
true
,
true
,
1
,
1
));
progressBar
.
setSelection
(
process
);
init
();
createContents
();
}
}
private
void
init
(){
private
void
init
(){
deactivateListener
=
new
Listener
(){
deactivateListener
=
new
Listener
(){
...
@@ -195,4 +121,77 @@ public class ShowAiProcessShell extends Shell {
...
@@ -195,4 +121,77 @@ public class ShowAiProcessShell extends Shell {
protected
void
checkSubclass
()
{
protected
void
checkSubclass
()
{
// Disable the check that prevents subclassing of SWT components
// Disable the check that prevents subclassing of SWT components
}
}
private
void
initStruct
(
AiEvalLeftButton
shortMenu
,
int
process
,
String
needTime
,
String
title
,
String
todo
)
{
this
.
groupMenuBtn
=
shortMenu
;
GridLayout
gridLayout
=
new
GridLayout
(
2
,
false
);
gridLayout
.
horizontalSpacing
=
0
;
gridLayout
.
verticalSpacing
=
0
;
gridLayout
.
marginHeight
=
1
;
gridLayout
.
marginWidth
=
1
;
setLayout
(
gridLayout
);
setBackground
(
shortMenu
.
getActiveBackgroundColor
());
setBackgroundMode
(
SWT
.
INHERIT_FORCE
);
curComposite
=
new
Composite
(
this
,
SWT
.
NONE
);
curComposite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
TOP
,
false
,
false
,
1
,
2
));
GridLayout
gl_curComposite
=
new
GridLayout
(
1
,
false
);
gl_curComposite
.
marginHeight
=
0
;
gl_curComposite
.
marginWidth
=
0
;
gl_curComposite
.
marginRight
=
5
;
curComposite
.
setLayout
(
gl_curComposite
);
curComposite
.
setBackground
(
shortMenu
.
getActiveBackgroundColor
());
curBtn
=
new
ImageButton
(
curComposite
,
SWT
.
NONE
);
curBtn
.
setLayoutData
(
new
GridData
(
SWT
.
LEFT
,
SWT
.
CENTER
,
false
,
true
,
1
,
1
));
curBtn
.
setImage
(
shortMenu
.
getImage
());
// curBtn.setTopMargin(3);
// curBtn.setBottomMargin(3);
curBtn
.
setLeftMargin
(
5
);
curBtn
.
setRightMargin
(
5
);
composite
=
new
Composite
(
this
,
SWT
.
NONE
);
composite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
FILL
,
true
,
true
,
1
,
2
));
GridLayout
gl_composite
=
new
GridLayout
(
1
,
false
);
gl_composite
.
marginWidth
=
0
;
gl_composite
.
horizontalSpacing
=
0
;
gl_composite
.
marginHeight
=
0
;
gl_composite
.
verticalSpacing
=
0
;
composite
.
setLayout
(
gl_composite
);
composite
.
setBackground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_WHITE
));
Label
labe
=
new
Label
(
composite
,
SWT
.
None
);
labe
.
setText
(
title
);
messageComposite
=
new
Composite
(
composite
,
SWT
.
NONE
);
messageComposite
.
setLayout
(
new
GridLayout
(
4
,
false
));
messageComposite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
FILL
,
true
,
false
,
1
,
1
));
// messageComposite.setVisible(false);
Label
lblNewLabel
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
lblNewLabel
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
CENTER
,
false
,
false
,
1
,
1
));
lblNewLabel
.
setText
(
Messages
.
ShowViewAiProcessDialog_lblNewLabel_text
);
lblNewLabel_1
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel_1
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
GridData
gd_lblNewLabel_1
=
new
GridData
(
SWT
.
LEFT
,
SWT
.
CENTER
,
false
,
false
,
1
,
1
);
gd_lblNewLabel_1
.
widthHint
=
45
;
lblNewLabel_1
.
setLayoutData
(
gd_lblNewLabel_1
);
lblNewLabel_1
.
setText
(
process
+
"%"
);
Label
lblNewLabel_2
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel_2
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
lblNewLabel_2
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
CENTER
,
false
,
false
,
1
,
1
));
lblNewLabel_2
.
setText
(
todo
);
Label
lblNewLabel_3
=
new
Label
(
messageComposite
,
SWT
.
NONE
);
lblNewLabel_3
.
setForeground
(
SWTResourceManager
.
getColor
(
SWT
.
COLOR_RED
));
lblNewLabel_3
.
setText
(
needTime
);
ProgressBar
progressBar
=
new
ProgressBar
(
composite
,
SWT
.
NONE
);
progressBar
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
CENTER
,
true
,
true
,
1
,
1
));
progressBar
.
setSelection
(
process
);
init
();
createContents
();
}
}
}
BID-OPENING/src/com/gx/obe/opening/dialog/BatchRemoteBidOpeningDialog.java
View file @
fbfd9c56
...
@@ -44,6 +44,7 @@ import com.gx.obe.components.core.enumeration.CommonEnum;
...
@@ -44,6 +44,7 @@ import com.gx.obe.components.core.enumeration.CommonEnum;
import
com.gx.obe.components.core.enumeration.TenderProjectEnum
;
import
com.gx.obe.components.core.enumeration.TenderProjectEnum
;
import
com.gx.obe.config.utils.PropertiesUtils
;
import
com.gx.obe.config.utils.PropertiesUtils
;
import
com.gx.obe.message.Messages
;
import
com.gx.obe.message.Messages
;
import
com.gx.obe.util.utils.CollectionUtils
;
import
com.gx.obe.web.entity.expert.Expert
;
import
com.gx.obe.web.entity.expert.Expert
;
import
com.gx.obe.web.entity.tender.TenderProjectEntity
;
import
com.gx.obe.web.entity.tender.TenderProjectEntity
;
import
com.gx.obe.web.service.TenderProjectService
;
import
com.gx.obe.web.service.TenderProjectService
;
...
@@ -611,20 +612,28 @@ public class BatchRemoteBidOpeningDialog extends EDialog {
...
@@ -611,20 +612,28 @@ public class BatchRemoteBidOpeningDialog extends EDialog {
}
}
List
<
Expert
>
expertList
=
expertService
.
getExpertListByTenderId
(
tenderProject
.
getId
());
List
<
Expert
>
expertList
=
expertService
.
getExpertListByTenderId
(
tenderProject
.
getId
());
if
(
null
!=
expertList
&&
expertList
.
size
()
>
0
)
{
Expert
expertCheck
=
CollectionUtils
.
get
(
expertList
,
item
->
ExpertEnum
.
BIDDING
.
equals
(
item
.
getExpertType
()));
for
(
Expert
expert
:
expertList
)
{
if
(
expertCheck
==
null
)
{
if
(
ExpertEnum
.
BIDDING
.
equals
(
expert
.
getExpertType
()))
{
break
;
}
MessageDialog
.
openError
(
getShell
(),
"请先在评标管理中设置招标人代表!"
);
//(getShell(), message.toString());
tenderPackList
.
clear
();
return
;
}
}
else
{
MessageDialog
.
openError
(
getShell
(),
"请先在评标管理中设置招标人代表!"
);
//(getShell(), message.toString());
MessageDialog
.
openError
(
getShell
(),
"请先在评标管理中设置招标人代表!"
);
//(getShell(), message.toString());
tenderPackList
.
clear
();
tenderPackList
.
clear
();
return
;
return
;
}
}
// if(null != expertList && expertList.size() > 0) {
// for(Expert expert : expertList) {
// if(ExpertEnum.BIDDING.equals(expert.getExpertType())) {
// break;
// }
//
// MessageDialog.openError(getShell(), "请先在评标管理中设置招标人代表!");//(getShell(), message.toString());
// tenderPackList.clear();
// return ;
// }
// }else {
// MessageDialog.openError(getShell(), "请先在评标管理中设置招标人代表!");//(getShell(), message.toString());
// tenderPackList.clear();
// return ;
// }
}
}
if
(
isFocus
){
if
(
isFocus
){
StringBuilder
msg
=
new
StringBuilder
();
StringBuilder
msg
=
new
StringBuilder
();
...
...
com.gx.obe.component/src/com/gx/obe/component/handler/TabHandler.java
View file @
fbfd9c56
...
@@ -41,11 +41,13 @@ public class TabHandler<T extends ISelection> {
...
@@ -41,11 +41,13 @@ public class TabHandler<T extends ISelection> {
public
<
R
>
TabHandler
<
T
>
hand
(
R
r
,
BiConsumer
<
T
,
R
>
setBiConsumer
,
Consumer
<
R
>
consumer
)
{
public
<
R
>
TabHandler
<
T
>
hand
(
R
r
,
BiConsumer
<
T
,
R
>
setBiConsumer
,
Consumer
<
R
>
consumer
)
{
T
t
=
iTabFunction
.
apply
(
composite
);
T
t
=
iTabFunction
.
apply
(
composite
);
//设置对比表标题,此处t为composite,r为数据evaluationContent,等同于 t.setText(r.data)
setBiConsumer
.
accept
(
t
,
r
);
setBiConsumer
.
accept
(
t
,
r
);
t
.
addMouseListener
(
MouseListener
.
mouseUpAdapter
(
$
->
{
t
.
addMouseListener
(
MouseListener
.
mouseUpAdapter
(
$
->
{
tab
.
setSelection
(
false
);
tab
.
setSelection
(
false
);
tab
=
t
;
tab
=
t
;
tab
.
setSelection
(
true
);
tab
.
setSelection
(
true
);
//设置表数据
consumer
.
accept
(
r
);
consumer
.
accept
(
r
);
}));
}));
if
(
firstCall
==
null
)
firstCall
=
()
->
consumer
.
accept
(
r
);
if
(
firstCall
==
null
)
firstCall
=
()
->
consumer
.
accept
(
r
);
...
...
com.gx.obe.struct/src/com/gx/obe/struct/composite/TemplateTableListComposite.java
View file @
fbfd9c56
...
@@ -21,8 +21,11 @@ import com.gx.obe.common.widget.button.RectangleRadioButton;
...
@@ -21,8 +21,11 @@ import com.gx.obe.common.widget.button.RectangleRadioButton;
import
com.gx.obe.component.handler.TabHandler
;
import
com.gx.obe.component.handler.TabHandler
;
import
com.gx.obe.component.rx.RxSwt
;
import
com.gx.obe.component.rx.RxSwt
;
import
com.gx.obe.message.Messages
;
import
com.gx.obe.message.Messages
;
import
com.gx.obe.struct.beans.TemplateTable
;
import
com.gx.obe.struct.enums.DataCategoryEnum
;
import
com.gx.obe.struct.enums.DataCategoryEnum
;
import
com.gx.obe.struct.service.EvaluationContentService
;
import
com.gx.obe.struct.service.EvaluationContentService
;
import
com.gx.obe.struct.service.TemplateTableService
;
import
com.gx.obe.util.utils.CollectionUtils
;
import
com.gx.obe.web.entity.Supplier
;
import
com.gx.obe.web.entity.Supplier
;
import
com.gx.obe.web.entity.evaluation.EvaluationContent
;
import
com.gx.obe.web.entity.evaluation.EvaluationContent
;
import
com.swtdesigner.SWTResourceManager
;
import
com.swtdesigner.SWTResourceManager
;
...
@@ -31,6 +34,8 @@ public class TemplateTableListComposite extends Composite {
...
@@ -31,6 +34,8 @@ public class TemplateTableListComposite extends Composite {
private
final
EvaluationContentService
evaluationContentService
=
new
EvaluationContentService
();
private
final
EvaluationContentService
evaluationContentService
=
new
EvaluationContentService
();
private
final
TemplateTableService
templateTableService
=
new
TemplateTableService
();
private
final
Prop
<
TemplateTableData
>
templateTableData
=
new
Prop
<>();
private
final
Prop
<
TemplateTableData
>
templateTableData
=
new
Prop
<>();
private
class
TemplateTableData
{
private
class
TemplateTableData
{
...
@@ -85,6 +90,9 @@ public class TemplateTableListComposite extends Composite {
...
@@ -85,6 +90,9 @@ public class TemplateTableListComposite extends Composite {
TabHandler
<
RectangleRadioButton
>
handler
=
new
TabHandler
<>(
tabComposite
,
t
->
new
RectangleRadioButton
(
t
,
SWT
.
NONE
));
TabHandler
<
RectangleRadioButton
>
handler
=
new
TabHandler
<>(
tabComposite
,
t
->
new
RectangleRadioButton
(
t
,
SWT
.
NONE
));
/**
* 回调渲染根据方法refresh的结果集来决定d的值
*/
this
.
templateTableData
.
bind
(
d
->
{
this
.
templateTableData
.
bind
(
d
->
{
if
(
d
.
evaluationContentList
.
isEmpty
())
{
if
(
d
.
evaluationContentList
.
isEmpty
())
{
topControlConsumer
.
accept
(
composite_1
);
topControlConsumer
.
accept
(
composite_1
);
...
@@ -100,9 +108,19 @@ public class TemplateTableListComposite extends Composite {
...
@@ -100,9 +108,19 @@ public class TemplateTableListComposite extends Composite {
TemplateTableComparisonComposite
comparisonComposite
=
new
TemplateTableComparisonComposite
(
composite
,
SWT
.
NONE
);
TemplateTableComparisonComposite
comparisonComposite
=
new
TemplateTableComparisonComposite
(
composite
,
SWT
.
NONE
);
comparisonComposite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
FILL
,
true
,
true
,
1
,
1
));
comparisonComposite
.
setLayoutData
(
new
GridData
(
SWT
.
FILL
,
SWT
.
FILL
,
true
,
true
,
1
,
1
));
this
.
templateTableComparisonData
.
bind
(
d
->
comparisonComposite
.
refresh
(
d
.
tenderId
,
d
.
relChapterType
,
d
.
dataCode
,
d
.
dataCategory
,
d
.
supplierList
));
/**
* 首次渲染什么都不做,等待d值,也就是selectAction的data结果集,拿到后refresh ktable
*/
this
.
templateTableComparisonData
.
bind
(
d
->
comparisonComposite
.
refresh
(
d
.
tenderId
,
d
.
relChapterType
,
d
.
dataCode
,
d
.
dataCategory
,
d
.
supplierList
));
}
}
/**
* 回调函数selectAction,填充数据data用于渲染ktable表格数据
* @param tenderId
* @param evaluationContent
* @param supplierList
*/
private
void
selectAction
(
String
tenderId
,
EvaluationContent
evaluationContent
,
List
<
Supplier
>
supplierList
)
{
private
void
selectAction
(
String
tenderId
,
EvaluationContent
evaluationContent
,
List
<
Supplier
>
supplierList
)
{
TemplateTableComparisonData
data
=
new
TemplateTableComparisonData
();
TemplateTableComparisonData
data
=
new
TemplateTableComparisonData
();
data
.
tenderId
=
tenderId
;
data
.
tenderId
=
tenderId
;
...
@@ -110,15 +128,36 @@ public class TemplateTableListComposite extends Composite {
...
@@ -110,15 +128,36 @@ public class TemplateTableListComposite extends Composite {
data
.
dataCode
=
evaluationContent
.
getDataCode
();
data
.
dataCode
=
evaluationContent
.
getDataCode
();
data
.
dataCategory
=
evaluationContent
.
getDataCategory
();
data
.
dataCategory
=
evaluationContent
.
getDataCategory
();
data
.
supplierList
=
supplierList
;
data
.
supplierList
=
supplierList
;
//携带data,回调渲染表格数据templateTableComparisonData
this
.
templateTableComparisonData
.
set
(
data
);
this
.
templateTableComparisonData
.
set
(
data
);
}
}
/**
* 异步获取结果集
* @param tenderId
* @param factorCode
* @param supplierList
*/
public
void
refresh
(
String
tenderId
,
String
factorCode
,
List
<
Supplier
>
supplierList
)
{
public
void
refresh
(
String
tenderId
,
String
factorCode
,
List
<
Supplier
>
supplierList
)
{
RxSwt
.
run
(()
->
evaluationContentService
.
getEvaluationContentListByFactorCode
(
tenderId
,
factorCode
)).
checkWidget
(
this
).
other
(
ArrayList:
:
new
).
exe
(
l
->
{
RxSwt
.
run
(()
->
evaluationContentService
.
getEvaluationContentListByFactorCode
(
tenderId
,
factorCode
)).
checkWidget
(
this
).
other
(
ArrayList:
:
new
).
exe
(
l
->
{
TemplateTableData
data
=
new
TemplateTableData
();
TemplateTableData
data
=
new
TemplateTableData
();
data
.
tenderId
=
tenderId
;
data
.
tenderId
=
tenderId
;
data
.
evaluationContentList
=
l
.
stream
().
filter
(
t
->
(
DataCategoryEnum
.
TT
.
getKey
().
equals
(
t
.
getDataCategory
())
||
DataCategoryEnum
.
MD
.
getKey
().
equals
(
t
.
getDataCategory
()))).
collect
(
Collectors
.
toList
());
data
.
evaluationContentList
=
l
.
stream
().
filter
(
t
->
{
if
(
DataCategoryEnum
.
TT
.
getKey
().
equals
(
t
.
getDataCategory
()))
{
List
<
TemplateTable
>
templateTableList
=
templateTableService
.
getTemplateTableList
(
tenderId
,
t
.
getRelChapterType
(),
t
.
getDataCode
());
if
(
CollectionUtils
.
isNull
(
templateTableList
))
{
return
false
;
}
return
true
;
}
if
(
DataCategoryEnum
.
MD
.
getKey
().
equals
(
t
.
getDataCategory
())){
return
true
;
}
return
false
;
}).
collect
(
Collectors
.
toList
());
//data.evaluationContentList = l.stream().filter(t -> DataCategoryEnum.MD.getKey().equals(t.getDataCategory())).collect(Collectors.toList());
data
.
supplierList
=
supplierList
;
data
.
supplierList
=
supplierList
;
//在set后调用回调函数bind
this
.
templateTableData
.
set
(
data
);
this
.
templateTableData
.
set
(
data
);
});
});
}
}
...
...
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