4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
NC中通过点击一个按钮结转成本单_jingman66的博客-CSDN博客
来自 : CSDN技术社区 发布时间:2021-03-25

1.在xml中增加按钮实现按钮类

package nc.ui.hxkj.ppm.pc.action;


import java.awt.event.ActionEvent;


import nc.bs.framework.common.NCLocator;
import nc.itf.hxkj.ppm.pc.IPmCost;
import nc.itf.pubapp.pub.smart.IBillQueryService;
import nc.ui.ml.NCLangRes;
import nc.ui.pm.model.BillManageModel;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.uif2.NCAction;
import nc.ui.uif2.actions.RefreshSingleAction;
import nc.vo.ppm.projectcheck.ProjectCheckBillVO;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;


/**
 * 收入成本结转
 * author lianyi
 *
 */
public class CostConvertAction extends NCAction {
/**

*/
private static final long serialVersionUID 2904268537234554921L;
private BillManageModel model;

public CostConvertAction(){
super();
setCode( CostConvert
setBtnName( 收入成本结转
}


Override
public void doAction(ActionEvent arg0) throws Exception {
Object selData getModel().getSelectedData();
if(selData null){
return;
}

ProjectCheckBillVO billVO (ProjectCheckBillVO) selData;
if(billVO.getParentVO().getHdef1() ! null
billVO.getParentVO().getHdef1().trim().equals( Y )){
MessageDialog.showWarningDlg(null, 警告 , 当前单据已经结转 不能再次结转
return;
}
NCLocator.getInstance().lookup(IPmCost.class).pmCostConvert(billVO);
MessageDialog.showHintDlg(null, 提示 , 结转完成
refresh();
}

/** 
* 刷新当前卡片界面数据
* see RefreshSingleAction
* throws BusinessException void
*/ 
private void refresh() throws BusinessException{
ProjectCheckBillVO oldVO (ProjectCheckBillVO) getModel().getSelectedData();
String pk oldVO.getParentVO().getPrimaryKey();
IBillQueryService billQuery
NCLocator.getInstance().lookup(IBillQueryService.class);
AggregatedValueObject newVO
billQuery.querySingleBillByPk(oldVO.getClass(), pk);
// 单据被删除之后应该回到列表界面再刷新
if (newVO null) {
// 数据已经被删除
throw new BusinessException(NCLangRes.getInstance().getStrByID(
uif2 , RefreshSingleAction-000000 )/*数据已经被删除 请返回列表界面 */);
}
this.model.directlyUpdate(newVO);
}


public BillManageModel getModel() {
return model;
}


public void setModel(BillManageModel model) {
this.model model;
}


}



2.在public端写接口实现一步中的这个方法pmCostConvert

package nc.itf.hxkj.ppm.pc;


import nc.vo.ppm.projectcheck.ProjectCheckBillVO;
import nc.vo.pub.BusinessException;


public interface IPmCost {


public void pmCostConvert(ProjectCheckBillVO billVO) throws BusinessException;
}


3.在private中实现这个接口方法

package nc.impl.hxkj.ppm.pc;


import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.NCLocator;
import nc.itf.hxkj.ppm.pc.IPmCost;
import nc.itf.pca.domain.costconvert.ICostConvertService;
import nc.itf.pca.domain.costconvert.ICostCvtAmountQryService;
import nc.itf.scmpub.reference.uap.pf.PfServiceScmUtil;
import nc.vo.pca.costconvert.AggPCACostConvertVO;
import nc.vo.pca.costconvert.PCACostConvertNewCardVO;
import nc.vo.pca.costconvert.PCACostConvertVO;
import nc.vo.ppm.projectcheck.ProjectCheckBillVO;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.pub.CircularlyAccessibleValueObject;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;


public class PmCostServiceImpl implements IPmCost {


Override
public void pmCostConvert(ProjectCheckBillVO billVO)
throws BusinessException {
if(billVO null
|| billVO.getParentVO() null){
throw new BusinessException( 没有有效的数据
}

if(billVO.getParentVO().getBill_status().intValue() ! 1){
throw new BusinessException( 审批通过的验收单据才允许结转收入成本
}

AggregatedValueObject[] ccVOs PfServiceScmUtil.exeVOChangeByBizFlow( 4D36-03 , CM53 , new ProjectCheckBillVO[]{billVO});
// 异常处理
if (ccVOs null || ccVOs.length 0) {
ExceptionUtils.wrappBusinessException( 转换成本结转单失败
return;
}


//代码处理进度和金额 通过结转接口保存
String costPK null;
for(AggregatedValueObject ccVO : ccVOs){
PCACostConvertVO cchVO (PCACostConvertVO)ccVO.getParentVO();
PCACostConvertNewCardVO ccnVO new PCACostConvertNewCardVO();
ccnVO.setPk_org(cchVO.getPk_org());
ccnVO.setPk_setofbook(cchVO.getPk_setofbook());
ccnVO.setBizdate(cchVO.getBizdate());
ccnVO.setPk_project(cchVO.getPk_project());
ccnVO.setCurrentschedule(cchVO.getCurrentschedule());


AggPCACostConvertVO aggvo (NCLocator.getInstance().lookup(ICostCvtAmountQryService.class)).getAggCostConvertVO(ccnVO);
aggvo.getParentVO().setStatus(2);
for (CircularlyAccessibleValueObject obj : aggvo.getAllChildrenVO()) {
obj.setStatus(2);
}


AggPCACostConvertVO[] retVOs getService().insertVOs(new AggPCACostConvertVO[] { aggvo });
if(retVOs null){
throw new BusinessException( 结转单保存失败
}

costPK retVOs[0].getParentVO().getPrimaryKey();
}

//回写hdef1和hdef2
new BaseDAO().executeUpdate( update pm_check_head set hdef1 Y , hdef2 costPK where pk_pro_check billVO.getParentVO().getPk_pro_check()
}


private ICostConvertService service;
protected ICostConvertService getService(){
if (this.service null) {
this.service ((ICostConvertService)NCLocator.getInstance().lookup(ICostConvertService.class));
}
return this.service;
}


}



\"\" \"\" \"\" 点赞 \"\" \"\" 评论

本文链接: http://pfscm.immuno-online.com/view-743442.html

发布于 : 2021-03-25 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616