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){
		///4Y
		JSONObject 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);
				//head
				resultJson.put("vbillcode",vbillcode);
		
		    	//boyd
				List<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"));
			    	//body
			    	JSONObject 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", "无调拨出库单");
				}
				
				
			

祝你好运

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值