Commit 38cc81c4 authored by 黄重's avatar 黄重

提交代码

parent 822ba1d8
......@@ -259,7 +259,7 @@ public class FactorEvaluationComposite extends EvaluationView {
//渲染图形化界面
render();
//渲染左侧AI界面,如果不需要直接注释该方法
renderAi();
// renderAi();
init();
}
......
......@@ -121,6 +121,7 @@ import com.gx.obe.web.service.expert.ExpertService;
import com.gx.security.CertValidator;
import com.gx.security.CertificateException;
import com.gx.security.SecurityRuntimeException;
import com.gx.tools.ole.signature.BacthSignatureDialog;
import com.gx.tools.ole.signature.CircleSignatureDialog;
import com.gx.tools.utils.SignaturePdfUtils;
import com.gx.utils.NowTimeUtils;
......@@ -171,6 +172,7 @@ public class MyEvaluationStepComposite extends Composite implements ActionListen
private EvaluationStepService evaluationStepService;
private Menu menu;
private Menu resultMenu;
// private ELink batchSignature_btn;
// private StepButton curStep;
{
LogUtils.logClass(MyEvaluationStepComposite.class);
......@@ -323,13 +325,25 @@ public class MyEvaluationStepComposite extends Composite implements ActionListen
preEvalLink.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/blue/signature.png"));
menuFunctionUtils.addFunction(preEvalLink, "EVALUATION_PREEVAL");
//如果需要屏蔽,直接注释掉该行
new AiEvalLeftButton(toolsComposite, SWT.NONE, tenderProject, "标书查重");
// new AiEvalLeftButton(toolsComposite, SWT.NONE, tenderProject, "标书查重");
signature_btn = new ELink(toolsComposite, SWT.NONE);
signature_btn.setFont(SWTResourceManager.getFont("微软雅黑", 12, SWT.BOLD));
signature_btn.setForeground(SWTResourceManager.getColor(60, 138, 226));
menuFunctionUtils.addFunction(signature_btn, "EVALUATION_SIGNATURE");
// batchSignature_btn = new ELink(toolsComposite, SWT.NONE);
// batchSignature_btn.setFont(SWTResourceManager.getFont("微软雅黑", 12, SWT.BOLD));
// batchSignature_btn.setForeground(SWTResourceManager.getColor(60, 138, 226));
// batchSignature_btn.setText("批量签名");
// batchSignature_btn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/blue/edit.png"));
// batchSignature_btn.addMouseListener(new MouseAdapter() {
// public void mouseUp(MouseEvent e) {
// openBatchSignatureDialog();
// }
// });
wasteBiddding_btn = new ELink(toolsComposite, SWT.NONE);
wasteBiddding_btn.setFont(SWTResourceManager.getFont("微软雅黑", 12, SWT.BOLD));
wasteBiddding_btn.setForeground(SWTResourceManager.getColor(60, 138, 226));
......@@ -478,12 +492,32 @@ public class MyEvaluationStepComposite extends Composite implements ActionListen
signature_btn.addMouseListener(mouseAdapter);
}
/**
* 手写签名
*
* @param title
* @param signaturePdfKey
* @param signaturePdfType
*/
private void openSignatureDialog(String title, String signaturePdfKey, String signaturePdfType) {
CircleSignatureDialog signatureDialog = new CircleSignatureDialog(getShell(), tenderProject, Constants.USER, signaturePdfKey, signaturePdfType);
signatureDialog.setTitle(title);
signatureDialog.open();
}
/**
* 批量签名
*
* @param title
* @param signaturePdfKey
* @param signaturePdfType
*/
private void openBatchSignatureDialog() {
BacthSignatureDialog signatureDialog = new BacthSignatureDialog(getShell(), tenderProject, Constants.USER, expert);
signatureDialog.setTitle("批量签名");
signatureDialog.open();
}
/**
......
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
package com.gx.tools.ole.signature;
import org.eclipse.swt.SWT;
import org.eclipse.swt.core.widgets.EDialog;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import com.gx.obe.components.core.enumeration.CommonEnum;
import com.gx.obe.config.ConfigConstants;
import com.gx.obe.config.utils.PropertiesUtils;
import com.gx.obe.message.Messages;
import com.gx.obe.util.utils.LogUtils;
import com.gx.obe.util.utils.ScreenUtils;
import com.gx.obe.web.entity.auth.AuthUser;
import com.gx.obe.web.entity.expert.Expert;
import com.gx.obe.web.entity.tender.TenderProjectEntity;
/**
* @Description: 流转签章
* @author guoyr
*/
public class BacthSignatureDialog extends EDialog {
private TenderProjectEntity tenderProject;
private AuthUser curUser;
private Composite container;
private Expert expert;
{
LogUtils.logClass(BacthSignatureDialog.class);
}
/**
* @author guoyr
* @param parentShell
* @param tenderProjectEntity
* @param templateType
*/
public BacthSignatureDialog(Shell parentShell, TenderProjectEntity tenderProjectEntity, AuthUser curUser, Expert expert) {
super(parentShell);
setTitle(Messages.Button_scanSignatrue);
this.tenderProject = tenderProjectEntity;
this.curUser = curUser;
this.expert = expert;
}
/**
* @Description:
* @author guoyr
* @param parent
* @return
*/
@Override
protected Control createDialogArea(Composite parent) {
container = (Composite) super.createDialogArea(parent);
container.setLayout(new FillLayout(SWT.HORIZONTAL));
init();
return container;
}
private void init(){
container.setData("dialog", "true");
// if (SignaturePdfUtils.CA.equals(signatureType)) {
// setTitle(Messages.Button_caSignature);
// CACircleSignatureComposite signatureComposite= new CACircleSignatureComposite(container, SWT.NONE);
// signatureComposite.refreshSignatureFiles(tenderProject, curUser);
// } else if (SignaturePdfUtils.HAND.equals(signatureType)) {
// setTitle(Messages.Button_handSignature);
// // 这里根据手写板类型调用不同的签章界面
//// String handType = PropertiesUtils.getProperty(ConfigConstants.HAND_SIGNATURE_PDF, "");
// BJCAHandCircleSignatureComposite signatureComposite= new BJCAHandCircleSignatureComposite(container, SWT.NONE);
// signatureComposite.refreshSignatureFiles(tenderProject, curUser);
// } else if (SignaturePdfUtils.SAOMA.equals(signatureType)) {
// setTitle(Messages.Button_scanSignatrue);
// // CFCA 中招扫码app
// if(CFCASaoMaLoaderImpl.PDF_TYPE.equals(signaturePdfvalue)) {
// CFCASaomaCircleSignatureComposite signatureComposite= new CFCASaomaCircleSignatureComposite(container, SWT.NONE);
// signatureComposite.refreshSignatureFiles(tenderProject, curUser);
// }else {
// // 北京CA扫码签章
// BJCASaomaCircleSignatureComposite signatureComposite= new BJCASaomaCircleSignatureComposite(container, SWT.NONE);
// signatureComposite.refreshSignatureFiles(tenderProject, curUser);
// }
// }
ExpertBatchSignatureComposite expertBatchSignatureComposite = new ExpertBatchSignatureComposite(container, SWT.NONE);
expertBatchSignatureComposite.refreshSignatureFiles(tenderProject, curUser, expert);
}
/**
* Return the initial size of the dialog.
*/
@Override
protected Point getInitialSize() {
ScreenUtils util = new ScreenUtils();
int screenHight = util.getScreenHight() - util.getTaskBarHight();
if(PropertiesUtils.getProperty(ConfigConstants.EVAL_FULL_SCREEN, "00").equals(CommonEnum.YES)) {
screenHight = util.getScreenHight();
}
return new Point(util.getScreenWight(),screenHight);
// return new Point(840, 616);
}
}
package com.gx.tools.ole.signature;
import java.io.File;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.swt.SWT;
import org.eclipse.swt.core.CallBack;
import org.eclipse.swt.core.ImageResolver;
import org.eclipse.swt.core.MessageDialog;
import org.eclipse.swt.core.utils.FileDialogUtils;
import org.eclipse.swt.core.utils.WidgetUtils;
import org.eclipse.swt.core.widgets.EButton;
import org.eclipse.swt.core.widgets.EMenu;
import org.eclipse.swt.core.widgets.ESepator;
import org.eclipse.swt.core.widgets.ImageButton;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import com.gx.obe.ColorConstants;
import com.gx.obe.business.entity.SignatureFile;
import com.gx.obe.business.entity.SignatureUser;
import com.gx.obe.common.file.download.DownloadFileUtill;
import com.gx.obe.common.file.enumeration.FileConstants;
import com.gx.obe.common.file.service.SignatureFileService;
import com.gx.obe.common.file.service.SignatureUserService;
import com.gx.obe.common.file.service.UploadFileService;
import com.gx.obe.common.file.service.UserSignFileService;
import com.gx.obe.common.file.utils.FileMd5Util;
import com.gx.obe.common.icons.IconsActivator;
import com.gx.obe.common.widget.button.SignatureFileButton;
import com.gx.obe.common.widget.dialog.MessageViewDialog;
import com.gx.obe.components.core.enumeration.CommonEnum;
import com.gx.obe.message.Messages;
import com.gx.obe.util.utils.FileUtils;
import com.gx.obe.util.utils.ObjectUtils;
import com.gx.obe.util.utils.StringUtils;
import com.gx.obe.util.utils.UuidUtils;
import com.gx.obe.web.entity.Result.ResultEntity;
import com.gx.obe.web.entity.auth.AuthUser;
import com.gx.obe.web.entity.expert.Expert;
import com.gx.obe.web.entity.tender.TenderProjectEntity;
import com.gx.obe.web.service.ReportFileService;
import com.gx.obe.web.service.UserService;
import com.gx.obe.web.service.expert.ExpertService;
import com.gx.tools.ole.bjca.BJCAHandPDFLoaderImpl;
import com.gx.tools.ole.bjca.listener.BJCAHandSignListener;
import com.gx.utils.ActionLogUtils;
import com.gx.utils.NowTimeUtils;
import com.gx.utils.Params;
import com.swtdesigner.ResourceManager;
import com.swtdesigner.SWTResourceManager;
/**
* @Description: 流转签章
* @author guoyr
*/
public class ExpertBatchSignatureComposite extends Composite {
private UserSignFileService expertSignService = new UserSignFileService();
private ExpertService expertService;
private ScrolledComposite scrolledComposite;
private Composite fileList_composite;
private Composite sinatureFile_composite;
private SignatureFileService signatureFileService;
private SignatureUserService signatureUserService;
private Map<String, SignatureFileButton> fileBtnMap;
private Map<String, SignatureFileButton> fileNoFinishMap;
private Map<String, SignatureUser> signatureUserMap;
protected List<SignatureUser> userSignatureFileList;
protected SignatureFile curSignatureFile;
private SignatureFileButton curSignatureFileButton;
private Thread autoRefreshThread;
private Composite composite;
protected Composite content;
protected Composite bottomContent;
protected TenderProjectEntity tenderProject;
protected AuthUser curUser;
// private CircleSignatureListener signatureListener;
private Runnable refreshSignaturFileRunnable;
private UploadFileService uploadFileService;
private File signaturePdfFile;
private ReportFileService reportFileService;
// private ELink moreOpLink;
protected ImageResolver imageResolver = new ImageResolver();
private boolean isBatchFileSignature = false;
private Composite bottomComposite;
private EButton signature_btn;
private EButton bacthSign_btn;
private String imageData;
private BJCAHandPDFLoaderImpl documentLoader;
// private BJCAHandPDFLoaderImpl documentLoader1;
private Expert expert;
private boolean hasNoSign;
private Label lblNewLabel;
private Label lblNewLabel_1;
private UserService userService = new UserService();
private Composite composite_2;
private Label lblNewLabel_2;
private ImageButton signImageButton;
/**
* Create the composite.
* @param parent
* @param style
*/
public ExpertBatchSignatureComposite(Composite parent, int style) {
super(parent, style);
setBackground(ColorConstants.BORDER_LINE_COLOR);
GridLayout gridLayout = new GridLayout(2, false);
gridLayout.verticalSpacing = 0;
gridLayout.horizontalSpacing = 1;
gridLayout.marginHeight = 0;
gridLayout.marginWidth = 0;
setLayout(gridLayout);
scrolledComposite = new ScrolledComposite(this, SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setBackgroundMode(SWT.INHERIT_FORCE);
scrolledComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
GridData gd_scrolledComposite = new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1);
gd_scrolledComposite.widthHint = 300;
scrolledComposite.setLayoutData(gd_scrolledComposite);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
fileList_composite = new Composite(scrolledComposite, SWT.NONE);
fileList_composite.setLayout(new GridLayout(1, false));
fileList_composite.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
disposeAction();
}
});
sinatureFile_composite = new Composite(fileList_composite, SWT.NONE);
GridLayout gl_sinatureFile_composite = new GridLayout(1, false);
gl_sinatureFile_composite.verticalSpacing = 2;
gl_sinatureFile_composite.horizontalSpacing = 0;
gl_sinatureFile_composite.marginWidth = 0;
gl_sinatureFile_composite.marginHeight = 0;
sinatureFile_composite.setLayout(gl_sinatureFile_composite);
GridData gd_sinatureFile_composite = new GridData(SWT.CENTER, SWT.FILL, true, true, 1, 1);
gd_sinatureFile_composite.widthHint = 179;
sinatureFile_composite.setLayoutData(gd_sinatureFile_composite);
SignatureFileButton signatureFileButton = new SignatureFileButton(sinatureFile_composite, SWT.NONE);
GridData gd_signatureFileButton = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1);
gd_signatureFileButton.widthHint = 80;
signatureFileButton.setLayoutData(gd_signatureFileButton);
signatureFileButton.setText("初步评审汇总表");
ESepator sep = new ESepator(fileList_composite, SWT.NONE);
sep.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
composite_2 = new Composite(fileList_composite, SWT.NONE);
composite_2.setLayout(new GridLayout(1, false));
GridData gd_composite_2 = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
gd_composite_2.heightHint = 250;
composite_2.setLayoutData(gd_composite_2);
lblNewLabel_2 = new Label(composite_2, SWT.NONE);
lblNewLabel_2.setAlignment(SWT.CENTER);
lblNewLabel_2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
lblNewLabel_2.setText("签名图片");
signImageButton = new ImageButton(composite_2, SWT.NONE);
signImageButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
scrolledComposite.setContent(fileList_composite);
scrolledComposite.setMinSize(fileList_composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
composite = new Composite(this, SWT.NONE);
composite.setBackgroundMode(SWT.INHERIT_FORCE);
composite.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
GridLayout gl_composite = new GridLayout(2, false);
gl_composite.verticalSpacing = 0;
gl_composite.horizontalSpacing = 0;
gl_composite.marginHeight = 0;
gl_composite.marginWidth = 0;
composite.setLayout(gl_composite);
Composite content1 = new Composite(composite, SWT.NONE);
content1.setLayout(new GridLayout(2, false));
content1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
lblNewLabel = new Label(content1, SWT.NONE);
lblNewLabel.setFont(org.eclipse.wb.swt.SWTResourceManager.getFont("Microsoft YaHei UI", 16, SWT.BOLD));
lblNewLabel.setText("当前签字人:");
lblNewLabel_1 = new Label(content1, SWT.NONE);
GridData gd_lblNewLabel_1 = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
gd_lblNewLabel_1.widthHint = 200;
lblNewLabel_1.setLayoutData(gd_lblNewLabel_1);
lblNewLabel_1.setForeground(org.eclipse.wb.swt.SWTResourceManager.getColor(SWT.COLOR_RED));
lblNewLabel_1.setFont(org.eclipse.wb.swt.SWTResourceManager.getFont("Microsoft YaHei UI", 11, SWT.BOLD));
new Label(composite, SWT.NONE);
content = new Composite(composite, SWT.NONE);
content.setFont(SWTResourceManager.getFont("微软雅黑", 18, SWT.NORMAL));
content.setLayout(new FillLayout(SWT.HORIZONTAL));
content.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
ESepator sep2 = new ESepator(composite, SWT.NONE);
sep2.setBackground(ColorConstants.BORDER_LINE_COLOR);
sep2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
bottomContent = new Composite(composite, SWT.NONE);
bottomContent.setLayout(new GridLayout(1, false));
bottomContent.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
bottomComposite = new Composite(bottomContent, SWT.NONE);
bottomComposite.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, true, 1, 1));
bottomComposite.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
bottomComposite.setLayout(new GridLayout(2, false));
signature_btn = new EButton(bottomComposite, SWT.NONE | EButton.CSS_BLUE);
signature_btn.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true, 1, 1));
signature_btn.setFont(SWTResourceManager.getFont("微软雅黑", 10, SWT.BOLD));
signature_btn.setText("签名采集");
signature_btn.setMinWidth(90);
signature_btn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/white/pen.png"));
signature_btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
getSignImageData();
// addSignatureAction();
}
});
bacthSign_btn = new EButton(bottomComposite, SWT.NONE | EButton.CSS_BLUE);
bacthSign_btn.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true, 1, 1));
bacthSign_btn.setFont(SWTResourceManager.getFont("微软雅黑", 10, SWT.BOLD));
bacthSign_btn.setText("批量签字");
bacthSign_btn.setMinWidth(90);
bacthSign_btn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/white/pen.png"));
bacthSign_btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
// copyHandSignatureAction();
complateEvaluationAction();
}
});
bacthSign_btn.setEnabled(false);
new Label(composite, SWT.NONE);
// moreOpLink = new ELink(composite, SWT.NONE);
// moreOpLink.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
// moreOpLink.setFont(SWTResourceManager.getFont("微软雅黑", 10, SWT.BOLD));
// moreOpLink.setText("");
// moreOpLink.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/fujian_16.png"));
// moreOpLink.addMouseListener(new MouseAdapter() {
// @Override
// public void mouseUp(MouseEvent e) {
// moreFileOpAction();
// }
// });
init();
}
/**
* @Description: 初始化
* @author guoyr
*/
private void init() {
expertService = new ExpertService();
signatureFileService = new SignatureFileService();
signatureUserService = new SignatureUserService();
uploadFileService = new UploadFileService();
content.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent arg0) {
String title = Messages.Tips_selectFileSignature;
Point textPoint = arg0.gc.textExtent(title);
int x = (arg0.width - textPoint.x) / 2;
int drawX = x;
int drawY = 50;
arg0.gc.drawText(title, x, 50, true);
drawY += 50;
arg0.gc.drawImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/signature_allow.png"), drawX, drawY);
arg0.gc.drawText(Messages.Tips_applyCircleSignature, drawX + 40, drawY, true);
drawY += 50;
arg0.gc.drawImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/signature_inprogress.png"), drawX, drawY);
arg0.gc.drawText(Messages.Tips_beingCircleSignature, drawX + 40, drawY, true);
drawY += 50;
arg0.gc.drawImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/signature_complate.png"), drawX, drawY);
arg0.gc.drawText(Messages.Tips_complateSignature, drawX + 40, drawY, true);
}
});
}
// /**
// * 此处只是为加载北京ca签章控件
// */
// private void initHandSign() {
// //手写签字空白模版文件
// final File templateFile = FileConstants.getResourceFile(Constants.BLANK_PDF);
// String filePath = Constants.getSignFilePath(tenderProject.getId()).concat(Constants.BLANK_PDF);
// File signFile = new File(filePath);
// if(signFile.exists()) {
// signFile.delete();
// }
// if(templateFile.exists()) {
// FileUtils.copy(templateFile.getAbsolutePath(), filePath);
// }else {
// MessageDialog.openError(getShell(), "未找到模版!");
// }
// if (null == documentLoader1) {
// documentLoader1 = new BJCAHandPDFLoaderImpl(filePath);
//// documentLoader.showOrHiddenToolBar(false);
// documentLoader1.openDocument(composite_1, true);
// documentLoader1.addHandSignListener(new BJCAHandSignListener() {
// public void signScript() {
// Display.getDefault().syncExec(new Runnable() {
// public void run() {
// }
// });
// }
// public void signatrue(final boolean flag) {
// Display.getDefault().syncExec(new Runnable() {
// public void run() {
// if(flag) {
//
// }
// }
// });
// }
// });
// }
// documentLoader1.openFile(signFile);
// // 北京CA手写板不支持获取签章数.setSignatureCount(0);
// composite_1.layout();
// }
/**
* @Description: 刷新当前用户需要签章的报表
* @author guoyr
* @param tenderProject
*/
public void refreshSignatureFiles(final TenderProjectEntity tenderProject, AuthUser curUser, Expert expert){
this.tenderProject = tenderProject;
this.curUser = userService.findById(expert.getUserId());
this.expert = expert;
for (Control control : sinatureFile_composite.getChildren()) {
control.dispose();
}
lblNewLabel_1.setText(expert.getUser().getUserName());
if(null == fileBtnMap){
fileBtnMap = new HashMap<String, SignatureFileButton>();
}else {
fileBtnMap.clear();
}
if(null == fileNoFinishMap){
fileNoFinishMap = new HashMap<String, SignatureFileButton>();
}else {
fileNoFinishMap.clear();
}
if(null == signatureUserMap){
signatureUserMap = new HashMap<String, SignatureUser>();
}else {
signatureUserMap.clear();
}
// initHandSign();
refleshSignFileList();
doRefreshMySignatureFileThread();
refreshMySignatureLoyout();
imageData = null;
signImageButton.setImage(null);
signImageButton.redraw();
}
/**
* @Description: 启动刷新我的签名报表线程
* @author guoyr
*/
private void doRefreshMySignatureFileThread() {
if(null == refreshSignaturFileRunnable) {
refreshSignaturFileRunnable = new Runnable() {
public void run() {
refleshSignFileList();
}
};
}
autoRefreshThread = new Thread(new Runnable() {
public void run() {
while (null != fileNoFinishMap && fileNoFinishMap.size() > 0) {
// userSignatureFileList = signatureUserService.getUserSignatureFileList(tenderProject.getId(), curUser.getId());
if (null != Display.getDefault() && !Display.getDefault().isDisposed()) {
Display.getDefault().syncExec(refreshSignaturFileRunnable);
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {}
}
}
});
autoRefreshThread.start();
}
/**
* 刷新专家签字文件列表
*/
private void refleshSignFileList() {
userSignatureFileList = signatureUserService.getUserSignatureFileList(tenderProject.getId(), curUser.getId());
if (null != userSignatureFileList) {
boolean refreshLayout = false;
int index = 0;
for (SignatureUser signatureUser : userSignatureFileList) {
if (null != fileBtnMap) {
SignatureFileButton signatureFileButton = fileBtnMap.get(signatureUser.getSignatureId());
if (null != signatureFileButton && !signatureFileButton.isDisposed()) {
refreshSinatureStatus(signatureUser.getSignatureFile(), signatureUser);
} else{
addSinatureFile(signatureUser.getSignatureFile(), signatureUser);
refreshLayout = true;
}
if(index == 0 && null == curSignatureFile ) {
selectSignatureFileAction(fileBtnMap.get(signatureUser.getSignatureId()), signatureUser.getSignatureFile());
}
}
index ++;
}
if(refreshLayout && !sinatureFile_composite.isDisposed()){
refreshMySignatureLoyout();
}
}
}
/**
* @Description: 刷新列表布局
* @author guoyr
*/
private void refreshMySignatureLoyout() {
sinatureFile_composite.layout();
fileList_composite.layout();
scrolledComposite.setMinSize(fileList_composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
}
/**
* @Description: 添加签章文件
* @author guoyr
* @param signatureFile
* @param signatureUser
*/
private void addSinatureFile(final SignatureFile signatureFile, SignatureUser signatureUser) {
if(sinatureFile_composite.isDisposed())return;
if (null != signatureFile && null != signatureFile.getId()) {
final SignatureFileButton signatureFileButton = new SignatureFileButton(sinatureFile_composite, SWT.NONE);
GridData gd_signatureFileButton = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
gd_signatureFileButton.widthHint = 145;
signatureFileButton.setLayoutData(gd_signatureFileButton);
signatureFileButton.setText(signatureFile.getFileName().substring(0, signatureFile.getFileName().lastIndexOf(".")));
fileBtnMap.put(signatureFile.getId(), signatureFileButton);
fileNoFinishMap.put(signatureFile.getId(), signatureFileButton);
signatureUserMap.put(signatureFile.getId(), signatureUser);
refreshSinatureStatus(signatureFile, signatureUser);
signatureFileButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
selectSignatureFileAction(signatureFileButton, signatureFile);
}
});
if (null != curSignatureFile && curUser.getId().equals(curSignatureFile.getCurUserId())) {
selectSignatureFileAction(signatureFileButton, signatureFile);
}
}
}
/**
* @Description: 刷新显示签章状态
* @author guoyr
* @param signatureUser
* @param signatureFileButton
*/
private void refreshSinatureStatus(SignatureFile signatureFile, SignatureUser signatureUser) {
SignatureFileButton signatureFileButton = fileBtnMap.get(signatureFile.getId());
if (null != signatureFile && null != signatureFileButton && !signatureFileButton.isDisposed()) {
signatureUserMap.put(signatureFile.getId(), signatureUser);
signatureFileButton.setSubTextSurroundColor(ColorConstants.COLOR_ORANGE);
if(CommonEnum.YES.equals(signatureUser.getSignatureType())){
signatureFileButton.setSubText(null);
signatureFileButton.setSubImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/signature_complate.png"));
signatureFileButton.setEnabled(true);
fileNoFinishMap.remove(signatureFile.getId());
if(null != curSignatureFile && curSignatureFile.getId() .equals(signatureFile.getId()) ) {
//检查是否需要重新下载
if( needDownloadFile(getSignatrueFile(signatureFile), signatureFile)) {
boolean downloadFlag = DownloadFileUtill.startDownloadFileSync(getSignatrueFileDownladUrl(signatureFile), signatureFile.getFileName(), signaturePdfFile.getParentFile().getAbsolutePath(), "正在下载报表文件");
if(!downloadFlag) {
MessageDialog.openWarning(getShell(), MessageFormat.format(Messages.Tips_downloadFailFormat, signatureFile.getFileName()));
return;
}
}
}
}else {
signatureFileButton.setEnabled(false);
if(null != signatureFile.getCurUserId()){
signatureFileButton.setSubImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/signature_inprogress.png"));
if(signatureUser.getUserId().equals(signatureFile.getCurUserId())){
signatureFileButton.setEnabled(true);
signatureFileButton.setSubText(Messages.Button_youAreSigning);
}else if(null != signatureFile.getCurUserName()){
signatureFileButton.setSubText(MessageFormat.format(Messages.Button_beingSignedBy, signatureFile.getCurUserName()));
}else {
signatureFileButton.setSubText(Messages.Button_beingSigned);
}
}else {
signatureFileButton.setSubImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/signature_allow.png"));
// signatureFileButton.setSubText(Messages.Button_applySignature);
signatureFileButton.setSubTextSurroundColor(ColorConstants.COLOR_GREEN);
}
}
}
}
// /**
// * @Description: 重新签字
// * @author guoyr
// */
// public boolean reApplySignatureAction(){
// if(applySignature()) {
// signatureListener.onLoadSignatureFile();
// SignatureUser signatureUser = signatureUserMap.get(curSignatureFile.getId());
// if(signatureUserService.updateSignatureUser(signatureUser.getId(), CommonEnum.NO, NowTimeUtils.getNowDate())){
// signatureUser.setSignatureType(CommonEnum.NO);
// }
// signatureListener.signatureApply(curSignatureFile, signatureUser);
// loadSignatureFile(curSignatureFile);
// return true;
// }
// return false;
// }
/**
* @Description: 选择签字文件事件
* @author guoyr
* @param signatureFileButton
* @param signatureFile
*/
private void selectSignatureFileAction(SignatureFileButton signatureFileButton, SignatureFile signatureFile){
if(null == signatureFileButton){
return;
}
// if(!signatureListener.isBatchSignature()) {
// 如果上一次打开的文件没有释放已申请的签字权限,则先释放上次获取的签字权限,供其他专家申请使用
if(null != curSignatureFile && !signatureFile.getId().equals(curSignatureFile.getId()) && curUser.getId().equals(curSignatureFile.getCurUserId())){
// signatureFileService.releaseApplySignatureFile(curSignatureFile.getId(), curUser.getId());
if(null != curSignatureFileButton && !curSignatureFileButton.isDisposed()){
SignatureUser preSignatureUser = signatureUserMap.get(curSignatureFile.getId());
refreshSinatureStatus(curSignatureFile, preSignatureUser);
}
// }
}
curSignatureFile = signatureFile;
if(null != curSignatureFileButton && !curSignatureFileButton.isDisposed()){
curSignatureFileButton.setSelection(false);
}
curSignatureFileButton = signatureFileButton;
curSignatureFileButton.setSelection(true);
SignatureUser signatureUser = signatureUserMap.get(signatureFile.getId());
if(null != curSignatureFile) {
loadSignatureFile(curSignatureFile);
}
}
protected void setSelection(SignatureFile signatureFile) {
if(null == signatureFile)return;
this.curSignatureFile = signatureFile;
if(null != curSignatureFileButton && !curSignatureFileButton.isDisposed()){
curSignatureFileButton.setSelection(false);
}
SignatureFileButton _signatureFileButton = fileBtnMap.get(signatureFile.getId());
if(null != _signatureFileButton && !_signatureFileButton.isDisposed()) {
curSignatureFileButton = _signatureFileButton;
curSignatureFileButton.setSelection(true);
}
Point p = Display.getDefault().map(curSignatureFileButton, scrolledComposite, 0,0);
scrolledComposite.getVerticalBar().setSelection(p.y - 10);
scrolledComposite.getVerticalBar().notifyListeners(SWT.Selection, null);
}
/**
* @Description: 申请多文件文件批量签名权限
* @author guoyr
* @param curSignatureFile
* @param signatureUser
* @param signatureFileButton
*/
public List<SignatureFile> batchFileApplySignatureAction(SignatureFile selectSignatureFile) {
// int applyCount = signatureFileService.batchApplySignatureFile(tenderProject.getId(), curUser.getId(), curUser.getUserName());
List<SignatureFile> mySignatureFileList = null;
// if(applyCount > 0) {
// }
userSignatureFileList = signatureUserService.getUserSignatureFileList(tenderProject.getId(), curUser.getId());
if(null != userSignatureFileList) {
mySignatureFileList = new ArrayList<SignatureFile>();
for (SignatureUser _signatureUser : userSignatureFileList) {
SignatureFile appSignatureFile = _signatureUser.getSignatureFile();
if (null != fileBtnMap && null != appSignatureFile) {
if(curUser.getId().equals(appSignatureFile.getCurUserId())) {
if (appSignatureFile.getId().equals(curSignatureFile.getId())) {
this.curSignatureFile = appSignatureFile;
}
mySignatureFileList.add(appSignatureFile);
refreshSinatureStatus(appSignatureFile, _signatureUser);
}
}
}
}
return mySignatureFileList;
}
/**
* @Description: 申请签名
* @author guoyr
* @return
*/
public boolean applySignature() {
if(null != curSignatureFile) {
curSignatureFile = signatureFileService.applySignatureFile(curSignatureFile.getId(), curUser.getId(), curUser.getUserName());
if(null != curSignatureFile) {
if(curUser.getId().equals(curSignatureFile.getCurUserId())) {
return true;
}else {
MessageDialog.openShortMessage(MessageFormat.format(Messages.Tips_beingSignedBy, curSignatureFile.getCurUserName()));
return false;
}
}
}
return false;
}
/**
* @Description: 申请单个文件的签名权限
* @author guoyr
* @param signatureFile
* @param signatureUser
* @param signatureFileButton
*/
public boolean applySignatureAction(SignatureFile signatureFile, SignatureUser signatureUser) {
// 申请签字
if(applySignature()) {
refreshSinatureStatus(curSignatureFile, signatureUser);
return true;
}
return false;
}
/**
* @Description: 加载签章
* @author guoyr
*/
private void loadSignatureFile(SignatureFile applySignatureFile) {
if(null == applySignatureFile) {
MessageDialog.openWarning(getShell(), Messages.Tips_fileDeleted);
if(null != curSignatureFileButton && !curSignatureFileButton.isDisposed()) {
curSignatureFileButton.dispose();
}
refreshMySignatureLoyout();
return;
}
signaturePdfFile = getSignatrueFile(applySignatureFile);
if(needDownloadFile(signaturePdfFile, applySignatureFile)) {
boolean downloadFlag = DownloadFileUtill.startDownloadFileSync(getSignatrueFileDownladUrl(applySignatureFile), applySignatureFile.getFileName(), signaturePdfFile.getParentFile().getAbsolutePath(), "正在下载报表文件");
if(!downloadFlag) {
MessageDialog.openWarning(getShell(), MessageFormat.format(Messages.Tips_downloadFailFormat, applySignatureFile.getFileName()));
return;
}
}
if(null != signaturePdfFile && signaturePdfFile.exists()){
bottomContent.setEnabled(false);
loadSignatureFile(signaturePdfFile);
if(!bottomContent.isDisposed()){
bottomContent.setEnabled(true);
}
}else {
MessageDialog.openShortMessage(Messages.Tips_LoadFileFail);
}
}
/**
* @Description: 获得待签章的文件
* @author guoyr
* @param applySignatureFile
* @return
*/
public File getSignatrueFile(SignatureFile applySignatureFile) {
if(null == applySignatureFile) {
return null;
}
return new File(FileConstants.TEMP_FOLDER.concat(tenderProject.getId()).concat(File.separator).concat(applySignatureFile.getFileName()));
}
/**
* @Description: 获得下载地址
* @author guoyr
* @param applySignatureFile
* @return
*/
public String getSignatrueFileDownladUrl(SignatureFile applySignatureFile) {
String reportType = null != applySignatureFile.getReportType() ? applySignatureFile.getReportType() : FileConstants.REPORT_FILE_FOLDER;
return "/".concat(tenderProject.getId()).concat("/").concat(reportType).concat("/").concat(applySignatureFile.getFileName());
}
/**
* @Description: 判断是否需要下载最新文件
* @author guoyr
* @param applySignatureFile
* @return
*/
public boolean needDownloadFile(File signaturePdfFile, SignatureFile applySignatureFile) {
String reportType = null != applySignatureFile.getReportType() ? applySignatureFile.getReportType() : FileConstants.REPORT_FILE_FOLDER;
if (uploadFileService.checkFileisExists(applySignatureFile.getFileName(), tenderProject.getId(), null, reportType)) {
if(null == reportFileService) {
reportFileService = new ReportFileService();
}
if (signaturePdfFile.exists()) {
if (FileMd5Util.getFileMD5(signaturePdfFile).equals(reportFileService.getFileMD5(getSignatrueFileDownladUrl(applySignatureFile)))) {
return false;
}else {
//本地文件与服务器文件md5不一致的时候进行同步最新文件
signaturePdfFile.delete();
return true;
}
} else {
return true;
}
}
return false;
}
/**
* @Description: 产传并完成签章
* @author guoyr
* @return
*/
public boolean complateSignature(){
// SignatureUser signatureUser = (SignatureUser)curSignatureFileButton.getData("signatureUser");
SignatureUser signatureUser = signatureUserMap.get(curSignatureFile.getId());
Params params = new Params("文件", curSignatureFile.getFileName()).add("签名人", curUser.getUserName());
ActionLogUtils.addServerLog(tenderProject.getId(), "完成签名", params);
boolean isSignature = uploadReportAndComplateUserSignature(signatureUser, curSignatureFile, signaturePdfFile);
if(isSignature){
MessageDialog.openShortMessage(Messages.Tips_submitSuccess);
refreshCurSignatureFile();
}else {
MessageDialog.openWarning(getShell(), Messages.Tips_submitFail);
}
return isSignature;
}
/**
* @Description: 上传报表并完成用户的签名状态
* @author guoyr
* @param signatureUser
* @param signatureFile
* @param reportFile
* @return
*/
private boolean uploadReportAndComplateUserSignature(SignatureUser signatureUser, SignatureFile signatureFile, File reportFile) {
if(null != reportFile && reportFile.exists()){
// 上传之前先要验证是否有权限上传
if(true) {
String reportType = null != signatureFile.getReportType() ? signatureFile.getReportType() : FileConstants.REPORT_FILE_FOLDER;
if(uploadReportFile(reportFile,reportType)){
return signatureFileService.saveSignatureFile(signatureFile.getId(), signatureUser, NowTimeUtils.getNowDate());
}
}
}
return false;
}
/**
* @Description: 是否有权限上传
* @author guoyr
* @param signatureId
* @return
*/
public boolean hasPermission(String signatureId) {
if(curUser.getId().equals(signatureFileService.getSignatureUserId(signatureId))) {
return true;
}
return false;
}
/**
* @Description: 上传报表
* @author guoyr
* @param reportFile
* @param reportType
* @return
*/
public boolean uploadReportFile(File reportFile, String reportType) {
return signatureFileService.uploadReportFile(reportFile,reportType, tenderProject.getId());
}
/**
* @Description: 修改用户对当前文件的签名状态为已签章
* @author guoyr
* @param signatureUser
* @return
*/
public boolean complateSignatureUserStatus(SignatureFile signatureFile) {
SignatureUser signatureUser = signatureUserMap.get(signatureFile.getId());
if(null != signatureUser) {
signatureUser.setSignatureType(CommonEnum.YES);
Date nowTime = NowTimeUtils.getNowDate();
signatureUser.setSignatureTime(nowTime);
signatureFile.setLastSignatureTime(nowTime);
signatureFileService.updateAssignProperty(signatureFile, new String[] {"lastSignatureTime"});
return signatureUserService.updateAssignProperty(signatureUser, new String[]{"signatureType", "signatureTime"});
}
return false;
}
/**
* @Description: 刷新当前签章文件
* @author guoyr
*/
public void refreshCurSignatureFile(){
if(null == curSignatureFile)return;
curSignatureFile = signatureFileService.getById(curSignatureFile.getId());
// SignatureUser signatureUser = (SignatureUser)curSignatureFileButton.getData("signatureUser");
SignatureUser signatureUser = signatureUserMap.get(curSignatureFile.getId());
SignatureUser newSignatureUser = signatureUserService.getSignatureUserById(signatureUser.getId());
if(null != newSignatureUser){
signatureUser = newSignatureUser;
signatureUserMap.put(curSignatureFile.getId(), newSignatureUser);
}
refreshSinatureStatus(curSignatureFile, signatureUser);
loadSignatureFile(curSignatureFile);
}
/**
* @Description: 显示配置菜单
* @author guoyr
*/
private void moreFileOpAction() {
if(null == curSignatureFile)return;
final File signaturePdfFile = getSignatrueFile(curSignatureFile);
if(null == signaturePdfFile || !signaturePdfFile.exists()){
return;
}
final EMenu gmenu = new EMenu(getShell());
gmenu.addMenuItem(Messages.Button_refresh, ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/blue/refresh.png"), true, new EMenu.ClickListener() {
public void click() {
if(signaturePdfFile.exists()){
deleteSignatureAction();
}
}
});
gmenu.addMenuItem(Messages.Button_saveAs, ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/blue/save.png"), true, new EMenu.ClickListener() {
public void click() {
String suffx = "*.*";
int indexOfPoint = signaturePdfFile.getName().lastIndexOf(".");
if (indexOfPoint > 0) {
suffx = "*" + signaturePdfFile.getName().substring(indexOfPoint);
}
String saveDir = FileDialogUtils.getFileSavePath(signaturePdfFile.getName(), Messages.Button_saveAs, new String[] { suffx, "*.*" }, new String[] { suffx, "*.*" });//.getDirectorySavePath("另存为", "请选择保存路径");
if (null != saveDir && saveDir.length() > 0) {
File exportFile = new File(saveDir + File.separator + signaturePdfFile.getName());
if (exportFile.exists()) {
if (!MessageDialog.openConfirm(getShell(), Messages.Button_saveAs, MessageFormat.format(Messages.Tips_alreadyExistAndCover, exportFile.getName()), new String[] {Messages.Button_overwrite, Messages.Button_cancel })) {
return;
}
}
FileUtils.copy(signaturePdfFile.getAbsolutePath(), saveDir);
}
}
});
gmenu.open();
}
/**
* @Description: 重新签字时先删除已签字文件然后重新加载
* @author guoyr
*/
public void deleteSignatureAction(){
if(null != signaturePdfFile && signaturePdfFile.exists()){
signaturePdfFile.delete();
}
if(null != curSignatureFileButton && !curSignatureFileButton.isDisposed()){
selectSignatureFileAction(curSignatureFileButton, curSignatureFile);
}
}
private void disposeAction() {
if(null != curSignatureFileButton && !curSignatureFileButton.isDisposed()){
if(null != curSignatureFile) {
if(curUser.getId().equals(curSignatureFile.getCurUserId())){
signatureFileService.releaseApplySignatureFile(curSignatureFile.getId(), curUser.getId());
}
}
}
fileBtnMap = null;
if(null != imageResolver) {
imageResolver.disposite();
}
super.dispose();
}
/**
* 通过手写板获取签名图片
*/
private void getSignImageData() {
// ExpertBacthSignatureDialog dialog = new ExpertBacthSignatureDialog(getShell(), tenderProject, curUser.getUserName());
// dialog.open();
// imageData = dialog.getImageData();
// if(StringUtils.isEmpty(imageData)) {
// MessageDialog.openError(getShell(), "手写签名为空!");
// return;
// }else {
// bacthSign_btn.setEnabled(true);
// }
imageData = documentLoader.getSignImage();
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
try {
byte[] imageByte = decoder.decodeBuffer(imageData);
// 写入图片
Image image22 = imageResolver.getImage(imageByte,280, 180);
signImageButton.setImage(image22);
signImageButton.layout();
} catch (IOException e) {
}
if(StringUtils.isEmpty(imageData)) {
MessageDialog.openError(getShell(), "手写签名为空!");
return;
}else {
bacthSign_btn.setEnabled(true);
}
}
@Override
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
public void loadSignatureFile(File pdfFile) {
if(null != pdfFile && pdfFile.exists()){
this.signaturePdfFile = pdfFile;
if (null == documentLoader) {
documentLoader = new BJCAHandPDFLoaderImpl(signaturePdfFile.getAbsolutePath());
documentLoader.showOrHiddenToolBar(false);
documentLoader.openDocument(content, false, false, false, false, false);
documentLoader.addHandSignListener(new BJCAHandSignListener() {
public void signScript() {
Display.getDefault().syncExec(new Runnable() {
public void run() {
refreshTips(Messages.Tips_signatureManualSet);
}
});
}
public void signatrue(boolean falg) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
refreshTips(Messages.Tips_signatureManualSet);
}
});
}
});
} else {
documentLoader.openFile(signaturePdfFile);
}
// 北京CA手写板不支持获取签章数
documentLoader.setSignatureCount(0);
content.layout();
}else {
signature_btn.setEnabled(false);
}
}
private void refreshTips(String message) {
// iKnow = false;
if(!bottomComposite.getVisible()) {
WidgetUtils.setControlVisible(bottomComposite, true);
}
bottomComposite.layout();
bottomContent.layout();
bottomContent.getParent().layout();
}
/**
* @Description: 完成签字
* @author guoyr
* @param signatur
*/
private void complateEvaluationAction(){
// String imageBase64 = "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";
// imageData = imageBase64;
String TId = UuidUtils.getUUID();
if(bacthSign_btn.getEnabled() && null != imageData) {
hasNoSign = false;
userSignatureFileList = signatureUserService.getUserSignatureFileList(tenderProject.getId(), curUser.getId());
userSignatureFileList.forEach( t->{
if(null == t.getSignatureType()){
hasNoSign = true;
}
});
if(!hasNoSign) {
MessageDialog.openError(getShell(), "当前没有要签字的文件!");
return;
}
expert = expertService.getById(expert.getId());
if(null != expert.getSignStatue() && expert.getSignStatue().equals(CommonEnum.IN_PROGRESS)) {
MessageDialog.openError(getShell(), "当前正在进行批量签名中,不可重复提交,请耐心等待!");
return;
}
StringBuffer fileIds = new StringBuffer();
ResultEntity result = expertSignService.expertSubmitSignApply(TId, curUser.getIdCard(), tenderProject.getId(), fileIds.toString(), imageData, "#"+ curUser.getUserName()+ "#", curUser.getId(), expert.getId());
if(result.getCode() == ResultEntity.SUCCESS) {
// MessageDialog.openConfirm(getShell(), "提交成功,请等待服务器签名!");
MessageViewDialog dialog = new MessageViewDialog(getShell(), false);
final CallBack callBack = dialog.getCallBack();
new Thread(new Runnable() {
boolean flag = false;
public void run() {
while(!flag) {
ResultEntity result = expertSignService.getExpertSignStatue(TId, tenderProject.getId(), curUser.getId(), expert.getId());
if(result.getCode() == ResultEntity.SUCCESS) {
String data = ObjectUtils.getObjString(result.getData());
if(null != data && data.equals(CommonEnum.COMPLETE)) {
flag = true;
callBack.after();
}
callBack.callBackClearScreen(result.getMsg());
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}).start();
dialog.setTitle("批量签名");
dialog.open();
return ;
}else {
MessageDialog.openError(getShell(), result.getMsg());
return ;
}
}
}
}
package com.gx.tools.ole.signature;
import org.eclipse.swt.SWT;
import org.eclipse.swt.core.widgets.ImageButton;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import com.swtdesigner.ResourceManager;
import com.swtdesigner.SWTResourceManager;
public class ImageCheckBox extends ImageButton{
private SelectionAdapter selectionAdapter;
private int imageSize = 16;
public static Color BG = SWTResourceManager.getColor(60, 138, 226);
public static final String checkBoxGroup = "checkBoxGroup";
public ImageCheckBox(Composite parent, int style) {
super(parent, style | SWT.CENTER);
this.setData(checkBoxGroup, checkBoxGroup);
this.setFont(SWTResourceManager.getFont("微软雅黑", 10, SWT.NORMAL));
this.setSelectionForeground(getForeground());
// this.setSelectionForeground(SWTResourceManager.getColor(77, 163, 19));
// this.setForeground(Constants.FONT_BLACK_COLOR);
init();
}
private void init(){
this.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons","icons/unchecked.png"), imageSize,imageSize);
this.addMouseListener(new MouseAdapter() {
public void mouseUp(MouseEvent e) {
if(!getEnabled()){
return;
}
setSelection(!getSelection());
if(null != selectionAdapter){
// Event event = new Event();
// event.button = e.button;
// event.data = e.data;
// event.x = e.x;
// event.y = e.y;
// selectionAdapter.widgetSelected(new SelectionEvent(event));
// 加上事件无法调用
selectionAdapter.widgetSelected(null);
}
super.mouseUp(e);
}
});
}
public void addSelectionListener(SelectionAdapter selectionAdapter){
this.selectionAdapter = selectionAdapter;
}
public int getImageSize() {
return imageSize;
}
public void setImageSize(int imageSize) {
if(this.imageSize != imageSize){
this.imageSize = imageSize;
if(this.getSelection()){
this.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons","icons/checked.png"), imageSize,imageSize);
}else {
this.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons","icons/unchecked.png"), imageSize,imageSize);
}
}
}
@Override
public void setSelection(boolean selection) {
if(this.getSelection() != selection){
if(selection){
this.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/checked.png"), imageSize,imageSize);
}else {
this.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/unchecked.png"), imageSize,imageSize);
}
super.setSelection(selection);
}
}
}
package com.gx.tools.ole.signature;
import java.util.List;
import org.eclipse.swt.SWT;
import org.eclipse.swt.core.widgets.EDialog;
import org.eclipse.swt.core.widgets.ESepator;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import com.gx.obe.business.enumeration.UserEnum;
import com.gx.obe.components.core.enumeration.CommonEnum;
import com.gx.obe.config.ConfigConstants;
import com.gx.obe.config.utils.PropertiesUtils;
import com.gx.obe.message.Messages;
import com.gx.obe.util.utils.LogUtils;
import com.gx.obe.util.utils.ScreenUtils;
import com.gx.obe.web.entity.expert.Expert;
import com.gx.obe.web.entity.tender.TenderProjectEntity;
import com.gx.obe.web.service.expert.ExpertService;
import com.swtdesigner.ResourceManager;
/**
* @Description: 流转签章
* @author guoyr
*/
public class ManagerBacthSignatureDialog extends EDialog {
private TenderProjectEntity tenderProject;
private Composite container;
private ExpertService expertService = new ExpertService();
private Composite composite;
private ExpertBatchSignatureComposite expertBatchSignatureComposite;
// private UserInfoButton userInfoButton;
{
LogUtils.logClass(ManagerBacthSignatureDialog.class);
}
/**
* @author guoyr
* @param parentShell
* @param tenderProjectEntity
* @param templateType
*/
public ManagerBacthSignatureDialog(Shell parentShell, TenderProjectEntity tenderProjectEntity) {
super(parentShell);
setTitle(Messages.Button_scanSignatrue);
this.tenderProject = tenderProjectEntity;
}
/**
* @Description:
* @author guoyr
* @param parent
* @return
*/
@Override
protected Control createDialogArea(Composite parent) {
container = (Composite) super.createDialogArea(parent);
GridLayout gl_container = new GridLayout(1, false);
container.setLayout(gl_container);
composite = new Composite(container, SWT.NONE);
GridLayout gl_composite = new GridLayout(10, false);
gl_composite.horizontalSpacing = 20;
gl_composite.verticalSpacing = 10;
gl_composite.marginRight = 50;
gl_composite.marginLeft = 50;
composite.setLayout(gl_composite);
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
ESepator sep = new ESepator(container, SWT.NONE);
sep.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
Composite composite_1 = new Composite(container, SWT.NONE);
composite_1.setLayout(new FillLayout(SWT.HORIZONTAL));
composite_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
expertBatchSignatureComposite = new ExpertBatchSignatureComposite(composite_1, SWT.NONE);
init();
return container;
}
/**
* 初始化数据
*/
private void init(){
container.setData("dialog", "true");
List<Expert> expertList = expertService.getExpertListByTenderId(tenderProject.getId());
int index = 0;
if(null != expertList && expertList.size() > 0) {
for(final Expert expert : expertList) {
SignInfoButton imageButton = new SignInfoButton(composite, SWT.NONE);
imageButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
boolean managerIsFemale = null != expert.getUser() && UserEnum.FEMALE.equals(expert.getUser().getGender());
if(managerIsFemale) {
imageButton.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/female_48.png"));
}else {
imageButton.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/male_48.png"));
}
// if(managerIsFemale) {
imageButton.setText(expert.getUser().getUserName());
imageButton.addMouseListener(new MouseAdapter() {
public void mouseUp(MouseEvent e) {
expertBatchSignatureComposite.refreshSignatureFiles(tenderProject, expert.getUser(), expert);
System.out.println("专家点击进入" + expert.getUser().getUserName());
}
});
// 默认选中第一个
if(index == 0) {
expertBatchSignatureComposite.refreshSignatureFiles(tenderProject, expert.getUser(), expert);
}
index ++;
}
}
}
/**
* Return the initial size of the dialog.
*/
@Override
protected Point getInitialSize() {
ScreenUtils util = new ScreenUtils();
int screenHight = util.getScreenHight() - util.getTaskBarHight();
if(PropertiesUtils.getProperty(ConfigConstants.EVAL_FULL_SCREEN, "00").equals(CommonEnum.YES)) {
screenHight = util.getScreenHight();
}
return new Point(util.getScreenWight(),screenHight);
// return new Point(840, 616);
}
}
package com.gx.tools.ole.signature;
import org.eclipse.swt.SWT;
import org.eclipse.swt.core.widgets.ImageButton;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.widgets.Composite;
import com.gx.obe.components.core.Constants;
import com.swtdesigner.ResourceManager;
import com.swtdesigner.SWTResourceManager;
public class SignInfoButton extends ImageButton{
public static Color BG = SWTResourceManager.getColor(60, 138, 226);
public static Color NO_START_COLOR = SWTResourceManager.getColor(153, 153, 153);// 灰色
public static Color COMPLATE_COLOR = SWTResourceManager.getColor(77, 163, 19);// 绿色
public static Color IN_PROGRESS_COLOR = SWTResourceManager.getColor(60, 138, 226);// 蓝色
// public static Color RE_AUTHORIZATION_COLOR = SWTResourceManager.getColor(230, 137, 30);// 橙色
public static Color RE_AUTHORIZATION_COLOR = SWTResourceManager.getColor(255, 153, 0);// 橙色
public SignInfoButton(Composite parent, int style) {
super(parent, style| SWT.CENTER | SWT.BOTTOM | SWT.WRAP);
this.setTopMargin(2);
this.setBottomMargin(2);
this.setLeftMargin(5);
this.setRightMargin(5);
this.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/pdf_signature.png"));
this.setForeground(SWTResourceManager.getColor(80, 80, 80));
this.setFont(SWTResourceManager.getFont("微软雅黑", 10, SWT.NORMAL));
// this.setSurroundMargin(5);
// this.setSurroundColor(SWTResourceManager.getColor(77, 163, 19));// 绿色
// this.setSurroundColor(SWTResourceManager.getColor(60, 138, 226));// 蓝色
this.setActiveBorderColor(SWTResourceManager.getColor(255, 153, 0));
// this.setActiveBackgroundColor(SWTResourceManager.getColor(40, 250, 255));
// this.setActiveForeground(SWTResourceManager.getColor(255, 153, 0));
// this.setActiveSurroundColor(SWTResourceManager.getColor(60, 138, 226));
// this.setActiveSurroundColor(SWTResourceManager.getColor(255, 153, 0));// 橙色
// this.setBorderWidth(3);
// this.setActiveSurroundMargin(6);
this.setSelectionBorderColor(SWTResourceManager.getColor(60, 138, 226));
this.setSelectionForeground(SWTResourceManager.getColor(60, 138, 226));
// this.setSelectionSurroundColor(SWTResourceManager.getColor(77, 163, 19));// 绿色
this.setSubImageRightMargin(10);
this.setSubImageTopMargin(5);
// this.setSubImage(ResourceManager.getPluginImage(CommonActivator.PLUGIN_ID, "icons/signature_complate.png"));
this.setGAP(0);
this.setArcWidth(6);
// this.setDisenableColor(SWTResourceManager.getColor(77, 163, 19));
// this.setAlpha(100);
// this.setFillSurround(false);
// setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
// this.setEnabled(false);
}
}
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGNlcnQ+PGNlcnRJZD4zPC9jZXJ0SWQ+PHByb2R1Y3Q+T0JFPC9wcm9kdWN0PjxtYWM+QzEtRjYtRkYtOTMtMDgtQUI8L21hYz48bW90aGVyQm9hcmRTTj5DMUY2RkY5MzA4QUI8L21vdGhlckJvYXJkU04+PGNlcnRUeXBlPlRyaWFsPC9jZXJ0VHlwZT48bmFtZT4zMDAwNSAyMzM3NiAyNDMyMCAzNTc4MCAyNjYzMTwvbmFtZT48YXV0aG9yPjU1IDQ2IDQ4IDEyMjg5IDU2IDQ2IDQ4IDMyNDU2IDM2NTIzIDI1NDgwIDI2NDM1PC9hdXRob3I+PHZlcnNpb24+VjcuMDwvdmVyc2lvbj48bnVtQ29waWVzPjE8L251bUNvcGllcz48ZXhwaXJlc0RhdGU+MjEyMy0wNy0xMSAwOToyMzowMzwvZXhwaXJlc0RhdGU+PGV4cGlyZXNUaW1lcz4wPC9leHBpcmVzVGltZXM+PGNyZWF0aW9uRGF0ZT4yMDIzLTA3LTExIDA5OjIzOjA2PC9jcmVhdGlvbkRhdGU+PHNpZ25hdHVyZT4zMDJjMDIxNDQ0NWE5YWU0YjQ2NTgzMTg0MjNjMTcwZDU3MTg1Yjk1YTU1OGYyMzMwMjE0NjRmZTUwZWRkMTUwNWFjYjNlYzRmNWQ0NGI5ZTc2OWVlMWY4MjcxNjwvc2lnbmF0dXJlPjxpc3N1ZXI+MjEyNzEgMjAxNDAgMjIyNjkgMjA0NDkgMjEwMTkgMjYwMzIgMzExODUgMjUyMTYgMzI5MjkgMjAyMjEgMjYzNzcgMzg0ODAgMjA4NDQgMjE0OTY8L2lzc3Vlcj48L2NlcnQ+
\ No newline at end of file
......@@ -27,6 +27,16 @@ public class SignatureUser {
private SignatureFile signatureFile;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getId() {
return id;
}
......
package com.gx.obe.web.entity.Result;
/**
* @Title: Controller
* @Description: 头文件
* @author zouk
* @date 2016-05-11 10:34:19
* @version V1.0
*
*/
public class Header {
// 状态码,0代表成功,其它取值含义另行说明
private String returnCode;
// 状态结果说明
private String msg;
private String ret;
public Header() {
}
public Header(String returnCode) {
this.returnCode = returnCode;
}
public Header(String returnCode, String msg) {
this.returnCode = returnCode;
this.msg = msg;
}
public String getReturnCode() {
return returnCode;
}
public void setReturnCode(String returnCode) {
this.returnCode = returnCode;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getRet() {
return ret;
}
public void setRet(String ret) {
this.ret = ret;
}
}
......@@ -29,6 +29,7 @@ import java.io.Serializable;
private int code = SUCCESS;
private T data;
private Header header = new Header();
public ResultEntity() {
super();
......@@ -93,4 +94,15 @@ import java.io.Serializable;
resultEntity.setMsg(msg);
return resultEntity;
}
public Header getHeader() {
return header;
}
public void setHeader(Header header) {
this.header = header;
}
}
#update
#Mon Jul 15 16:12:06 CST 2024
#Thu Oct 17 14:08:59 CST 2024
groupByEvalBidRoom=00
pdfReport=00
newCharsetName=ISO-8859-1
......@@ -8,7 +8,7 @@ livingType=00
expertLimit=
handSignaturePdf=BJCAHANDPDF
videoLiveUrl=
templateUpdateTime=2024-07-15 16\:11\:50
templateUpdateTime=2024-10-17 14\:07\:30
defaultPassword=1
videoIp=192.168.3.40
ftpUsername=anonymous
......@@ -30,15 +30,15 @@ filterChar=(\: ,)\: ,\uFF08\: ,\uFF09\: ,/\:\u659C\u6760,\\\:\u659C\u6760,-\:\u6
zipEncoding=GBK
isAIEvaluation=00
isUseAutomaticAnalysisBillOfQuantities=00
version=OBEV7.7.9.20240715
version=OBEV7.7.9.20241017
showConfirmStatus=00
ftpPort=21
serverName=\u5317\u4EAC\u4EAC\u80FD\u7535\u5B50\u62DB\u6807\u5E73\u53F0
serverName=\u4EAC\u80FD\u96C6\u56E2\u7535\u5B50\u5546\u52A1\u5E73\u53F0(\u6D4B\u8BD5)
singTenderName=00
useSpecialPdf=01
netService=JNJTService
useCamera=01
serverUrl=https\://www.powerbeijing-ec.com/jndzzb/
serverUrl=https\://test.powerbeijing-ec.com/jndzzb/
companyWbLink=
controlBidOpening=01
GuoXinPDFReaderLicense=MjAyMSwxMiwyMiwyOTk5LDMsMg\=\=
......@@ -58,59 +58,60 @@ saomaSignaturePdf=
mergetype=5
evalBidRoomId=aadd606ff7c1445184b9ad780c5feb60
companyLink=
updateTime=2021-12-22 09\:53\:10
updateTime=2024-04-15 11\:23\:19
signWidth=80
viewTenderPrice=01
assistBidopening=00
keyCharacter=
keyCharacter=g
bidFilePath=c\:\\bidFile
versionUpdateType=OBE_FinalService
productType=final
versionUpdateType=OBE_Service
productType=test
showNowTime=01
openingDownEndDays=30
filterBracketContent=01
platformCode=M1100000015
managerSignature=01
bidOpeningSupplierSytle=01
moneyCnPrefix=\u4EBA\u6C11\u5E01
bidOpeningSupplierSytle=01
managerSignature=01
urlEncoder=01
nowTypeType=01
allowImportBidFile=
creditChinaURL=https\://test.powerbeijing-ec.com/jndzzb/creditChinaController.do?getZhixingList&ids\=
alpha=0.85
allowImportBidFile=
defaultRecommonedCount=
copyright=\u5317\u4EAC\u56FD\u4FE1\u521B\u65B0\u79D1\u6280\u80A1\u4EFD\u6709\u9650\u516C\u53F8
signaturePdf=JinGe
signaturePdf=CFCASaoma
evalManagerResourceId=31f99c485c334eb380f48d061201da2c
signHeight=35
ENVIRONMENT=01
lastDownloadProjectTime=1721031126729
pdfActiveType=GuoXin
lastDownloadProjectTime=1729145339884
verifyEvalMachineExpert=00
properties_path=/E\:/gitWorkSpace/client_V7.0/jingneng/OBE-CONFIG/config.properties
pdfActiveType=CFCASaoma
properties_path=/E\:/gitWorkSpace/client_V7.0/jingnengdabao/OBE-CONFIG/config.properties
darkCodeLenth=20
priceUint=01
usePublicDb=01
threshold=255
qrCodeServcerAddress=http\://sign.e-bidding.org\:8086/gxapp/scanning/
qrCodeServcerAddress=http\://39.96.40.58\:8811/gxapp/scanning/
videoPort=8000
showUploadMaterial=00
excelRowStart=2
evalFullScreen=01
excelRowStart=2
ftpIp=
showOperatorRoleType=00
viewEvaluationResult=01
viewMySummaryResult=01
useMachineLock=01
viewMySummaryResult=01
ftpBuffersize=1024
bidOpeningFullscreen=00
torrentPort=6969
multiRoundPriceType=00
torrentPort=6969
bidOpeningFullscreen=00
viewStepSummaryResult=00
tts=MicrosoftTTS
preEvalResourceId=ef5a43a3cba4432fb18c205e0c4b792c
caEngine=TianWeiCA_1.0
excelColumnStart=0
caEngine=TianWeiCA_1.0
preEvalResourceId=ef5a43a3cba4432fb18c205e0c4b792c
obeWebServerUrl=http\://47.95.161.231\:6850/
viewPriceScore=01
obeWebServerUrl=http\://39.97.159.121\:9863/
ftpPassword=
torrentServer=
#\u7CFB\u7EDF\u7248\u672C
version=OBEV7.7.9.20240723
version=OBEV7.7.9.20240927
copyright=\u5317\u4EAC\u56FD\u4FE1\u521B\u65B0\u79D1\u6280\u80A1\u4EFD\u6709\u9650\u516C\u53F8
#\u6280\u672F\u652F\u6301\:\u5317\u4EAC\u56FD\u4FE1\u521B\u65B0\u79D1\u6280\u80A1\u4EFD\u6709\u9650\u516C\u53F8
technicalSupport=gx
......@@ -26,9 +26,9 @@ openingDownEndDays=30
#\u7CFB\u7EDF\u5F53\u524D\u4F7F\u7528\u7684ca:BJCA;TianWeiCA;TianWeiCA_1.0
caEngine=TianWeiCA_1.0
#pdf\u63A7\u4EF6\u7C7B\u578B
pdfActiveType=JinGe
pdfActiveType=CFCASaoma
#\u7B7E\u7AE0\u5DE5\u5177
signaturePdf=JinGe
signaturePdf=CFCASaoma
#BJCAPDF:\u5317\u4EACCA\u624B\u5199\u677F;BJCASaoma:\u5317\u4EACCA\u626B\u7801\u7B7E\u5B57
handSignaturePdf=
#\u4E0D\u8DB3\u4E09\u5BB6\u4E0D\u5141\u8BB8\u5F00\u6807
......
#\u7cfb\u7edf\u7248\u672c
version=OBEV7.7.9.20240902
version=OBEV7.7.9.20241017
keyCharacter=
#\u6b63\u5f0f\u7248\u672c\u68c0\u67e5\u5347\u7ea7\u7f16\u7801
versionUpdateType=OBE_FinalService
......@@ -13,5 +13,5 @@ platformCode=M1100000015
handSignaturePdf=BJCAHANDPDF
saomaSignaturePdf=
pdfActiveType=GuoXin
pdfActiveType=CFCASaoma
evalFullScreen=01
#\u7cfb\u7edf\u7248\u672c
version=OBEV7.7.9.20240902
version=OBEV7.7.9.20241017
keyCharacter=g
versionUpdateType=OBE_Service
#\u6d4b\u8bd5\u7ad9\u4e13\u5bb6\u7b7e\u670d\u52a1
......@@ -12,5 +12,5 @@ platformCode=M1100000015
handSignaturePdf=BJCAHANDPDF
saomaSignaturePdf=
pdfActiveType=GuoXin
pdfActiveType=CFCASaoma
evalFullScreen=01
......@@ -55,6 +55,7 @@ import com.gx.obe.web.service.MenuService;
import com.gx.obe.web.service.TenderProjectService;
import com.gx.obe.web.service.UserService;
import com.gx.obe.web.service.expert.ExpertService;
import com.gx.tools.ole.signature.BacthSignatureDialog;
import com.gx.tools.ole.signature.CircleSignatureDialog;
import com.gx.tools.utils.SignaturePdfUtils;
import com.swtdesigner.ResourceManager;
......@@ -88,6 +89,7 @@ public class EvaluationRoomHomeComposite extends Composite implements ActionList
private Menu menu;
private MenuFunctionUtils menuFunctionUtils = new MenuFunctionUtils();
private RoomOperatorButton signature_btn;
// private RoomOperatorButton batchSignature_btn;
{
LogUtils.logClass(EvaluationRoomHomeComposite.class);
......@@ -384,6 +386,16 @@ public class EvaluationRoomHomeComposite extends Composite implements ActionList
signature_btn.setText(Messages.Button_elecSignature);
menuFunctionUtils.addFunction(signature_btn, "SIGNATURE");
// batchSignature_btn = new RoomOperatorButton(operatorComposite, SWT.NONE);
// batchSignature_btn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/white/signature.png"));
// batchSignature_btn.setText(Messages.Button_elecSignature);
// menuFunctionUtils.addFunction(batchSignature_btn, "SIGNATURE");
//
// batchSignature_btn.addMouseListener(new MouseAdapter() {
// public void mouseUp(MouseEvent e) {
// openBatchSignatureDialog();
// }
// });
{
final RoomOperatorButton downloadBidFileBtn = new RoomOperatorButton(operatorComposite, SWT.NONE);
downloadBidFileBtn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/white/download.png"));
......@@ -592,6 +604,18 @@ public class EvaluationRoomHomeComposite extends Composite implements ActionList
public Composite getParentComposite() {
return loadComposite;
}
// /**
// * 批量签名
// *
// * @param title
// * @param signaturePdfKey
// * @param signaturePdfType
// */
// private void openBatchSignatureDialog() {
// BacthSignatureDialog signatureDialog = new BacthSignatureDialog(getShell(), tenderProjectEntity, Constants.USER, expert);
// signatureDialog.setTitle("批量签名");
// signatureDialog.open();
// }
/**
* @Description: 回退评标专家的评标步骤操作
......
package com.gx.obe.management.webservice;
import java.io.File;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
......@@ -11,7 +10,6 @@ import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.log4j.Logger;
import org.dom4j.Document;
......@@ -397,6 +395,7 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
private boolean createSupplierEvalResultXml(String path){
try {
Document document = DocumentHelper.createDocument();
Element rootElement = document.addElement("supplierEvalResultList");
rootElement.addElement("evaluationMethod").setText(XmlUtils.getXmlText(tenderProjectRuleEntity.getEvalMethodType()));
rootElement.addElement("evaluationMethodName").setText(XmlUtils.getXmlText(tenderProjectRuleEntity.getEvalMethodName()));
......@@ -407,7 +406,7 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
XmlUtils.createXmlFile(document, path, XML_ENCODING);
return true;
} catch (Exception e) {
LOG.error("", e);
LOG.error("SupplierEvalResult.xml生成报错", e);
return false;
}
}
......@@ -423,7 +422,6 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
exchangeRate = new ExchangeRate();
}
Map<String, BigDecimal> exchangeRateMap = exchangeRate.getExchangeRateMap();
for(final Supplier supplier : supplierList){
SupplierOpeningResult openBidResult = supplier.getSupplierOpeningResult();
Element supplierElement = rootElement.addElement("supplier");
......@@ -461,7 +459,6 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
// 投标价币种
supplierElement.addElement("currencyCode").setText(XmlUtils.getXmlText(currencyCode));
supplierElement.addElement("rate").setText(XmlUtils.getXmlText(rate));
String evaluationScore = "";
String evaluationFinalScore = "";
String accessment = "";
......@@ -492,14 +489,17 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
biddingRequest = supplierEvaluationResult.getBiddingRequest();
vetoType = supplierEvaluationResult.getVetoType();
}
if(parserStructProject()) {
BidPriceResultService bidPriceResultService = new BidPriceResultService();
List<BidPriceResult> bidPriceResultList = bidPriceResultService.getBidPriceResultTableList(supplier.getTenderId(),supplier.getId());
BidPriceResult bidPriceResult = CollectionUtils.get(bidPriceResultList, t -> {
return "总报价(含税)".equals(t.getBidPriceName());
});
if(null != bidPriceResult) {
evaluationPrice = bidPriceResult.getEvaluationPrice().toString();
}
}
supplierElement.addElement("evaluationPrice").setText(evaluationPrice);
supplierElement.addElement("evaluationScore").setText(evaluationScore);
supplierElement.addElement("evaluationFinalScore").setText(evaluationFinalScore);
......@@ -546,6 +546,7 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
}
}
}
// LOG.error("SupplierEvalResult.xml输出节点22");
return factorDoc == null ? false:ParsingXmlUtils.parsingDocStructXML(factorDoc);
}
......@@ -688,7 +689,6 @@ public class UploadEvaluationResultAndFile implements IUploadEvaluateResult{
stepExpertListMap.put(evaluationStep.getId(), expertList);
}
// List<ExpertEvaluationResult> expertEvaluationResultList = expertEvaluationResultService.getSupplierExpertEvaluationResultList(tenderProjectEntity.getId(), evaluationStep.getId(), supplierId);
if(null != expertList){
for(final Expert expert : expertList){
String expertName = "";
......
......@@ -99,6 +99,7 @@ import com.gx.obe.web.service.TenderProjectService;
import com.gx.pdf.utils.transfer.TransferUtils;
import com.gx.tools.dialog.OpenDocumentDialog;
import com.gx.tools.ole.signature.LocalSignatureDialog;
import com.gx.tools.ole.signature.ManagerBacthSignatureDialog;
import com.gx.tools.utils.SignaturePdfUtils;
import com.gx.tools.widget.FileOperatorButton;
import com.gx.tools.widget.FileOperatorButton.ClickListener;
......@@ -175,6 +176,8 @@ public class EvaluationReportComposite extends Composite {
private Action projectAction;
private Menu menu;
private MenuFunctionUtils menuFunctionUtils = new MenuFunctionUtils();
// private ELink batchSign_btn;
{
LogUtils.logClass(EvaluationReportComposite.class);
}
......@@ -370,7 +373,7 @@ public class EvaluationReportComposite extends Composite {
reportTitle_composte = new Composite(composite_4, SWT.NONE);
reportTitle_composte.setBackgroundMode(SWT.INHERIT_FORCE);
reportTitle_composte.setLayout(new GridLayout(8, false));
reportTitle_composte.setLayout(new GridLayout(9, false));
reportTitle_composte.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
reportTitle_composte.setBackground(ColorConstants.SKIN_BG);
......@@ -380,6 +383,17 @@ public class EvaluationReportComposite extends Composite {
label.setForeground(ColorConstants.SKIN_FOREGROUND);
label.setText(Messages.MyReport);
// batchSign_btn = new ELink(reportTitle_composte, SWT.NONE);
// batchSign_btn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/white/report_all.png"));
// batchSign_btn.setForeground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
// batchSign_btn.addMouseListener(new MouseAdapter() {
// public void mouseUp(MouseEvent mouseevent) {
//// mergerPdfAction();
// batchSignAction();
// }
// });
// batchSign_btn.setText("批量签名");
synthesisPdf_btn = new ELink(reportTitle_composte, SWT.NONE);
synthesisPdf_btn.setImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/btn/white/expend.png"));
synthesisPdf_btn.setForeground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
......@@ -1748,6 +1762,8 @@ public class EvaluationReportComposite extends Composite {
public void mouseDoubleClick(MouseEvent e) {
LocalSignatureDialog signatureDialog = new LocalSignatureDialog(getShell(), tenderProject, fileOperatorButton.getFile(), signatureType, signatureTypeValue,FileConstants.REPORT_FILE_FOLDER);
signatureDialog.open();
// ManagerBacthSignatureDialog dialog = new ManagerBacthSignatureDialog(getShell(), tenderProject);
// dialog.open();
}
});
}else if(signaturePdfMap.size() > 1){
......@@ -1755,6 +1771,8 @@ public class EvaluationReportComposite extends Composite {
public void mouseDoubleClick(MouseEvent e) {
LocalSignatureDialog signatureDialog = new LocalSignatureDialog(getShell(), tenderProject, fileOperatorButton.getFile(), null, null,FileConstants.REPORT_FILE_FOLDER);
signatureDialog.open();
// ManagerBacthSignatureDialog dialog = new ManagerBacthSignatureDialog(getShell(), tenderProject);
// dialog.open();
}
});
for (final String signaturePdfKey : signaturePdfMap.keySet()) {
......@@ -1872,7 +1890,13 @@ public class EvaluationReportComposite extends Composite {
});
dialog.open();
}
/**
*
*/
private void batchSignAction(){
ManagerBacthSignatureDialog dialog = new ManagerBacthSignatureDialog(getShell(), tenderProject);
dialog.open();
}
@Override
protected void checkSubclass() {
}
......
......@@ -205,7 +205,9 @@ public abstract class BaseDateSet implements IDataSet{
int expertIndex = 1;
int count = 0;
for(Expert expert : expertList) {
if(count > 0 && count % 5 == 0) {
if(count > 0 && count % 4 == 0) {
allExpert.append("\r\n");
allExpertNoLeader.append("\r\n");
allExpert.append("\r\n");
allExpertNoLeader.append("\r\n");
}
......@@ -216,10 +218,10 @@ public abstract class BaseDateSet implements IDataSet{
// allExpert.append("#"+userName+ "#");
}else {
reportDataSet.putParam("zj" + (expertIndex++), "#"+userName+ "#");
allExpert.append("#"+userName+ "#");
allExpert.append(" #"+userName+ "# ");
}
if(ExpertEnum.LEADER_YES.equals(expert.getIsLeader())){
expertLeaderSignature = "#"+userName+"#";
expertLeaderSignature = " #"+userName+"# ";
}else {
if(userName.length() < 3) {
allExpertNoLeader.append(" #"+userName+ "# ");
......
......@@ -88,12 +88,14 @@ public abstract class BaseDateSet implements IWordDataSet{
public SupplierEvaluationResultService supplierEvaluationResultService = new SupplierEvaluationResultService();
public SupplierOpeningResultService supplierOpeningResultService = new SupplierOpeningResultService();
public EvaluationFactorResultService evaluationFactorResultService = new EvaluationFactorResultService();
public SupplierEvaluationStepService supplierEvaluationStepService;
public SupplierEvaluationStepService supplierEvaluationStepService = new SupplierEvaluationStepService();;
public BidPriceService bidPriceService = new BidPriceService();
public BidPriceResultService bidPriceResultService = new BidPriceResultService();
private SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
private SimpleDateFormat ymdformat = new SimpleDateFormat("yyyy年MM月dd日");
//步骤供应商列表
private Map<String, List<Supplier>> stepSupplierListMap = new HashMap<>();
protected Map<String, Supplier> supplierMap = new HashMap<>();
/**
* 声明对象
*/
......@@ -106,14 +108,17 @@ public abstract class BaseDateSet implements IWordDataSet{
protected int bidSupplierCount = 0;
protected WordDataSet reportDataSet;
WordTemplate wordTemplate;
private List<Supplier> allSupplierList;
public List<Supplier> allSupplierList;
public BidOpeningRoomService bidOpeningRoomService;
private Map<String, SupplierEvaluationResult> supplierEvaluationResultMap;
private Map<String, SupplierOpeningResult> supplierOpeningResultMap;
public Map<String, SupplierEvaluationResult> supplierEvaluationResultMap;
public Map<String, SupplierOpeningResult> supplierOpeningResultMap;
public TenderProjectService tenderProjectService;
public ExpertService expertService ;
List<Supplier> supplierList = null ;
List<Supplier> openBidSuccessSupplierList = null ;
public void init(TenderProjectEntity project, WordTemplate wordTemplate){
supplierEvaluationStepService = new SupplierEvaluationStepService();
this.tenderProject = project;
this.wordTemplate = wordTemplate;
if(null == projectRuleService){
projectRuleService = new ProjectRuleService();
}
......@@ -127,9 +132,15 @@ public abstract class BaseDateSet implements IWordDataSet{
expertService = new ExpertService();
}
this.tenderProject = project;
this.wordTemplate = wordTemplate;
supplierList = supplierService.getSupplierOpenBidList(tenderProject.getId());
openBidSuccessSupplierList = supplierService.getOpenBidSuccessSupplier(tenderProject.getId());;
setSupplierOpeningResult();
// 设置供应商评标结果数据集
setSupplierEValResultMap();
getAllSupplierList();
this.tenderProject = tenderProjectService.getTenderProjectInfo(project.getId());
if(null != project.getParentId()){
parentProject = tenderProjectService.getTenderProjectInfo(project.getParentId());
......@@ -164,6 +175,33 @@ public abstract class BaseDateSet implements IWordDataSet{
getExpertList();
}
/**
* 缓存供应商开标结果
*/
private void setSupplierOpeningResult() {
supplierOpeningResultMap = new HashMap<String, SupplierOpeningResult>();
List<SupplierOpeningResult> supplierOpeningResultList = supplierOpeningResultService.getSupplierOpeningResultListByTenderId(tenderProject.getId());
if(null != supplierOpeningResultList && supplierOpeningResultList.size() > 0){
for(SupplierOpeningResult supplierOpeningResult : supplierOpeningResultList){
supplierOpeningResultMap.put(supplierOpeningResult.getSupplierId(), supplierOpeningResult);
}
}
}
/**
* 缓存供应商评标结果数据
*/
private void setSupplierEValResultMap(){
if(null == supplierEvaluationResultMap) {
supplierEvaluationResultMap = new HashMap<String, SupplierEvaluationResult>();
}
List<SupplierEvaluationResult> supplierEvaluationResultList = supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getId());
if(null != supplierEvaluationResultList && supplierEvaluationResultList.size() > 0){
for(SupplierEvaluationResult supplierEvaluationResult : supplierEvaluationResultList){
supplierEvaluationResultMap.put(supplierEvaluationResult.getSupplierId(), supplierEvaluationResult);
}
}
}
public WordDataSet getBaseDataSet(){
WordDataSet reportDataSet = new WordDataSet();
// 项目信息
......@@ -239,7 +277,7 @@ public abstract class BaseDateSet implements IWordDataSet{
reportDataSet.putParam("evaluationPriceUnit", tenderProjectRuleEntity.getEvalPriceUnit());// 价格单位
reportDataSet.putParam("date", ymdformat.format(NowTimeUtils.getNowDate()));
reportDataSet.putParam("userSignature", "#"+Constants.USER.getUserName()+"#");
reportDataSet.putParam("userSignature", " #"+Constants.USER.getUserName()+"# ");
reportDataSet.putParam("user", Constants.USER.getUserName());
reportDataSet.putParam("nowTime", NowTimeUtils.getNowDate());
reportDataSet.putParam("purcategoryName", null != tenderProject.getPurcategoryName()? tenderProject.getPurcategoryName() : "");
......@@ -337,74 +375,86 @@ public abstract class BaseDateSet implements IWordDataSet{
getEvaluationMonitorList();
}else if("allSupplierList".equals(listName)){
// 所有购买标书的供应商列表
getBidSupplierList();
reportDataSet.putParam("allSupplierList", allSupplierList);
}
}
/**
* @Description: 获得开标和评标结果的供应商列表
* @author guoyr
* @return
*/
// /**
// * @Description: 获得开标和评标结果的供应商列表
// * @author guoyr
// * @return
// */
public List<Supplier> getAllSupplierList(){
if(null == allSupplierList || allSupplierList.size() == 0){
allSupplierList = supplierService.getAllSupplierList(tenderProject.getId());//getSupplierOpenbidAndEvaluateResultList(tenderProjectEntity.getId());
// if(null == allSupplierList || allSupplierList.size() == 0){
if(null != allSupplierList){
for(Supplier supplier : allSupplierList){
SupplierOpeningResult supplierOpeningResult = getSupplierOpeningResult(supplier.getId());
// SupplierOpeningResult supplierOpeningResult = getSupplierOpeningResult(supplier.getId());
SupplierOpeningResult supplierOpeningResult = supplierOpeningResultMap.get(supplier.getId());
SupplierEvaluationResult supplierEvaluationResult = getSupplierEvaluationResult(supplier.getId());
supplier.setSupplierOpeningResult(supplierOpeningResult);
supplier.setSupplierEvaluationResult(supplierEvaluationResult);
supplierMap.put(supplier.getId(), supplier);
}
}
}
// }
if(null == allSupplierList){
allSupplierList = new ArrayList<Supplier>();
}
return allSupplierList;
}
/**
* 获取供应商评标结果缓存数据
* @param supplierId
* @return
*/
public SupplierEvaluationResult getSupplierEvaluationResult(String supplierId){
if(null == supplierEvaluationResultMap){
List<SupplierEvaluationResult> supplierEvaluationResultList = supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getId());
if(null != supplierEvaluationResultList && supplierEvaluationResultList.size() > 0){
supplierEvaluationResultMap = new HashMap<String, SupplierEvaluationResult>();
for(SupplierEvaluationResult supplierEvaluationResult : supplierEvaluationResultList){
supplierEvaluationResultMap.put(supplierEvaluationResult.getSupplierId(), supplierEvaluationResult);
}
}else {
supplierEvaluationResultMap = null;
}
}
// if(null == supplierEvaluationResultMap){
// List<SupplierEvaluationResult> supplierEvaluationResultList = supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getId());
// if(null != supplierEvaluationResultList && supplierEvaluationResultList.size() > 0){
// supplierEvaluationResultMap = new HashMap<String, SupplierEvaluationResult>();
// for(SupplierEvaluationResult supplierEvaluationResult : supplierEvaluationResultList){
// supplierEvaluationResultMap.put(supplierEvaluationResult.getSupplierId(), supplierEvaluationResult);
// }
// }else {
// supplierEvaluationResultMap = null;
// }
//
// }
if(null != supplierEvaluationResultMap){
return supplierEvaluationResultMap.get(supplierId);
}
return null;
}
public SupplierOpeningResult getSupplierOpeningResult(String supplierId){
if(null == supplierOpeningResultMap){
if(null == supplierOpeningResultService){
supplierOpeningResultService = new SupplierOpeningResultService();
}
List<SupplierOpeningResult> supplierOpeningResultList = supplierOpeningResultService.getSupplierOpeningResultListByTenderId(tenderProject.getId());
if(null != supplierOpeningResultList && supplierOpeningResultList.size() > 0){
supplierOpeningResultMap = new HashMap<String, SupplierOpeningResult>();
for(SupplierOpeningResult supplierOpeningResult : supplierOpeningResultList){
supplierOpeningResultMap.put(supplierOpeningResult.getSupplierId(), supplierOpeningResult);
}
}else {
supplierOpeningResultMap = null;
}
}
if(null != supplierOpeningResultMap){
return supplierOpeningResultMap.get(supplierId);
}
return null;
}
// /**
// * 获取供应商开标结果
// * @param supplierId
// * @return
// */
// public SupplierOpeningResult getSupplierOpeningResult(String supplierId){
//
//// if(null == supplierOpeningResultMap){
//// if(null == supplierOpeningResultService){
//// supplierOpeningResultService = new SupplierOpeningResultService();
//// }
//// List<SupplierOpeningResult> supplierOpeningResultList = supplierOpeningResultService.getSupplierOpeningResultListByTenderId(tenderProject.getId());
//// if(null != supplierOpeningResultList && supplierOpeningResultList.size() > 0){
//// supplierOpeningResultMap = new HashMap<String, SupplierOpeningResult>();
//// for(SupplierOpeningResult supplierOpeningResult : supplierOpeningResultList){
//// supplierOpeningResultMap.put(supplierOpeningResult.getSupplierId(), supplierOpeningResult);
//// }
//// }else {
//// supplierOpeningResultMap = null;
//// }
//// }
//
// if(null != supplierOpeningResultMap){
// return supplierOpeningResultMap.get(supplierId);
// }
// return null;
// }
/**
* @Description: 获得专家列表
......@@ -420,6 +470,7 @@ public abstract class BaseDateSet implements IWordDataSet{
StringBuffer priceExpertBuff = new StringBuffer();
String expertLeaderName = "";
StringBuilder expertsSignature = new StringBuilder();
StringBuilder expertListSignature = new StringBuilder();
StringBuilder noLeaderExpertsSignature = new StringBuilder();
String expertLeaderSignature = "";
Map<String, Object> expertLeader = null;
......@@ -429,14 +480,14 @@ public abstract class BaseDateSet implements IWordDataSet{
List<Map<String, Object>> businessExpertList = new ArrayList<Map<String, Object>>();//商务专家
List<Map<String, Object>> tecExpertList = new ArrayList<Map<String, Object>>();//技术专家
List<Map<String, Object>> priceExpertList = new ArrayList<Map<String, Object>>();//经济专家
List<Object> expertSignList = new ArrayList<Object>();
if(null != allExpertList){
int count = 0;
// 签名位置是宋体 小一字号
for(Expert expert : allExpertList){
if(count > 0 && count % 3 == 0) {
expertsSignature.append("\r\n");
noLeaderExpertsSignature.append("\r\n");
}
expert.setUserName(expert.getUser().getUserName());
Map<String, Object> expertMap = Bean2MapUtils.createMap(expert);
// 评委会职务
......@@ -454,20 +505,23 @@ public abstract class BaseDateSet implements IWordDataSet{
expertMap.put("specialty", expert.getUser().getSpecialty());
expertMap.put("idCard", expert.getUser().getUserIdcard());
expertMap.put("professionalTitle", expert.getUser().getProfessionalTitle());
expertMap.put("expertSignKeyWord"," #"+expert.getUserName()+"# ");
expertMap.put("phone", expert.getUser().getPhone());
if(expert.getUserName().length() < 3) {
expertsSignature.append(" #"+expert.getUserName()+"# ");
expertListSignature.append(" #"+expert.getUserName()+"# ");
}else {
expertsSignature.append("#"+expert.getUserName()+"#");
expertsSignature.append(" #"+expert.getUserName()+"# ");
expertListSignature.append(" #"+expert.getUserName()+"# ");
}
if(ExpertEnum.LEADER_YES.equals(expert.getIsLeader())){
expertLeader = expertMap;
expertLeaderSignature = "#"+expert.getUserName() +"#";
expertLeaderSignature = " #"+expert.getUserName() +"# ";
}else {
if(expert.getUserName().length() < 3) {
noLeaderExpertsSignature.append(" #"+expert.getUserName()+"# ");
}else {
noLeaderExpertsSignature.append("#"+expert.getUserName()+"#");
noLeaderExpertsSignature.append(" #"+expert.getUserName()+"# ");
}
}
if(ExpertEnum.BIDDING.equals(expert.getExpertType())){
......@@ -512,7 +566,23 @@ public abstract class BaseDateSet implements IWordDataSet{
priceExpertBuff.append(expert.getUserName());
}
count ++;
if(count > 0 && count % 4 == 0) {
expertsSignature.append("\n");
Map<String,String> expertSignMap = new HashMap<String,String>();
expertSignMap.put("expertName", expertListSignature.toString().trim());
expertSignList.add(expertSignMap);
expertListSignature = new StringBuilder();
noLeaderExpertsSignature.append("\n");
}
}
if(expertListSignature.length() > 0) {
Map<String,String> expertSignMap = new HashMap<String,String>();
expertSignMap.put("expertName", expertListSignature.toString());
expertSignList.add(expertSignMap);
}
}
reportDataSet.putParam("expertLeader", expertLeader);
reportDataSet.putParam("expertLeaderName", expertLeaderName);
......@@ -529,6 +599,7 @@ public abstract class BaseDateSet implements IWordDataSet{
reportDataSet.putParam("expertLeaderSignature", expertLeaderSignature);
reportDataSet.putParam("expertsSignature", expertsSignature.toString());
reportDataSet.putParam("expertSignList",expertSignList);
reportDataSet.putParam("noLeaderExpertsSignature", noLeaderExpertsSignature.toString());
if(businessExpertBuff.length() > 0){
......@@ -594,7 +665,7 @@ public abstract class BaseDateSet implements IWordDataSet{
monitorNames.append("、");
}
monitorNames.append(worker.getUser().getUserName());
supervisors.append("#"+worker.getUser().getUserName()+"#");
supervisors.append(" #"+worker.getUser().getUserName()+"# ");
if(worker.getUser().getUserName().length() < 3) {
supervisors.append(",");
}
......@@ -631,18 +702,16 @@ public abstract class BaseDateSet implements IWordDataSet{
return accessmentSupplierList;
}
/**
* @Description: 获得购买标书的的供应商列表
* @author wangx
* @return
*/
public List<Supplier> getBidSupplierList(){
List<Supplier> allSupplierList = getAllSupplierList();
allSupplierList = supplierService.getAllSupplierList(tenderProject.getId());
reportDataSet.putParam("allSupplierList", allSupplierList);
return allSupplierList;
}
// /**
// * @Description: 获得购买标书的的供应商列表
// * @author wangx
// * @return
// */
// public List<Supplier> getBidSupplierList(){
// List<Supplier> allSupplierList = getAllSupplierList();
//
// return allSupplierList;
// }
/**
......@@ -651,12 +720,12 @@ public abstract class BaseDateSet implements IWordDataSet{
* @return
*/
public List<Supplier> getOpeningSupplierList(){
List<Supplier> allSupplierList = getAllSupplierList();
// List<Supplier> allSupplierList = getAllSupplierList();
List<Supplier> openingSupplierList = new ArrayList<Supplier>();
StringBuilder supplierNames = new StringBuilder();
int count = 0;
for(Supplier supplier : allSupplierList){
SupplierOpeningResult supplierOpeningResult = getSupplierOpeningResult(supplier.getId());
SupplierOpeningResult supplierOpeningResult = supplierOpeningResultMap.get(supplier.getId());//getSupplierOpeningResult(supplier.getId())
if(null != supplierOpeningResult && SupplierEnum.OPENBID_SUCCESS.equals(supplierOpeningResult.getOpeningStatus())){
openingSupplierList.add(supplier);
supplierNames.append(supplier.getSupplierName());
......@@ -689,7 +758,8 @@ public abstract class BaseDateSet implements IWordDataSet{
supplierMap.put("sortNo", null);
supplierMap.put("winBidSortNo", null);
BigDecimal evaluationPrice = null;
SupplierOpeningResult supplierOpeningResult = getSupplierOpeningResult(supplier.getId());
// SupplierOpeningResult supplierOpeningResult = getSupplierOpeningResult(supplier.getId());
SupplierOpeningResult supplierOpeningResult = supplierOpeningResultMap.get(supplier.getId());
if(null != supplierOpeningResult){
if(null != supplierOpeningResult.getEvaluationPrice()){
evaluationPrice = supplierOpeningResult.getEvaluatoinPriceByUnit(tenderProjectRuleEntity.getEvalPriceUnit());
......@@ -1280,32 +1350,29 @@ public abstract class BaseDateSet implements IWordDataSet{
* @return
*/
public List<Supplier> getEvaluationStepSupplierList(EvaluationStep evaluationStep, boolean queryOpeningAndEvaluationResult){
List<Supplier> supplierList = new ArrayList<Supplier>();
List<Supplier> supplierList = null;
if(null != stepSupplierListMap.get(evaluationStep.getId())) {
supplierList = stepSupplierListMap.get(evaluationStep.getId());
}else {
if(ObjectUtils.equals(tenderProject.getBidOpeningStatus(), CommonEnum.COMPLETE)){
if(null != evaluationStep){
supplierList = supplierService.getEvaluationStepSupplierList(tenderProject.getId(), evaluationStep);
}else {
supplierList = supplierService.getOpenBidSuccessSupplier(tenderProject.getId());
supplierList = openBidSuccessSupplierList;
}
}else {
supplierList = supplierService.getAllSupplierList(tenderProject.getId());
supplierList = allSupplierList;
}
if(null != supplierList && supplierList.size() > 0){
// 判断是否获得开标、评标结果
if(queryOpeningAndEvaluationResult){
// 获得投标人的开标结果和评标结果
List<Supplier> supplierOpenAndEvalResultList = supplierService.getSupplierOpenbidAndEvaluateResultList(tenderProject.getId());
if(null != supplierList && supplierList.size() > 0) {
stepSupplierListMap.put(evaluationStep.getId(), supplierList);
for(Supplier supplier : supplierList){
for(Supplier tempSupplier : supplierOpenAndEvalResultList){
if(StringUtils.equals(supplier.getId(), tempSupplier.getId())){
supplier.setSupplierOpeningResult(tempSupplier.getSupplierOpeningResult());// 投标人开标结果
supplier.setSupplierEvaluationResult(tempSupplier.getSupplierEvaluationResult());// 投标人评标结果
break;
}
supplier.setSupplierOpeningResult( supplierOpeningResultMap.get(supplier.getId()));// 投标人开标结果
supplier.setSupplierEvaluationResult(getSupplierEvaluationResult(supplier.getId()));// 投标人评标结果
}
}
}
}else {
if(null == supplierList || supplierList.size() == 0){
// 未获得投标人,则创建1家临时投标人。
supplierList = new ArrayList<Supplier>();//getSupplierListByTemp();
......@@ -1382,7 +1449,7 @@ public abstract class BaseDateSet implements IWordDataSet{
// 未找到招标文件的指标,则获得投标文件的指标。
if(null == factorDoc){
// 获得投标人集合
List<Supplier> supplierList = supplierService.getSupplierOpenBidList(tenderProject.getId());
if(null != supplierList && supplierList.size() > 0){
// 遍历投标人信息
for(Supplier supplier : supplierList){
......
......@@ -433,7 +433,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
List<Expert> expertList = getEvalExpertListByEvalNode(evaluationStepBidType);
// 获得投标人集合
List<Supplier> supplierList = supplierService.getEvaluationStepSupplierList(tenderProject.getId(), evaluationStepBidType.getEvaluationStepList().get(0));
List<Supplier> supplierList = getEvaluationStepSupplierList(evaluationStepBidType.getEvaluationStepList().get(0), true);
// 先组装指标专家表头
// Map<String, Object> factorMapList = new HashMap<>();
......@@ -521,7 +521,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
}else {
if(null != crossMap.get(evaluationFactor.getId() + supplier.getId())) {
crossMapList.add(crossMap.get(evaluationFactor.getId()+ supplier.getId()));
System.out.println("获取指标主键id值"+evaluationFactor.getId() + supplier.getId() + ": " +crossMap.get(evaluationFactor.getId()+ supplier.getId()));
// System.out.println("获取指标主键id值"+evaluationFactor.getId() + supplier.getId() + ": " +crossMap.get(evaluationFactor.getId()+ supplier.getId()));
}
}
......@@ -563,7 +563,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
// System.out.println("设置指标评审结果值:"+ evaluationFactor.getId()+ expert.getUserId()+ "expert");
crossMap.put(evaluationFactor.getId()+ expertID, dateMap);
System.out.println("设置指标评审结果值:"+evaluationFactor.getId()+ expertID);
// System.out.println("设置指标评审结果值:"+evaluationFactor.getId()+ expertID);
// expertEvaluationFactor.setFactorCode(factorCode);
// evaluationFactor.addChild(factor);
Map<String, Object> factor = new HashMap<String, Object>();
......@@ -611,7 +611,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
if (null != stepList && stepList.size() > 0) {
for (EvaluationStep step : stepList) {
// 获得进入当前步骤的供应商
List<Supplier> inSupplierList = supplierService.getEvaluationStepSupplierList(tenderProject.getId(), step);
List<Supplier> inSupplierList = getEvaluationStepSupplierList(step, true);
if (null != inSupplierList && inSupplierList.size() > 0) {
qualifiedCount = inSupplierList.size();;
List<Supplier> disSupplierList = supplierService.getDisAccessmentSupplier(tenderProject.getId(), step.getId());
......@@ -619,7 +619,8 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
qualifiedCount = qualifiedCount - disSupplierList.size();
disQualifiedCount = disSupplierList.size();
for (Supplier supplier : disSupplierList) {
SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultService.getSupplierEvaluationResultByTenderIdAndSupplierId(tenderProject.getId(), supplier.getId());
// SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultService.getSupplierEvaluationResultByTenderIdAndSupplierId(tenderProject.getId(), supplier.getId());
SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultMap.get(supplier.getId());
Map<String, Object> supplierMap = Bean2MapUtils.createMap(supplier);
if (null != supplierEvaluationResult) {
supplierMap.put("newIndex", unPassComCount++ + "");
......@@ -631,7 +632,8 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
}
for (Supplier supplier : inSupplierList) {
SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultService.getSupplierEvaluationResultByTenderIdAndSupplierId(tenderProject.getId(), supplier.getId());
// SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultService.getSupplierEvaluationResultByTenderIdAndSupplierId(tenderProject.getId(), supplier.getId());
SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultMap.get(supplier.getId());
SupplierEvaluationResult sourceSupplierEvaluationResult = null;
if(!StringUtils.isEmpty(tenderProject.getTenderSourceId())) {
sourceSupplierEvaluationResult = supplierEvaluationResultService.getSupplierEvaluationResultByTenderIdAndSupplierId(tenderProject.getTenderSourceId(), supplier.getSourceId());
......@@ -668,7 +670,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
List<Map<String, Object>> bidPriceItemMapList = new ArrayList<Map<String, Object>>();
Map<String, Object> crossData = new HashMap<String, Object>();
List<Supplier> openSucessSupplierList = getOpenBidSuccessSupplierList();
List<SupplierOpeningResult> supplierBidPriceResultList = supplierOpeningResultService.getSupplierOpeningResultList(tenderProject.getId());
// List<SupplierOpeningResult> supplierBidPriceResultList = supplierOpeningResultService.getSupplierOpeningResultList(tenderProject.getId());
List<BidPrice> bidPriceList = bidPriceService.getTenderBidPriceTableList(tenderProject.getId());
if (null == bidPriceList || bidPriceList.size() < 1) {
return;
......@@ -683,8 +685,10 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
if (null != openSucessSupplierList && openSucessSupplierList.size() > 0) {
int sort = 1;
for (Supplier supplier : openSucessSupplierList) {
for (SupplierOpeningResult supplierOpeningResult : supplierBidPriceResultList) {
if (StringUtils.equals(supplier.getId(), supplierOpeningResult.getSupplierId())) {
SupplierOpeningResult supplierOpeningResult = supplierOpeningResultMap.get(supplier.getId());
// for (SupplierOpeningResult supplierOpeningResult : supplierBidPriceResultList) {
// if (StringUtils.equals(supplier.getId(), supplierOpeningResult.getSupplierId())) {
if (null != supplierOpeningResult) {
List<BidPriceResult> bidPriceItemResultList = bidPriceResultService.getSupplierBidPriceResultList(tenderProject.getId(), supplier.getId());
Map<String, Object> supplierMap = Bean2MapUtils.createMap(supplier);
supplierMap.put("sort", sort++ + "");
......@@ -708,7 +712,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
crossData.put(supplier.getId().concat(bidPriceResult.getBidPriceId()), bidPriceResult.getPriceContent());
}
}
}
// }
}
}
......@@ -724,10 +728,10 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
*/
public List<Supplier> getOpenBidSuccessSupplierList() {
// 获得开标成功的投标人列表
List<Supplier> supplierList = supplierService.getOpenBidSuccessSupplier(tenderProject.getId());
List<Supplier> supplierList = openBidSuccessSupplierList;
// 未获得开标完成的投标人,则获得全部投标人。
if (null == supplierList || supplierList.size() < 1) {
supplierList = supplierService.getAllSupplierList(tenderProject.getId());
supplierList = allSupplierList;
}
return supplierList;
}
......@@ -755,15 +759,17 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
String name=evaluationStepList.stream().filter(s -> s.getEvaluationOpinion() != null).map(EvaluationStep :: getStepName).collect(Collectors.joining("/"));
String opinion=evaluationStepList.stream().filter(s -> s.getEvaluationOpinion() != null).map(EvaluationStep :: getEvaluationOpinion).collect(Collectors.joining("/"));
//判断中标候选人顺序是否更改
List<SupplierEvaluationResult> supplierEvaluationResultList =supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getId());
// List<SupplierEvaluationResult> supplierEvaluationResultList = supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getId());
List<SupplierEvaluationResult> sourceSupplierEvaluationResultList =null;
if(!StringUtils.isEmpty(tenderProject.getTenderSourceId())) {
sourceSupplierEvaluationResultList =supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getTenderSourceId());
sourceSupplierEvaluationResultList = supplierEvaluationResultService.getSupplierEvaluationResultListByTenderId(tenderProject.getTenderSourceId());
}
int number =0;
if(supplierEvaluationResultList != null && sourceSupplierEvaluationResultList !=null){
for(SupplierEvaluationResult supplierEvaluationResult : supplierEvaluationResultList){
Supplier supplier = supplierService.getById(supplierEvaluationResult.getSupplierId());
// if(supplierEvaluationResultList != null && sourceSupplierEvaluationResultList !=null){
if(supplierEvaluationResultMap != null && supplierEvaluationResultMap.size() > 0 && sourceSupplierEvaluationResultList !=null){
for(String key: supplierEvaluationResultMap.keySet()) {
SupplierEvaluationResult supplierEvaluationResult = supplierEvaluationResultMap.get(key);
Supplier supplier = supplierMap.get(supplierEvaluationResult.getSupplierId());
for(SupplierEvaluationResult sourceSupplierEvaluationResult : sourceSupplierEvaluationResultList){
Supplier sourceSupplier = supplierService.getById(sourceSupplierEvaluationResult.getSupplierId());
if(supplier.getSupplierName().equals(sourceSupplier.getSupplierName()) && supplierEvaluationResult.getSortNo() != sourceSupplierEvaluationResult.getSortNo()) {
......@@ -771,6 +777,9 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
}
}
}
// for(SupplierEvaluationResult supplierEvaluationResult : supplierEvaluationResultList){
// }
}
if(number > 0) {
reportDataSet.putParam("ifChange", "更改为:");
......@@ -838,7 +847,7 @@ public class JingNengEvaluationReportDataSet extends BaseDateSet {
// 未找到招标文件的指标,则获得投标文件的指标。
if(null == factorDoc){
// 获得投标人集合
List<Supplier> supplierList = supplierService.getSupplierOpenBidList(tenderProject.getId());
// List<Supplier> supplierList = supplierService.getSupplierOpenBidList(tenderProject.getId());
if(null != supplierList && supplierList.size() > 0){
// 遍历投标人信息
for(Supplier supplier : supplierList){
......
......@@ -82,6 +82,7 @@ public class SysetemAdminLogComposite extends Composite {
private Composite formComposite;
private Text keySearchText;
private Text pageSizeText;
private Boolean isException;
{
LogUtils.logClass(SysetemAdminLogComposite.class);
}
......@@ -433,7 +434,7 @@ public class SysetemAdminLogComposite extends Composite {
sysLogService = new com.gx.obe.web.service.log.SysLogService();
logGrid.setItemHeight(Constants.ROW_HIGHT);
logGrid.setAutoHeight(true);
combo.select(1);
FloatInputListener factorPositiveMinScoreListener = new FloatInputListener();
factorPositiveMinScoreListener.addMinCheck(0, Messages.Tips_pleaseEnterValidRange);
factorPositiveMinScoreListener.addMaxCheck(200, Messages.Tips_pleaseEnterValidRange);
......@@ -471,7 +472,10 @@ public class SysetemAdminLogComposite extends Composite {
Date startTime = (Date)startTimeText.getData("date");
Date endTime = (Date)endTimeText.getData("date");
String returnValue = returnValueText.getText();
Boolean isException = (Boolean)WidgetUtils.getComboSelection(combo);
isException = false;
if(null != WidgetUtils.getComboSelection(combo) && !"-1" .equals(WidgetUtils.getComboSelection(combo))) {
isException = (Boolean)WidgetUtils.getComboSelection(combo);
}
new Thread(new Runnable() {
public void run() {
Page<SysLog> page = sysLogService.selectConditionQuery(createUser, title, params, startTime, endTime, returnValue, isException, CUR_PAGE_NO, PAGE_SIZE);
......
eclipse.preferences.version=1
encoding/<project>=UTF-8
......@@ -36,4 +36,5 @@ Export-Package: com.gx.obe.common.file.adapter,
com.gx.obe.common.file.upload,
com.gx.obe.common.file.upload.infer,
com.gx.obe.common.file.utils,
com.gx.obe.common.file.widget
com.gx.obe.common.file.widget,
org.eclipse.wb.swt
package com.gx.obe.common.file.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.gx.obe.business.entity.SignatureFile;
import com.gx.obe.components.core.Constants;
import com.gx.obe.http.json.JsonUtil;
import com.gx.obe.web.utils.NetworkRequest;
import com.gx.obe.web.utils.ResultStatus;
public class ExpertSignService {
static final String URL = "fileSign";
/**
* @Description: 获得当前项目的流转签章文件
* @author mazc
* @param tenderId
* @return
*/
public List<SignatureFile> expertSubmitSignApply(String idNumber, String tenderId, String fileIds, String signImage, String keyWord, String userId, String expertId){
String strWebServerUrl = Constants.getServiceUrl( URL + "/expertSubmitSignApply");
Map<String, Object> param = new HashMap<String, Object>();
param.put("tenderId", tenderId );
param.put("idNumber", idNumber );
param.put("fileIds", fileIds );
param.put("signImage", signImage );
param.put("keyWord", keyWord);
param.put("expertId", expertId);
param.put("userId", userId);
try {
String result = NetworkRequest.post(strWebServerUrl, param);
if(ResultStatus.getReultStatusIsNotEmpty(result)){
return JsonUtil.strToList(result, SignatureFile.class);
}
return null;
} catch (Exception e) {
// logger.error(e.getMessage(), e);
return null;
}
}
}
......@@ -180,4 +180,27 @@ public class SignatureUserService {
return false;
}
}
/**
* @Description: 获得当前用户需要签章的报表
* @author mazc
* @param tenderId
* @param userId
* @return
*/
public List<SignatureUser> getUserSignatureFileList(String tenderId){
String strWebServerUrl = Constants.getServiceUrl( URL + "/getUserSignatureFileByTenderIdList");
Map<String, Object> param = new HashMap<String, Object>();
param.put("tenderId", tenderId );
try {
String result = NetworkRequest.get(strWebServerUrl, param);
if(ResultStatus.getReultStatusIsNotEmpty(result)){
return JsonUtil.strToList(result, SignatureUser.class);
}
return null;
} catch (Exception e) {
logger.error(e.getMessage(), e);
return null;
}
}
}
package com.gx.obe.common.file.service;
import java.util.HashMap;
import java.util.Map;
import com.gx.obe.components.core.Constants;
import com.gx.obe.components.core.vo.AuthUserVo;
import com.gx.obe.http.json.JsonUtil;
import com.gx.obe.web.entity.Result.ResultEntity;
import com.gx.obe.web.entity.expert.Expert;
import com.gx.obe.web.utils.NetworkRequest;
import com.gx.obe.web.utils.ResultStatus;
public class UserSignFileService {
static final String URL = "fileSign";
/**
* @Description: 获得当前项目的流转签章文件
* @author mazc
* @param tenderId
* @return
*/
public ResultEntity<Expert> expertSubmitSignApply(String TId, String idNumber, String tenderId, String fileIds, String signImage, String keyWord, String userId, String expertId){
String strWebServerUrl = Constants.getServiceUrl( URL + "/expertSubmitSignApply");
Map<String, Object> param = new HashMap<String, Object>();
param.put("TId", TId );
param.put("tenderId", tenderId );
param.put("idNumber", idNumber );
param.put("fileIds", fileIds );
param.put("signImage", signImage );
param.put("keyWord", keyWord);
param.put("userId", userId);
param.put("expertId", expertId);
try {
String result = NetworkRequest.post(strWebServerUrl, param);
System.out.println(result);
if(ResultStatus.getReultStatusIsNotEmpty(result)){
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("data", Expert.class);
return JsonUtil.strToObject(result, ResultEntity.class, classMap);
}
return new ResultEntity<Expert>(null,"请求失败",ResultEntity.FAIL);
} catch (Exception e) {
// logger.error(e.getMessage(), e);
// return null;
}
return new ResultEntity<Expert>(null,"请求失败",ResultEntity.FAIL);
}
/**
* @Description: 获得当前项目的流转签章文件
* @author mazc
* @param tenderId
* @return
*/
public ResultEntity<String> getExpertSignStatue(String TId, String tenderId, String userId, String expertId){
String strWebServerUrl = Constants.getServiceUrl( URL + "/getExpertSignStatue");
Map<String, Object> param = new HashMap<String, Object>();
param.put("TId", TId );
param.put("tenderId", tenderId );
param.put("userId", userId);
param.put("expertId", expertId);
try {
String result = NetworkRequest.post(strWebServerUrl, param);
System.out.println(result);
if(ResultStatus.getReultStatusIsNotEmpty(result)){
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("data", Expert.class);
return JsonUtil.strToObject(result, ResultEntity.class, classMap);
}
return new ResultEntity<String>(null,"请求失败",ResultEntity.FAIL);
} catch (Exception e) {
// logger.error(e.getMessage(), e);
// return null;
}
return new ResultEntity<String>(null,"请求失败",ResultEntity.FAIL);
}
}
......@@ -34,6 +34,7 @@ import com.gx.obe.message.Messages;
import com.gx.obe.util.utils.LogUtils;
import com.swtdesigner.ResourceManager;
import com.swtdesigner.SWTResourceManager;
import org.eclipse.swt.widgets.Label;
/**
* @Description:
......@@ -60,7 +61,7 @@ public class MessageViewDialog extends EDialog {
public static final String CANCEL = "CANCEL";
private List<ButtonPo> buttonPoList;
private Map<String, EButton> operatorMap;
private boolean showProcess = true;
{
LogUtils.logClass(MessageViewDialog.class);
}
......@@ -72,6 +73,14 @@ public class MessageViewDialog extends EDialog {
public MessageViewDialog(Shell parentShell, int setMaximum) {
this(parentShell, setMaximum, null);
}
/**
* Create the dialog.
* @param parentShell
*/
public MessageViewDialog(Shell parentShell, boolean showProcess) {
super(parentShell);
this.showProcess = showProcess;
}
/**
* @wbp.parser.constructor
*/
......@@ -106,7 +115,7 @@ public class MessageViewDialog extends EDialog {
downloadInfoComposite.setLayout(gl_downloadInfoComposite);
text = new Text(downloadInfoComposite, SWT.READ_ONLY | SWT.WRAP | SWT.V_SCROLL);
text.setFont(SWTResourceManager.getFont("宋体", 10, SWT.NORMAL));
text.setFont(SWTResourceManager.getFont("宋体", 14, SWT.NORMAL));
text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
ESepator label = new ESepator(container, SWT.SEPARATOR | SWT.HORIZONTAL);
......@@ -115,12 +124,14 @@ public class MessageViewDialog extends EDialog {
composite_3 = new Composite(container, SWT.NONE);
// composite_3.setBackground(org.eclipse.wb.swt.SWTResourceManager.getColor(SWT.COLOR_WHITE));
composite_3.setBackgroundMode(SWT.INHERIT_FORCE);
composite_3.setBackgroundImage(ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/fill_bg.png"));
GridLayout gl_composite_3 = new GridLayout(2, false);
GridLayout gl_composite_3 = new GridLayout(3, false);
composite_3.setLayout(gl_composite_3);
composite_3.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
composite_3.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1));
if(showProcess) {
if(setMaximum > 0){
downloadProgressBar = new ProgressBar(composite_3, SWT.SMOOTH );
downloadProgressBar.setMaximum(setMaximum);
......@@ -128,6 +139,7 @@ public class MessageViewDialog extends EDialog {
downloadProgressBar = new ProgressBar(composite_3, SWT.SMOOTH | SWT.INDETERMINATE);
}
downloadProgressBar.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1));
}
init();
return container;
......@@ -138,6 +150,7 @@ public class MessageViewDialog extends EDialog {
* @author guoyr
*/
private void init(){
if(showProcess) {
downloadProgressBar.setVisible(true);
progressRunnable = new Runnable() {
public void run() {
......@@ -147,6 +160,8 @@ public class MessageViewDialog extends EDialog {
}
};
}
if(null != buttonPoList && buttonPoList.size() > 0){
((GridLayout)composite_3.getLayout()).numColumns = buttonPoList.size() + 1;
operatorMap = new HashMap<String, EButton>();
......@@ -271,7 +286,9 @@ public class MessageViewDialog extends EDialog {
Display.getDefault().syncExec(new Runnable() {
public void run() {
if(null != text && !text.isDisposed()){
if(showProcess) {
downloadProgressBar.setVisible(true);
}
text.setText(message.toString());
text.setSelection(message.length());
}
......@@ -295,10 +312,12 @@ public class MessageViewDialog extends EDialog {
public void setMaximum(int setMaximum){
this.setMaximum = setMaximum;
if(showProcess) {
if(null != downloadProgressBar){
downloadProgressBar.setMaximum(setMaximum);
}
}
}
/**
* @Description: 取消
* @author guoyr
......@@ -362,6 +381,12 @@ public class MessageViewDialog extends EDialog {
});
}
@Override
public void callBackClearScreen(String msg) {
message = new StringBuilder();
showMessage(msg);
}
};
}
return callBack;
......
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
......@@ -70,7 +70,8 @@ public abstract class CallBack implements CallBackListener {
return null;
}
}
public void callBackClearScreen(String msg) {
};
public void setData(String key, Object value) {
if (null == data) {
data = new HashMap<String, Object>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment