nc二次开发作为国内软件的短板 在此补充 给其他正在挠头的小伙伴
此次单据修改开发入坑一周 终于出坑
单据执行动作
Object processAction_update = iIplatFormEntry_a.processAction("WRITE", ic_transOutHVO.getVtrantypecode(), null, transOutVO_a,null, null);
一般修改的时候需要把vo的状态 status 设置为1
注意 单据类型
public String out(String operation,String orderform){///4YJSONObject resultJson=new JSONObject();JSONObject paramJson = JSON.parseObject(orderform);String vbillcode = paramJson.getString("vbillcode");//出库单好try {BaseDAO bd = new BaseDAO();nc.vo.ic.m4y.entity.TransOutHeadVO ic_transOutHVO = new nc.vo.ic.m4y.entity.TransOutHeadVO();//ic_transOutHVO = (nc.vo.ic.m4y.entity.TransOutHeadVO) bd.executeQuery("select * from ic_transout_h where dr=0 and vbillcode ='"+vbillcode+"'", new BeanProcessor(nc.vo.ic.m4y.entity.TransOutHeadVO.class));if (ic_transOutHVO != null){JSONArray bjsonarr = new JSONArray();String ic_transout_pk = ic_transOutHVO.getAttributeValue("cgeneralhid").toString();//主键//SuperVO[] ic_transOutBVO = HYPubBO_Client.queryByCondition(nc.vo.ic.m4y.entity.TransOutBodyVO.class, " cgeneralhid = '"+ic_transout_pk+"'");List<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transOutBList = (List<nc.vo.ic.m4y.entity.TransOutBodyVO>) bd.executeQuery("select * from ic_transout_b where dr=0 and cgeneralhid ='"+ic_transout_pk+"'", new BeanListProcessor(nc.vo.ic.m4y.entity.TransOutBodyVO.class));//给交换平台数据准备List<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transOutBList_new = new ArrayList<nc.vo.ic.m4y.entity.TransOutBodyVO>();JSONArray body = (JSONArray) paramJson.get("body");for (int j = 0;j<ic_transOutBList.size();j++) {nc.vo.ic.m4y.entity.TransOutBodyVO transOutBodyVO = ic_transOutBList.get(j);for (int i = 0;i<body.size();i++){JSONObject tmpb = body.getJSONObject(i);String crowno = tmpb.getString("crowno") ==null ?"":tmpb.getString("crowno"); // 行号if(transOutBodyVO.getCrowno().equals(crowno)){String nnum = tmpb.getString("nnum") ==null ?"":tmpb.getString("nnum"); //实发主数量nc.vo.ic.m4y.entity.TransOutBodyVO transOut_new = new nc.vo.ic.m4y.entity.TransOutBodyVO();transOut_new = transOutBodyVO;if(StringUtils.isNotBlank(nnum)){UFDouble d_nnum = new UFDouble(Double.parseDouble(nnum));transOut_new.setNnum(d_nnum);transOut_new.setNassistnum(d_nnum);transOut_new.setStatus(1);transOut_new.setDbizdate(new UFDate());//transOut_new.setTs(new UFDateTime());ic_transOutBList_new.add(transOut_new);}}}}try {IplatFormEntry iIplatFormEntry_a = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());InvocationInfoProxy.getInstance().setGroupId("00013910000000000N4S"); //这个字段很重要InvocationInfoProxy.getInstance().setUserId(ic_transOutHVO.getCreator());//用户nc.vo.ic.m4y.entity.TransOutBodyVO[] outsvo_a = new nc.vo.ic.m4y.entity.TransOutBodyVO[ic_transOutBList.size()];AggregatedValueObject transOutVO_a = new nc.vo.ic.m4y.entity.TransOutVO();ic_transOutHVO.setStatus(1);transOutVO_a.setParentVO(ic_transOutHVO);transOutVO_a.setChildrenVO(ic_transOutBList_new.toArray(outsvo_a));//调拨出库单 执行动作 ,单据类型 , null ,billvo,null, 环境 , WRITE PUSHOUTSAVE 推式保存(实收) 4Y-Cxx-002 vtrantypecode Object processAction_update = iIplatFormEntry_a.processAction("WRITE", ic_transOutHVO.getVtrantypecode(), null, transOutVO_a,null, null);System.out.println(processAction_update);} catch (Exception e1) {e1.printStackTrace();resultJson.put("$successful", "N");resultJson.put("sendresult", e1.getMessage());return resultJson.toString();}//开始签字nc.vo.ic.m4y.entity.TransOutBodyVO[] insvo = new nc.vo.ic.m4y.entity.TransOutBodyVO[ic_transOutBList.size()];List<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transInBList2 = (List<nc.vo.ic.m4y.entity.TransOutBodyVO>) bd.executeQuery("select * from ic_transout_b where dr=0 and cgeneralhid ='"+ic_transout_pk+"'", new BeanListProcessor(nc.vo.ic.m4y.entity.TransOutBodyVO.class));IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());//这是集团ID 一般每个表都有 随便找 pk_group 字段InvocationInfoProxy.getInstance().setGroupId("00013910000000000N4S"); //这个字段很重要AggregatedValueObject transOutVO= new nc.vo.ic.m4y.entity.TransOutVO();transOutVO.setParentVO(ic_transOutHVO);transOutVO.setChildrenVO(ic_transInBList2.toArray(insvo));HashMap map = new HashMap();map.put("notechecked", "notechecked");//签字动作 ,签字单据类型 , null ,billvo,null, 环境 ,Object processAction = iIplatFormEntry.processAction("SIGN", "4Y", null, transOutVO,null, map);//headresultJson.put("vbillcode",vbillcode);//boydList<nc.vo.ic.m4y.entity.TransOutBodyVO> ic_transinBList = (List<nc.vo.ic.m4y.entity.TransOutBodyVO>) bd.executeQuery("select * from ic_transout_b where dr=0 and cgeneralhid ='"+ic_transout_pk+"'", new BeanListProcessor(nc.vo.ic.m4y.entity.TransOutBodyVO.class));for (int i=0;i < ic_transinBList.size();i++){String crowno = (String) ic_transinBList.get(i).getAttributeValue("crowno") == null?"": ic_transinBList.get(i).getAttributeValue("crowno").toString() ;//行号//应收数量String nshouldassistnum = ic_transinBList.get(i).getAttributeValue("nshouldassistnum") == null?"": String.valueOf((UFDouble) ic_transinBList.get(i).getAttributeValue("nshouldassistnum"));//实收数量String nassistnum = ic_transinBList.get(i).getAttributeValue("nassistnum") == null?"": String.valueOf((UFDouble) ic_transinBList.get(i).getAttributeValue("nassistnum"));//bodyJSONObject bjson = new JSONObject();bjson.put("crowno",crowno);//行号bjson.put("nshouldassistnum",nshouldassistnum);//应收数量bjson.put("nassistnum",nassistnum);//实收数量bjsonarr.add(bjson);}if(null != ic_transinBList && ic_transinBList.size() > 0 ){resultJson.put("$successful", "Y");resultJson.put("sendresult", bjsonarr);}else{resultJson.put("$successful", "N");resultJson.put("sendresult", "无调拨出库单");}
祝你好运