UDN-企业互联网技术人气社区

板块导航

浏览  : 258
回复  : 4

新建的单据,审批通过后无法在会计平台生成临时单据

[复制链接]
uec_fJQQ4jjnp4的头像 楼主
发表于 2020-8-3 17:07:09 | 显示全部楼层 |阅读模式
本帖最后由 uec_fJQQ4jjnp4 于 2020-8-3 17:12 编辑

NC65 新做了一个单据

该单据所在的应收管理模块AR,在功能注册勾选了是否发送会计平台

该单据的单据类型管理也勾选了是否发送会计平台

也在会计平台节点下配置了各种设置,如转换模板-业务单元、平台设置等等,

发送会计平台生成临时单据是写在审批按钮处,代码如下:

  1. package nc.ui.arap.invoice_mag.action;

  2. import java.awt.event.ActionEvent;

  3. import nc.bs.framework.common.InvocationInfoProxy;
  4. import nc.bs.framework.common.NCLocator;
  5. import nc.bs.logging.Logger;
  6. import nc.pubitf.fip.service.IFipMessageService;
  7. import nc.pubitf.initgroup.InitGroupQuery;
  8. import nc.tool.utils.GetParametersUtils;
  9. import nc.ui.pubapp.uif2app.actions.pflow.ApproveScriptAction;
  10. import nc.vo.fip.pub.FipBaseDataProxy;
  11. import nc.vo.fip.service.FipMessageVO;
  12. import nc.vo.fip.service.FipRelationInfoVO;
  13. import nc.vo.invo.invoice_mag.AggInvoiceMagVO;
  14. import nc.vo.invo.invoice_mag.InvoiceMagVO;
  15. import nc.vo.pub.BusinessException;
  16. import nc.vo.pub.billtype.BilltypeVO;
  17. import nc.vo.pubapp.pattern.exception.ExceptionUtils;
  18. import nc.vo.uif2.LoginContext;

  19. /**
  20. * 创建时间: 2020年8月1日 下午2:00:01
  21. *
  22. */
  23. public class InvoMagApproveAction extends ApproveScriptAction {

  24.         /**
  25.          *
  26.          */
  27.         private static final long serialVersionUID = 5035049642487375350L;
  28.         private final String BTN_CODE = "InvoMagApproveAction";

  29.         public InvoMagApproveAction() {
  30.                 super();
  31.                 super.setCode(BTN_CODE);
  32.         }

  33.         /*
  34.          * (非 Javadoc)
  35.          *
  36.          * @see
  37.          * nc.ui.pubapp.uif2app.actions.pflow.ScriptPFlowAction#doAction(java.awt
  38.          * .event.ActionEvent)
  39.          */
  40.         @Override
  41.         public void doAction(ActionEvent e) throws Exception {
  42.                 super.doAction(e);

  43.                 LoginContext context = getModel().getContext();
  44.                 String pk_group = context.getPk_group();
  45.                
  46.                 if(isFIPEnable(pk_group)){
  47.                         String pk_org = context.getPk_org();
  48.                         String pk_billtype = GetParametersUtils.getBillTypeId(getBillType());

  49.                         Object billvo = getModel().getSelectedData();
  50.                         InvoiceMagVO invoiceMagVO = ((AggInvoiceMagVO) billvo).getParentVO();

  51.                         IFipMessageService ip = (IFipMessageService) NCLocator.getInstance().lookup(IFipMessageService.class);

  52.                         FipRelationInfoVO messageinfo = new FipRelationInfoVO();
  53.                         messageinfo.setPk_group(pk_group);
  54.                         messageinfo.setPk_org(pk_org);
  55.                         messageinfo.setPk_billtype(pk_billtype);
  56.                         BilltypeVO billtype = FipBaseDataProxy.getBilltype(pk_group, getBillType());
  57.                         messageinfo.setPk_system(billtype == null ? null : billtype.getSystemcode());
  58.                         messageinfo.setRelationID(invoiceMagVO.getPk_invoice_manage());
  59.                         messageinfo.setBusidate(invoiceMagVO.getIbilldate());
  60.                         messageinfo.setPk_operator(InvocationInfoProxy.getInstance().getUserId());
  61.                         messageinfo.setFreedef1(invoiceMagVO.getVbillcode());
  62.                         messageinfo.setFreedef3(invoiceMagVO.getNpricetaxtotalmny().toString());

  63.                         FipMessageVO fipmessagevo = new FipMessageVO();
  64.                         fipmessagevo.setMessageinfo(messageinfo);
  65.                         fipmessagevo.setBillVO(billvo);
  66.                         fipmessagevo.setMessagetype(FipMessageVO.MESSAGETYPE_ADD);
  67.                         ip.sendMessage(fipmessagevo);
  68.                 } else {
  69.                         ExceptionUtils.wrappBusinessException("会计平台没有启用,无法进行制证相关操作");
  70.                 }
  71.                
  72.         }
  73.         
  74.         /**
  75.          * 判断会计平台是否启用
  76.          *
  77.          * @param pk_group
  78.          * @throws BusinessException
  79.          */
  80.         public static boolean isFIPEnable(String pk_group) throws BusinessException {
  81.                 return isEnable(pk_group, "1017");
  82.         }

  83.         /**
  84.          * 调用启用模块API
  85.          *
  86.          * @param pk_group
  87.          *            集团
  88.          * @param funcode
  89.          *            功能节点 数据来源于dap_dapsystem
  90.          * @return
  91.          * @throws BusinessException
  92.          */
  93.         public static boolean isEnable(String pk_group, String funcode) throws BusinessException {
  94.                 try {
  95.                         return InitGroupQuery.isEnabled(pk_group == null ? InvocationInfoProxy.getInstance().getGroupId() : pk_group, funcode);
  96.                 } catch (BusinessException be) {
  97.                         Logger.error(be.getMessage(), be);
  98.                         throw new BusinessException("查询模块是否启用时异常");
  99.                 }
  100.         }
  101. }
复制代码



审批后也没报错(我查看了sendMessage()的返回值,是空),但是去会计平台-单据生成节点查询临时单据,就是没有我刚才审批通过的单据,轻问各位大佬,问题可能出在哪?
uec_fJQQ4jjnp4的头像 楼主
发表于 2020-8-5 20:27:10 | 显示全部楼层
问题已解决,原因是因为上面代码中

  1. messageinfo.setPk_billtype(pk_billtype);
复制代码


的参数正确的应该是单据类型编码,而非单据类型id
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部