后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发

后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发,第1张

后台审批功能 销售发货单 生成 销售出库单 java NC633 接口开发

我感觉有必要分享一下,历时2周搁置的功能 

应该有很多小伙伴都在找的问题  祝你们好运

关键代码

 集团id一定要填 , 两周的时间就是栽在这id上

try {
			
			baseDAO bd = new baseDAO();
			nc.vo.so.m4331.entity.DeliveryHVO deliveryHVO=new nc.vo.so.m4331.entity.DeliveryHVO();
			 //fstatusflag //1=自由,2=审批通过,3=冻结,4=关闭,7=审批中,8=审批不通过,5=失效,
			//获取销售发货单(4331) 进行审批  产生 销售出库单 (4C)
			deliveryHVO = (nc.vo.so.m4331.entity.DeliveryHVO) bd.executeQuery("select * from jpncdb1.so_delivery where dr=0 and vbillcode ='"+vsourcebillcode2+"'", new BeanProcessor(nc.vo.so.m4331.entity.DeliveryHVO.class));
			if (deliveryHVO != null){
				String so_delivery_pk=deliveryHVO.getAttributevalue("cdeliveryid").toString();//主键
				SuperVO[] deliveryBVO = HYPubBO_Client.queryByCondition(DeliveryBVO.class,  " cdeliveryid = '"+so_delivery_pk+"'");
				// 30   4331  4C
				//String flag2 = PfUtilTools.approveSilently("4331",so_delivery_pk, "Y", "批准","hcj",null);
				IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());
				//这是集团ID 一般每个表都有 随便找 pk_group 字段
				InvocationInfoProxy.getInstance().setGroupId("00013910000000000N4S"); //这个字段很重要
				AggregatedValueObject deliveryVO= new nc.vo.so.m4331.entity.DeliveryVO();
				deliveryVO.setParentVO(deliveryHVO);
				deliveryVO.setChildrenVO(deliveryBVO);
				
				HashMap map = new HashMap();
				map.put("notechecked", "notechecked");
				// 审批动作 ,审批单据类型 , null ,billvo,null, 环境  ,
				Object processAction = iIplatFormEntry.processAction("APPROVE", "4331", null, deliveryVO,null, map);
				
				
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		}

package nc.impl.jpncinterface;

import java.awt.event.ActionEvent;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Pattern;

import nc.bs.dao.baseDAO;
import nc.bs.dao.DAOException;
import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator;
import nc.bs.ic.general.businessevent.ICGeneralCommonEvent;
import nc.bs.pub.pf.PfUtilTools;
import nc.impl.pubapp.pattern.data.bill.BillQuery;
import nc.itf.uap.pf.IPFBusiAction;
import nc.itf.uap.pf.IplatFormEntry;
import nc.jdbc.framework.processor.BeanListProcessor;
import nc.jdbc.framework.processor.BeanProcessor;
import nc.jdbc.framework.processor.ColumnProcessor;
import nc.md.persist.framework.IMDPersistenceQueryService;
import nc.ui.so.m30.billui.action.SaleOrderMESApproveAction;
import nc.ui.so.m4331.billui.action.DeliveryApproveAction;
import nc.ui.trade.business.HYPubBO_Client;
import nc.vo.ic.m4c.entity.SaleOutBodyVO;
import nc.vo.ic.m4c.entity.SaleOutHeadVO;
import nc.vo.pu.m21.entity.OrderItemVO;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.SuperVO;
import nc.vo.pub.pf.workflow.IPFActionName;
import nc.vo.rmex.rmupload.deliverybill.DeliveryBillHVO;
import nc.vo.so.m4331.entity.DeliveryBVO;
import nc.vo.so.m4331.entity.DeliveryVO;


import org.apache.commons.lang3.StringUtils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class GetIcSaleout {
	
	

	//库存销售出库单
	public String getExecute(String operation,String orderform){
		String resultstr=null; 
		if (operation.equals("Insert")){
			//插入
			if(isJsonObject(orderform)){//验证入参
				resultstr = insert(operation, orderform);
			}else{
				JSonObject backinfojson=new JSonObject();
				backinfojson.put("$successful", "N");
				backinfojson.put("sendresult", "JSON格式错误");
				resultstr=backinfojson.toString();
			}
		}else if (operation.equals("Update")){
			//修改
			resultstr=update(operation, orderform);
			
		}else if (operation.equals("Delete")){
			//删除
			resultstr=delete(operation, orderform);
			
		}else if (operation.equals("Search")){
			//查询
			resultstr = search(operation, orderform);
			
		}else {
			
			JSonObject backinfojson=new JSonObject();
			backinfojson.put("$successful", "N");
			backinfojson.put("sendresult", "未开放!");
			resultstr=backinfojson.toString();
		}
		
		return resultstr;
	}
	
	
	public String insert(String operation,String orderform){
		
		JSonObject orderjson = JSON.parseObject(orderform);
		StringBuffer xml_sb=new StringBuffer();
		//String vbillcode = orderjson.getString("vbillcode");//单
		String vsourcebillcode2 = orderjson.getString("vsourcebillcode");//销售发货单号
		
		
		
		//String flag1 = PfUtilTools.approveSilently("交易类型编码或单据类型",主表主键, "是否通过", 审批批语, "",用户组, "动作");
		

		try {
			
			baseDAO bd = new baseDAO();
			nc.vo.so.m4331.entity.DeliveryHVO deliveryHVO=new nc.vo.so.m4331.entity.DeliveryHVO();
			//nc.vo.so.m4331.entity.DeliveryBVO deliveryBVO[]=null;
			//List deliveryBVO=new ArrayList();
			 //fstatusflag //1=自由,2=审批通过,3=冻结,4=关闭,7=审批中,8=审批不通过,5=失效,
			//获取销售发货单(4331) 进行审批  产生 销售出库单 (4C)
			deliveryHVO = (nc.vo.so.m4331.entity.DeliveryHVO) bd.executeQuery("select * from jpncdb1.so_delivery where dr=0 and vbillcode ='"+vsourcebillcode2+"'", new BeanProcessor(nc.vo.so.m4331.entity.DeliveryHVO.class));
			if (deliveryHVO != null){
				String so_delivery_pk=deliveryHVO.getAttributevalue("cdeliveryid").toString();//主键
				//deliveryBVO[0] = (nc.vo.so.m4331.entity.DeliveryBVO) bd.executeQuery("select * from jpncdb1.so_delivery_b where dr=0 and cdeliveryid ='"+so_delivery_pk+"'", new BeanProcessor(nc.vo.so.m4331.entity.DeliveryBVO.class));
				SuperVO[] deliveryBVO = HYPubBO_Client.queryByCondition(DeliveryBVO.class,  " cdeliveryid = '"+so_delivery_pk+"'");
				//deliveryBVO=(List) bd.executeQuery("select * from jpncdb1.so_delivery_b where dr=0 and cdeliveryid ='"+so_delivery_pk+"'", new BeanListProcessor(DeliveryBVO.class));
				String[] users = {"hcj"};
				// 30   4331  4C
				//String flag2 = PfUtilTools.approveSilently("4331",so_delivery_pk, "Y", "批准","hcj",null);
				//String flag2 = PfUtilTools.approveSilently("4C-Cxx-001",so_delivery_pk, "Y", "", "APPROVE",null);
				//String flag2 = PfUtilTools.approveSilently("4331",so_delivery_pk,null, null, "APPROVE",null);
				//System.out.println(flag2);
				//IplatFormEntry iIplatFormEntry = NCLocator.getInstance().lookup(IplatFormEntry.class);
				IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance().lookup(IplatFormEntry.class.getName());
				InvocationInfoProxy.getInstance().setGroupId("00013910000000000N4S");
				AggregatedValueObject deliveryVO= new nc.vo.so.m4331.entity.DeliveryVO();
				 //deliveryVO
				 //nc.vo.so.m4331.entity.DeliveryVO
				 
				deliveryVO.setParentVO(deliveryHVO);
				deliveryVO.setChildrenVO(deliveryBVO);
				
				
				HashMap map = new HashMap();
				map.put("notechecked", "notechecked");
				Object processAction = iIplatFormEntry.processAction("APPROVE", "4331", null, deliveryVO,null, map);
				System.out.println(processAction);
				//流程平台动作处理 服务接口

				//destBill是aggvo
				
				
				//DeliveryBillHVO[] obj= (DeliveryBillHVO[]) ifbaction.processAction("WRITE", "4331", null, aggvo, null, null);
				
				//Object retObj = new PfUtilBO().processAction("APPROVE", "4331", "2005-05-30 12:23:44", null, billVo, userObj );
						
				
				
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		}
		
		
		
		
		String resultstr2 = ""; 
		JSonObject backinfojson2=new JSonObject();
		backinfojson2.put("$successful", "Y");
		backinfojson2.put("sendresult", "");
		resultstr2=backinfojson2.toString();
		boolean flag = true;
		if(flag){
			return resultstr2;
		}
		
		
		String pk_org = orderjson.getString("pk_orgcode"); //库存组织 10202 pk_orgcode
		String vtrantypecode = orderjson.getString("ctrantypecode"); //出入库类型编码 4C-Cxx-001 ctrantypecode
		String cwarehouseid = orderjson.getString("cwarehousecode"); //仓库 X06 cwarehousecode
		String cwhsmanagerid = orderjson.getString("cwhsmanagercode"); //库管员 08708 cwhsmanagercode
		String cbizid = orderjson.getString("cbizcode"); //业务员 0110 cbizcode
		String cdptvid  = orderjson.getString("cdptcode"); //部门 ""  cdptcode
		String ccustomerid = orderjson.getString("ccustomercode"); //订单客户 070204 ccustomercode
		//String ntotalnum = orderjson.getString("ntotalnum"); //总数量会自动计算
		String cfanaceorgoid = orderjson.getString("cfanaceorgcode"); //结算财务组织  100 cfanaceorgcode
		
		
		
		String cbiztype = orderjson.getString("cbiztype"); //业务流程 Cxx-001
		String dbilldate = orderjson.getString("dbilldate"); //单据日期 2021-09-07 08:33:49
		String trafficorgoid = orderjson.getString("trafficorgoid"); //物流组织 101
		String freplenishflag = orderjson.getString("freplenishflag");// 销售退货 N
		String boutretflag = orderjson.getString("boutretflag"); //销售退回 N
		String fbillflag = orderjson.getString("fbillflag"); //单据状态 2
		String vnote = orderjson.getString("vnote"); //备注
		String vdef2 = orderjson.getString("vdef2"); //表头自定义项2 02
		String creator = orderjson.getString("creator"); //创建人 hcj
		String billmaker = orderjson.getString("billmaker"); //制单人 hcj
		String csaleorgoid = orderjson.getString("csaleorgoid"); //销售组织 101
		String creceivfinorgoid = orderjson.getString("creceivfinorgoid"); //应收财务组织 100
		String ctrantypeid = orderjson.getString("ctrantypeid"); //出入库类型 4C-Cxx-001
		

		String creationtime = getDateStr(new Date(),"yyyy-MM-dd HH:mm:ss"); //制单日期
	
		//子表
		JSonArray body = (JSONArray) orderjson.get("body");
		StringBuffer body_sb=new StringBuffer();
		for (int i = 0;i 1 and vbillcode ='"+vbillcode+"'", new BeanProcessor(SaleOutHeadVO.class));
			} catch (Exception e1) {
				e1.printStackTrace();
			}
			
			if (saleOutHeadVO != null){
				pk=saleOutHeadVO.getAttributevalue("cgeneralhid").toString();
				if(StringUtils.isBlank(pk)){
					backinfojson.put("sendresult", "查询不到单据!");
					backinfojson.put("$successful", "N");
					
				}else{
					
					StringBuffer xml_sb=new StringBuffer();
					//String vbillcode = orderjson.getString("vbillcode");//单
					String pk_org = orderjson.getString("pk_orgcode"); //库存组织 10202 pk_orgcode
					String vtrantypecode = orderjson.getString("ctrantypecode"); //出入库类型编码 4C-Cxx-001 ctrantypecode
					String cwarehouseid = orderjson.getString("cwarehousecode"); //仓库 X06 cwarehousecode
					String cwhsmanagerid = orderjson.getString("cwhsmanagercode"); //库管员 08708 cwhsmanagercode
					String cbizid = orderjson.getString("cbizcode"); //业务员 0110 cbizcode
					String cdptvid  = orderjson.getString("cdptcode"); //部门 ""  cdptcode
					String ccustomerid = orderjson.getString("ccustomercode"); //订单客户 070204 ccustomercode
					//String ntotalnum = orderjson.getString("ntotalnum"); //总数量会自动计算
					String cfanaceorgoid = orderjson.getString("cfanaceorgcode"); //结算财务组织  100 cfanaceorgcode
					
					
					
					String cbiztype = orderjson.getString("cbiztype"); //业务流程 Cxx-001
					String dbilldate = orderjson.getString("dbilldate"); //单据日期 2021-09-07 08:33:49
					String trafficorgoid = orderjson.getString("trafficorgoid"); //物流组织 101
					String freplenishflag = orderjson.getString("freplenishflag");// 销售退货 N
					String boutretflag = orderjson.getString("boutretflag"); //销售退回 N
					String fbillflag = orderjson.getString("fbillflag"); //单据状态 2
					String vnote = orderjson.getString("vnote"); //备注
					String vdef2 = orderjson.getString("vdef2"); //表头自定义项2 02
					String creator = orderjson.getString("creator"); //创建人 hcj
					String billmaker = orderjson.getString("billmaker"); //制单人 hcj
					String csaleorgoid = orderjson.getString("csaleorgoid"); //销售组织 101
					String creceivfinorgoid = orderjson.getString("creceivfinorgoid"); //应收财务组织 100
					String ctrantypeid = orderjson.getString("ctrantypeid"); //出入库类型 4C-Cxx-001
					

					String creationtime = getDateStr(new Date(),"yyyy-MM-dd HH:mm:ss"); //制单日期
				
					//子表
					JSonArray body = (JSONArray) orderjson.get("body");
					StringBuffer body_sb=new StringBuffer();
					for (int i = 0;i 1 ";
				saleOutHeadVO = (SaleOutHeadVO) bd.executeQuery(sql, new BeanProcessor(SaleOutHeadVO.class));
			} catch (Exception e1) {
				e1.printStackTrace();
			}
			
			if (saleOutHeadVO != null){
				pk=saleOutHeadVO.getAttributevalue("cgeneralhid").toString();
				if(pk == null || "".equals(pk)){
					backinfojson.put("sendresult", "查询不到单据!");
					backinfojson.put("$successful", "N");
					
				}else{
					//单据状态
					if(saleOutHeadVO.getAttributevalue("fbillflag").toString().equals("2") || saleOutHeadVO.getAttributevalue("fbillflag").toString().equals("6")){
						//orderHeaderVO.setAttributevalue("dr", "1");
						saleOutHeadVO.setFbillflag(1);
						
						try {
							bd.updateVO(saleOutHeadVO);
						} catch (Exception e) {
							e.printStackTrace();
						}
						List orderItemVOList=new ArrayList();
						try {
							String sql="select * from ic_generalout_b where cgeneralhid = '"+pk+"' and dr=0 and fbillflag <> 1 ";
							orderItemVOList=(List) bd.executeQuery(sql, new BeanListProcessor(SaleOutBodyVO.class));
						} catch (Exception e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
						for (int i=0;i 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4971161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存