package nc.ui.so.m30.billui.action;
import java.awt.event.ActionEvent;
import org.apache.commons.lang.StringUtils;
import nc.bs.framework.common.NCLocator;
import nc.itf.so.m30.task.IReviseTaskService;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.ui.pubapp.uif2app.model.BillManageModel;
import nc.ui.so.m30.billui.view.SaleOrderBillForm;
import nc.ui.uif2.NCAction;
import nc.ui.uif2.components.progress.TPAProgressUtil;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.pub.lang.UFDateTime;
import nc.vo.so.m30.entity.SaleOrderBVO;
import nc.vo.so.m30.entity.SaleOrderHVO;
import nc.vo.so.m30.entity.SaleOrderVO;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.pub.beans.progress.DefaultProgressMonitor;
import nc.ui.pub.beans.progress.IProgressMonitor;
public class ReviseOrderAction extends NCAction {
/**
*
*/
private static final long serialVersionUID = 3646143778512288342L;
private BillManageModel model;
private SaleOrderBillForm editor;
private TPAProgressUtil tpaProgressUtil;
public ReviseOrderAction() {
super.setBtnName("期货修订");
super.setCode("orderRevise");
}
public void doAction(ActionEvent event) throws Exception {
SaleOrderVO orderVO = (SaleOrderVO) getModel().getSelectedData();
SaleOrderBVO[] bodys = orderVO.getChildrenVO();
SaleOrderHVO head = orderVO.getParentVO();
for (SaleOrderBVO body : bodys) {
if (body.getBboutendflag() == UFBoolean.TRUE) {
MessageDialog.showErrorDlg(editor, "修订错误", "当前单据【" + head.getVbillcode()
+ "】第【" + body.getCrowno() + "】行出库关闭不允许修订!");
return;
}
}
if (StringUtils.isNotBlank(head.getVdef17())) {
IUAPQueryBS queryBS = NCLocator.getInstance().lookup(IUAPQueryBS.class);
String longOrderCustomerPk = (String) queryBS.executeQuery("select d.pk_defdoc\r\n" +
" from bd_defdoc d\r\n" +
" left join bd_defdoclist l\r\n" +
" on l.pk_defdoclist = d.pk_defdoclist\r\n" +
" where l.code = 'YXJT_30_CDKH'\r\n" +
" and d.code = '01'", new ColumnProcessor());
if (StringUtils.equals(head.getVdef17(), longOrderCustomerPk)) {
new Thread(new Runnable() {
public void run() {
// 方案计算进度条
DefaultProgressMonitor montior = getTpaProgressUtil().getTPAProgressMonitor();
montior.beginTask("正在刷新", IProgressMonitor.UNKNOWN_TOTAL_TASK);
montior.setProcessInfo("正在刷新");
try {
SaleOrderVO orderVO = (SaleOrderVO) getModel().getSelectedData();
IReviseTaskService reviseTaskService = NCLocator.getInstance().lookup(IReviseTaskService.class);
reviseTaskService.handlerSaleOrderByPK_RequiresNew(orderVO.getPrimaryKey(), new UFDateTime());
montior.done();
MessageDialog.showHintDlg(editor, "修订成功", "长单客户订单修订成功,请手动刷新单据!");
} catch (Exception e) {
montior.done();
MessageDialog.showErrorDlg(editor, "修订错误", e.getMessage());
}
}
}).start();
}else {
MessageDialog.showErrorDlg(editor, "修订错误", "当前单据【" + head.getVbillcode()
+ "】客户类型不是长单客户不允许修订!");
return;
}
}else {
MessageDialog.showErrorDlg(editor, "修订错误", "当前单据【" + head.getVbillcode()
+ "】客户类型不是长单客户不允许修订!");
}
}
public BillManageModel getModel() {
return this.model;
}
public void setModel(BillManageModel model) {
this.model = model;
model.addAppEventListener(this);
}
public SaleOrderBillForm getEditor() {
return this.editor;
}
public void setEditor(SaleOrderBillForm editor) {
this.editor = editor;
}
protected boolean isActionEnable() {
if ((getModel().getSelectedOperaDatas() == null)
|| (getModel().getSelectedOperaDatas().length == 0)) {
return false;
}
SaleOrderVO orderVO = (SaleOrderVO) getModel().getSelectedData();
if (orderVO.getParentVO().getFstatusflag().intValue() == 2) {
return true;
}
return false;
}
/**
* loading
* @return
*/
private TPAProgressUtil getTpaProgressUtil() {
if (tpaProgressUtil == null) {
tpaProgressUtil = new TPAProgressUtil();
tpaProgressUtil.setContext(getModel().getContext()); // 传入界面的上下文
}
return tpaProgressUtil;
}
}
新线程,进度条
于 2022-02-25 16:49:55 首次发布