NC63 后端通过单据执行动作 修改单据详细解读
生活随笔
收集整理的這篇文章主要介紹了
NC63 后端通过单据执行动作 修改单据详细解读
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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", "無調撥出庫單");}祝你好運
總結
以上是生活随笔為你收集整理的NC63 后端通过单据执行动作 修改单据详细解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】Yolov5_DeepSor
- 下一篇: Python数据结构与算法(二)--ti