我感觉有必要分享一下,历时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



