pancy hace 2 años
padre
commit
39e9af5ac4

+ 3 - 0
ypff/META-INF/service.upm

@@ -25,5 +25,8 @@
         <component name="DeliveryClose" accessProtected="false"  remote="true" singleton="true" tx="NONE" supportAlias="true">
             <implementation>nc.bs.yp.impl.DeliveryCloseImpl</implementation>
         </component>
+        <component name="SaleOrderReWrite" accessProtected="false"  remote="true" singleton="true" tx="NONE" supportAlias="true">
+            <implementation>nc.bs.yp.impl.SaleOrderReWriteImpl</implementation>
+        </component>
     </public>
 </module>

+ 1 - 0
ypff/ypff/src/private/nc/bs/yp/impl/DeliveryCloseImpl.java

@@ -124,4 +124,5 @@ public class DeliveryCloseImpl extends BaseServlet implements IHttpServletAdapto
 		}
 		return null;
 	}
+	
 }

+ 627 - 0
ypff/ypff/src/private/nc/bs/yp/impl/SaleOrderReWriteImpl.java

@@ -0,0 +1,627 @@
+package nc.bs.yp.impl;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.dao.DAOException;
+import nc.bs.framework.adaptor.IHttpServletAdaptor;
+import nc.bs.framework.common.InvocationInfoProxy;
+import nc.bs.framework.common.NCLocator;
+import nc.bs.framework.server.ISecurityTokenCallback;
+import nc.bs.servlet.service.BaseServlet;
+import nc.itf.uap.IUAPQueryBS;
+import nc.itf.uap.pf.IPFBusiAction;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.log.NcLog;
+import nc.md.persist.framework.IMDPersistenceQueryService;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.lang.UFBoolean;
+import nc.vo.pub.lang.UFDate;
+import nc.vo.pub.lang.UFDouble;
+import nc.vo.pub.pf.workflow.IPFActionName;
+import nc.vo.so.m30.entity.SaleOrderBVO;
+import nc.vo.so.m30.entity.SaleOrderHVO;
+import nc.vo.so.m30.entity.SaleOrderVO;
+import nc.vo.so.m4331.entity.DeliveryVO;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+public class SaleOrderReWriteImpl extends BaseServlet implements IHttpServletAdaptor{
+	
+	
+	IUAPQueryBS iuap= (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
+	IMDPersistenceQueryService service = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
+	String pk_group = "";
+
+	@Override
+	public void doAction(HttpServletRequest req, HttpServletResponse resp)
+			throws ServletException, IOException {
+		// TODO 自动生成的方法存根
+		pk_group = this.qryGroup();
+		InvocationInfoProxy.getInstance().setGroupId(pk_group);
+		NCLocator.getInstance().lookup(ISecurityTokenCallback.class).token("NCSystem".getBytes(),"pfxx".getBytes());
+		String createStr = buildJson(req, resp, this.getClass().getName());
+		JSONObject json = JSONObject.fromObject(createStr);
+		String vbillcode = "";
+		Object csaleorderid = null;
+		PrintWriter out = resp.getWriter();
+		vbillcode = json.getString("vbillcode");
+		try {
+			checkJson(json);
+			String qrysql = "select csaleorderid from so_saleorder where nvl(dr,0)=0 and vbillcode = '"+vbillcode+"'";
+			csaleorderid = iuap.executeQuery(qrysql, new ColumnProcessor());
+			if(csaleorderid != null){
+				SaleOrderVO aggvo = (SaleOrderVO) service.queryBillOfNCObjectByPKWithDR(SaleOrderVO.class, csaleorderid.toString(), true).getContainmentObject();
+				String creviserid = SqlexecuteQuery("cuserid", "sm_user", "user_code", json.getString("creviserid"));
+				SaleOrderHVO headvo = aggvo.getParentVO();
+				SaleOrderBVO[] bodyvos = aggvo.getChildrenVO();
+				int oldsize = bodyvos.length;//原销售订单dr为0的行
+				ArrayList<String> rownos = new ArrayList<String>();//记录原销售订单行号
+				ArrayList<String> jsonrownos = new ArrayList<String>();//记录json所传行号
+				for(SaleOrderBVO bodyvo: bodyvos){
+					rownos.add(bodyvo.getCrowno());
+				}
+				headvo.setCreviserid(creviserid);//修订人
+				Object vrevisereason = json.getString("vrevisereason");
+				if(vrevisereason != null){
+					headvo.setVrevisereason(vrevisereason.toString());//修订理由
+				}
+				JSONArray oprepObjectBs = json.getJSONArray("goodslist");
+				
+				//判断是否有行号为空
+				for(int i = 0;i < oprepObjectBs.size();i++){
+					JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
+					Object crowno = oprepJsonObjectB.getString("crowno");
+					if(crowno == null){
+						String msg = "第"+i+"行行号为空!";
+						resp.getWriter().write(formatRSJsonData("失败",
+								vbillcode,msg).toString());
+						StringWriter stringWriter = new StringWriter();
+						//获取详细信息
+						NcLog.info("接口返回值提示:"+msg);
+						return;
+					}
+				}
+				
+				for(int i = 0;i < oprepObjectBs.size();i++){
+					JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
+					String crowno = oprepJsonObjectB.getString("crowno");
+					jsonrownos.add(crowno);
+				}
+				//根据原订单表体行和json传的的表体行大小进行判断
+				int newsize = oprepObjectBs.size();
+				if(newsize < oldsize){
+					SaleOrderBVO[] newvos = new SaleOrderBVO[newsize];
+					for(int i = 0;i < newsize;i++){
+						JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
+						String crowno = oprepJsonObjectB.getString("crowno");
+						if(!rownos.contains(crowno)){
+							String msg = "第"+i+"行行号不在原订单中,请检查!";
+							resp.getWriter().write(formatRSJsonData("失败",
+									vbillcode,msg).toString());
+							StringWriter stringWriter = new StringWriter();
+							//获取详细信息
+							NcLog.info("接口返回值提示:"+msg);
+							return;
+						}
+					}
+					for(SaleOrderBVO bodyvo : bodyvos){
+						String crowno = bodyvo.getCrowno();
+						if(!jsonrownos.contains(crowno)){
+							bodyvo.setStatus(3);
+							continue;
+						}
+						for(int i = 0;i < newsize;i++){
+							JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
+							String newcrowno = oprepJsonObjectB.getString("crowno");
+							if(newcrowno.equals(crowno)){
+								bodyvo.setPk_org(SqlexecuteQuery("pk_salesorg", "org_salesorg", "code", oprepJsonObjectB.getString("pk_org")));
+								bodyvo.setPk_group(SqlexecuteQuery("pk_group", "org_group", "code", oprepJsonObjectB.getString("pk_group")));
+								bodyvo.setCsendstockorgid(SqlexecuteQuery("pk_stockorg", "org_stockorg", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								bodyvo.setCsendstockorgvid(SqlexecuteQuery("pk_vid", "org_stockorg_v", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								bodyvo.setCsettleorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("csettleorgid")));
+								bodyvo.setCsettleorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("csettleorgid")));
+								bodyvo.setDbilldate(new UFDate(oprepJsonObjectB.getString("dbilldate")));
+								bodyvo.setCmaterialid(QryMaterial(oprepJsonObjectB.getString("cmaterialid")));
+								bodyvo.setCmaterialvid(QryMaterialv(oprepJsonObjectB.getString("cmaterialid")));
+								bodyvo.setCprojectid(SqlexecuteQuery("pk_project", "bd_project", "project_code", oprepJsonObjectB.getString("cprojectid")));
+								bodyvo.setCunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cunitid")));
+								bodyvo.setCastunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("castunitid")));
+								bodyvo.setNnum(new UFDouble(oprepJsonObjectB.getString("nnum")));
+								bodyvo.setNastnum(new UFDouble(oprepJsonObjectB.getString("nastnum")));
+								bodyvo.setVchangerate(oprepJsonObjectB.getString("vchangerate"));
+								bodyvo.setCqtunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cqtunitid")));
+								bodyvo.setNqtunitnum(new UFDouble(oprepJsonObjectB.getString("nqtunitnum")));
+								bodyvo.setVqtunitrate(oprepJsonObjectB.getString("vqtunitrate"));
+								bodyvo.setCtaxcodeid(SqlexecuteQuery("pk_taxcode", "bd_taxcode", "code", oprepJsonObjectB.getString("ctaxcodeid")));
+								bodyvo.setNtaxrate(new UFDouble(oprepJsonObjectB.getString("ntaxrate")));
+								bodyvo.setFtaxtypeflag(Integer.parseInt(oprepJsonObjectB.getString("ftaxtypeflag")));
+								bodyvo.setNqtorigtaxprice(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxprice")));
+								bodyvo.setNqtorigprice(new UFDouble(oprepJsonObjectB.getString("nqtorigprice")));
+								bodyvo.setNqtorigtaxnetprc(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxnetprc")));
+								bodyvo.setNqtorignetprice(new UFDouble(oprepJsonObjectB.getString("nqtorignetprice")));
+								bodyvo.setNorigtaxprice(new UFDouble(oprepJsonObjectB.getString("norigtaxprice")));
+								bodyvo.setNorigprice(new UFDouble(oprepJsonObjectB.getString("norigprice")));
+								bodyvo.setNorigtaxnetprice(new UFDouble(oprepJsonObjectB.getString("norigtaxnetprice")));
+								bodyvo.setNorignetprice(new UFDouble(oprepJsonObjectB.getString("norignetprice")));
+								bodyvo.setNtax(new UFDouble(oprepJsonObjectB.getString("ntax")));
+								bodyvo.setNcaltaxmny(new UFDouble(oprepJsonObjectB.getString("ncaltaxmny")));
+								bodyvo.setNorigmny(new UFDouble(oprepJsonObjectB.getString("norigmny")));
+								bodyvo.setNorigtaxmny(new UFDouble(oprepJsonObjectB.getString("norigtaxmny")));
+								bodyvo.setNqttaxprice(new UFDouble(oprepJsonObjectB.getString("nqttaxprice")));
+								bodyvo.setNqtprice(new UFDouble(oprepJsonObjectB.getString("nqtprice")));
+								bodyvo.setNqttaxnetprice(new UFDouble(oprepJsonObjectB.getString("nqttaxnetprice")));
+								bodyvo.setNqtnetprice(new UFDouble(oprepJsonObjectB.getString("nqtnetprice")));
+								bodyvo.setNtaxprice(new UFDouble(oprepJsonObjectB.getString("ntaxprice")));
+								bodyvo.setNprice(new UFDouble(oprepJsonObjectB.getString("nprice")));
+								bodyvo.setNtaxnetprice(new UFDouble(oprepJsonObjectB.getString("ntaxnetprice")));
+								bodyvo.setNnetprice(new UFDouble(oprepJsonObjectB.getString("nnetprice")));
+								bodyvo.setNmny(new UFDouble(oprepJsonObjectB.getString("nmny")));
+								bodyvo.setNtaxmny(new UFDouble(oprepJsonObjectB.getString("ntaxmny")));
+								bodyvo.setDsenddate(new UFDate(oprepJsonObjectB.getString("dsenddate")));
+								bodyvo.setDreceivedate(new UFDate(oprepJsonObjectB.getString("dreceivedate")));
+								bodyvo.setCreceivecustid(SqlexecuteQuery("pk_customer", "bd_customer", "code", oprepJsonObjectB.getString("creceivecustid")));
+								bodyvo.setCrececountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("crececountryid")));
+								bodyvo.setCsendcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("csendcountryid")));
+								bodyvo.setCtaxcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("ctaxcountryid")));
+								bodyvo.setFbuysellflag(Integer.parseInt(oprepJsonObjectB.getString("fbuysellflag")));
+								bodyvo.setVfirsttype(oprepJsonObjectB.getString("vfirsttype"));
+								bodyvo.setVfirstcode(oprepJsonObjectB.getString("vfirstcode"));
+								bodyvo.setVfirsttrantype((oprepJsonObjectB.getString("vfirsttrantype") == null ||oprepJsonObjectB.getString("vfirsttrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vfirsttrantype")));
+								bodyvo.setVfirstrowno(oprepJsonObjectB.getString("vfirstrowno"));
+								bodyvo.setCfirstid(oprepJsonObjectB.getString("cfirstid"));
+								bodyvo.setCfirstbid(oprepJsonObjectB.getString("cfirstbid"));
+								bodyvo.setVsrctype(oprepJsonObjectB.getString("vsrctype"));
+								bodyvo.setVsrccode(oprepJsonObjectB.getString("vsrccode"));
+								bodyvo.setVsrctrantype((oprepJsonObjectB.getString("vsrctrantype") == null ||oprepJsonObjectB.getString("vsrctrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vsrctrantype")));
+								bodyvo.setVsrcrowno(oprepJsonObjectB.getString("vsrcrowno"));
+								bodyvo.setCsrcid(oprepJsonObjectB.getString("csrcid"));
+								bodyvo.setCsrcbid(oprepJsonObjectB.getString("csrcbid"));
+								bodyvo.setCtrafficorgid(SqlexecuteQuery("pk_trafficorg", "org_trafficorg", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								bodyvo.setCtrafficorgvid(SqlexecuteQuery("pk_vid", "org_trafficorg_v", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								bodyvo.setCarorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("carorgid")));
+								bodyvo.setCarorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("carorgid")));
+								bodyvo.setCcurrencyid(SqlexecuteQuery("pk_currtype", "bd_currtype", "code", oprepJsonObjectB.getString("ccurrencyid")));
+								bodyvo.setCsaleorderid(csaleorderid.toString());
+								bodyvo.setFrowstatus(1);
+								break;
+							}
+						}
+					}
+					IPFBusiAction service = NCLocator.getInstance().lookup(IPFBusiAction.class);
+					service.processAction("REVISEWRITE",
+				            "30", null, aggvo, null, null);
+					out.print(formatRSJsonData("成功",vbillcode,"")); 
+				}
+				else if(newsize > oldsize){
+					SaleOrderBVO[] newvos = new SaleOrderBVO[newsize];
+					ArrayList<String> newrownos = new ArrayList<String>();//记录销售订单新行号
+					for(int i = 0;i < newsize;i++){
+						JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
+						String crowno = oprepJsonObjectB.getString("crowno");
+						if(!rownos.contains(crowno)){
+							newrownos.add(crowno);
+						}
+					}
+					/**
+					 * 原销售订单行处理
+					 */
+					for(int j = 0;j < oldsize;j++){
+						SaleOrderBVO newvo = new SaleOrderBVO();
+						newvo = bodyvos[j];
+						String oldcrowno = newvo.getCrowno();
+						for(int k = 0;k < newsize;k++){
+							JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(k);
+							String crowno = oprepJsonObjectB.getString("crowno");
+							if(oldcrowno.equals(crowno)){
+								newvo.setStatus(1);
+								newvo.setPk_org(SqlexecuteQuery("pk_salesorg", "org_salesorg", "code", oprepJsonObjectB.getString("pk_org")));
+								newvo.setPk_group(SqlexecuteQuery("pk_group", "org_group", "code", oprepJsonObjectB.getString("pk_group")));
+								newvo.setCsendstockorgid(SqlexecuteQuery("pk_stockorg", "org_stockorg", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								newvo.setCsendstockorgvid(SqlexecuteQuery("pk_vid", "org_stockorg_v", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								newvo.setCsettleorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("csettleorgid")));
+								newvo.setCsettleorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("csettleorgid")));
+								newvo.setDbilldate(new UFDate(oprepJsonObjectB.getString("dbilldate")));
+								newvo.setCmaterialid(QryMaterial(oprepJsonObjectB.getString("cmaterialid")));
+								newvo.setCmaterialvid(QryMaterialv(oprepJsonObjectB.getString("cmaterialid")));
+								newvo.setCprojectid(SqlexecuteQuery("pk_project", "bd_project", "project_code", oprepJsonObjectB.getString("cprojectid")));
+								newvo.setCunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cunitid")));
+								newvo.setCastunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("castunitid")));
+								newvo.setNnum(new UFDouble(oprepJsonObjectB.getString("nnum")));
+								newvo.setNastnum(new UFDouble(oprepJsonObjectB.getString("nastnum")));
+								newvo.setVchangerate(oprepJsonObjectB.getString("vchangerate"));
+								newvo.setNexchangerate(new UFDouble(oprepJsonObjectB.getString("nexchangerate")));
+								newvo.setCqtunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cqtunitid")));
+								newvo.setNqtunitnum(new UFDouble(oprepJsonObjectB.getString("nqtunitnum")));
+								newvo.setVqtunitrate(oprepJsonObjectB.getString("vqtunitrate"));
+								newvo.setCtaxcodeid(SqlexecuteQuery("pk_taxcode", "bd_taxcode", "code", oprepJsonObjectB.getString("ctaxcodeid")));
+								newvo.setNtaxrate(new UFDouble(oprepJsonObjectB.getString("ntaxrate")));
+								newvo.setFtaxtypeflag(Integer.parseInt(oprepJsonObjectB.getString("ftaxtypeflag")));
+								newvo.setNqtorigtaxprice(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxprice")));
+								newvo.setNqtorigprice(new UFDouble(oprepJsonObjectB.getString("nqtorigprice")));
+								newvo.setNqtorigtaxnetprc(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxnetprc")));
+								newvo.setNqtorignetprice(new UFDouble(oprepJsonObjectB.getString("nqtorignetprice")));
+								newvo.setNorigtaxprice(new UFDouble(oprepJsonObjectB.getString("norigtaxprice")));
+								newvo.setNorigprice(new UFDouble(oprepJsonObjectB.getString("norigprice")));
+								newvo.setNorigtaxnetprice(new UFDouble(oprepJsonObjectB.getString("norigtaxnetprice")));
+								newvo.setNorignetprice(new UFDouble(oprepJsonObjectB.getString("norignetprice")));
+								newvo.setNtax(new UFDouble(oprepJsonObjectB.getString("ntax")));
+								newvo.setNcaltaxmny(new UFDouble(oprepJsonObjectB.getString("ncaltaxmny")));
+								newvo.setNorigmny(new UFDouble(oprepJsonObjectB.getString("norigmny")));
+								newvo.setNorigtaxmny(new UFDouble(oprepJsonObjectB.getString("norigtaxmny")));
+								newvo.setNqttaxprice(new UFDouble(oprepJsonObjectB.getString("nqttaxprice")));
+								newvo.setNqtprice(new UFDouble(oprepJsonObjectB.getString("nqtprice")));
+								newvo.setNqttaxnetprice(new UFDouble(oprepJsonObjectB.getString("nqttaxnetprice")));
+								newvo.setNqtnetprice(new UFDouble(oprepJsonObjectB.getString("nqtnetprice")));
+								newvo.setNtaxprice(new UFDouble(oprepJsonObjectB.getString("ntaxprice")));
+								newvo.setNprice(new UFDouble(oprepJsonObjectB.getString("nprice")));
+								newvo.setNtaxnetprice(new UFDouble(oprepJsonObjectB.getString("ntaxnetprice")));
+								newvo.setNnetprice(new UFDouble(oprepJsonObjectB.getString("nnetprice")));
+								newvo.setNmny(new UFDouble(oprepJsonObjectB.getString("nmny")));
+								newvo.setNtaxmny(new UFDouble(oprepJsonObjectB.getString("ntaxmny")));
+								newvo.setDsenddate(new UFDate(oprepJsonObjectB.getString("dsenddate")));
+								newvo.setDreceivedate(new UFDate(oprepJsonObjectB.getString("dreceivedate")));
+								newvo.setCreceivecustid(SqlexecuteQuery("pk_customer", "bd_customer", "code", oprepJsonObjectB.getString("creceivecustid")));
+								newvo.setCrececountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("crececountryid")));
+								newvo.setCsendcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("csendcountryid")));
+								newvo.setCtaxcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("ctaxcountryid")));
+								newvo.setFbuysellflag(Integer.parseInt(oprepJsonObjectB.getString("fbuysellflag")));
+								newvo.setVfirsttype(oprepJsonObjectB.getString("vfirsttype"));
+								newvo.setVfirstcode(oprepJsonObjectB.getString("vfirstcode"));
+								newvo.setVfirsttrantype((oprepJsonObjectB.getString("vfirsttrantype") == null ||oprepJsonObjectB.getString("vfirsttrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vfirsttrantype")));
+								newvo.setVfirstrowno(oprepJsonObjectB.getString("vfirstrowno"));
+								newvo.setCfirstid(oprepJsonObjectB.getString("cfirstid"));
+								newvo.setCfirstbid(oprepJsonObjectB.getString("cfirstbid"));
+								newvo.setVsrctype(oprepJsonObjectB.getString("vsrctype"));
+								newvo.setVsrccode(oprepJsonObjectB.getString("vsrccode"));
+								newvo.setVsrctrantype((oprepJsonObjectB.getString("vsrctrantype") == null ||oprepJsonObjectB.getString("vsrctrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vsrctrantype")));
+								newvo.setVsrcrowno(oprepJsonObjectB.getString("vsrcrowno"));
+								newvo.setCsrcid(oprepJsonObjectB.getString("csrcid"));
+								newvo.setCsrcbid(oprepJsonObjectB.getString("csrcbid"));
+								newvo.setCtrafficorgid(SqlexecuteQuery("pk_trafficorg", "org_trafficorg", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								newvo.setCtrafficorgvid(SqlexecuteQuery("pk_vid", "org_trafficorg_v", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								newvo.setCarorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("carorgid")));
+								newvo.setCarorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("carorgid")));
+								newvo.setCcurrencyid(SqlexecuteQuery("pk_currtype", "bd_currtype", "code", oprepJsonObjectB.getString("ccurrencyid")));
+								newvo.setCsaleorderid(csaleorderid.toString());
+								newvo.setFrowstatus(1);
+								break;
+							}
+						}
+						newvos[j]=newvo;
+					}
+					/**
+					 * 新增行处理
+					 */
+					for(int i = 0;i < newrownos.size();i++){
+						SaleOrderBVO newvo = new SaleOrderBVO();
+						String newrowno = newrownos.get(i);
+						for(int k = 0;k < newsize;k++){
+							JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(k);
+							String crowno = oprepJsonObjectB.getString("crowno");
+							if(newrowno.equals(crowno)){
+								newvo.setStatus(2);
+								newvo.setPk_org(SqlexecuteQuery("pk_salesorg", "org_salesorg", "code", oprepJsonObjectB.getString("pk_org")));
+								newvo.setPk_group(SqlexecuteQuery("pk_group", "org_group", "code", oprepJsonObjectB.getString("pk_group")));
+								newvo.setCsendstockorgid(SqlexecuteQuery("pk_stockorg", "org_stockorg", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								newvo.setCsendstockorgvid(SqlexecuteQuery("pk_vid", "org_stockorg_v", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								newvo.setCsettleorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("csettleorgid")));
+								newvo.setCsettleorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("csettleorgid")));
+								newvo.setDbilldate(new UFDate(oprepJsonObjectB.getString("dbilldate")));
+								newvo.setCmaterialid(QryMaterial(oprepJsonObjectB.getString("cmaterialid")));
+								newvo.setCmaterialvid(QryMaterialv(oprepJsonObjectB.getString("cmaterialid")));
+								newvo.setCprojectid(SqlexecuteQuery("pk_project", "bd_project", "project_code", oprepJsonObjectB.getString("cprojectid")));
+								newvo.setCunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cunitid")));
+								newvo.setCastunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("castunitid")));
+								newvo.setNnum(new UFDouble(oprepJsonObjectB.getString("nnum")));
+								newvo.setNastnum(new UFDouble(oprepJsonObjectB.getString("nastnum")));
+								newvo.setVchangerate(oprepJsonObjectB.getString("vchangerate"));
+								newvo.setNexchangerate(new UFDouble(oprepJsonObjectB.getString("nexchangerate")));
+								newvo.setCqtunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cqtunitid")));
+								newvo.setNqtunitnum(new UFDouble(oprepJsonObjectB.getString("nqtunitnum")));
+								newvo.setVqtunitrate(oprepJsonObjectB.getString("vqtunitrate"));
+								newvo.setCtaxcodeid(SqlexecuteQuery("pk_taxcode", "bd_taxcode", "code", oprepJsonObjectB.getString("ctaxcodeid")));
+								newvo.setNtaxrate(new UFDouble(oprepJsonObjectB.getString("ntaxrate")));
+								newvo.setFtaxtypeflag(Integer.parseInt(oprepJsonObjectB.getString("ftaxtypeflag")));
+								newvo.setNqtorigtaxprice(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxprice")));
+								newvo.setNqtorigprice(new UFDouble(oprepJsonObjectB.getString("nqtorigprice")));
+								newvo.setNqtorigtaxnetprc(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxnetprc")));
+								newvo.setNqtorignetprice(new UFDouble(oprepJsonObjectB.getString("nqtorignetprice")));
+								newvo.setNorigtaxprice(new UFDouble(oprepJsonObjectB.getString("norigtaxprice")));
+								newvo.setNorigprice(new UFDouble(oprepJsonObjectB.getString("norigprice")));
+								newvo.setNorigtaxnetprice(new UFDouble(oprepJsonObjectB.getString("norigtaxnetprice")));
+								newvo.setNorignetprice(new UFDouble(oprepJsonObjectB.getString("norignetprice")));
+								newvo.setNtax(new UFDouble(oprepJsonObjectB.getString("ntax")));
+								newvo.setNcaltaxmny(new UFDouble(oprepJsonObjectB.getString("ncaltaxmny")));
+								newvo.setNorigmny(new UFDouble(oprepJsonObjectB.getString("norigmny")));
+								newvo.setNorigtaxmny(new UFDouble(oprepJsonObjectB.getString("norigtaxmny")));
+								newvo.setNqttaxprice(new UFDouble(oprepJsonObjectB.getString("nqttaxprice")));
+								newvo.setNqtprice(new UFDouble(oprepJsonObjectB.getString("nqtprice")));
+								newvo.setNqttaxnetprice(new UFDouble(oprepJsonObjectB.getString("nqttaxnetprice")));
+								newvo.setNqtnetprice(new UFDouble(oprepJsonObjectB.getString("nqtnetprice")));
+								newvo.setNtaxprice(new UFDouble(oprepJsonObjectB.getString("ntaxprice")));
+								newvo.setNprice(new UFDouble(oprepJsonObjectB.getString("nprice")));
+								newvo.setNtaxnetprice(new UFDouble(oprepJsonObjectB.getString("ntaxnetprice")));
+								newvo.setNnetprice(new UFDouble(oprepJsonObjectB.getString("nnetprice")));
+								newvo.setNmny(new UFDouble(oprepJsonObjectB.getString("nmny")));
+								newvo.setNtaxmny(new UFDouble(oprepJsonObjectB.getString("ntaxmny")));
+								newvo.setDsenddate(new UFDate(oprepJsonObjectB.getString("dsenddate")));
+								newvo.setDreceivedate(new UFDate(oprepJsonObjectB.getString("dreceivedate")));
+								newvo.setCreceivecustid(SqlexecuteQuery("pk_customer", "bd_customer", "code", oprepJsonObjectB.getString("creceivecustid")));
+								newvo.setCrececountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("crececountryid")));
+								newvo.setCsendcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("csendcountryid")));
+								newvo.setCtaxcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("ctaxcountryid")));
+								newvo.setFbuysellflag(Integer.parseInt(oprepJsonObjectB.getString("fbuysellflag")));
+								newvo.setVfirsttype(oprepJsonObjectB.getString("vfirsttype"));
+								newvo.setVfirstcode(oprepJsonObjectB.getString("vfirstcode"));
+								newvo.setVfirsttrantype((oprepJsonObjectB.getString("vfirsttrantype") == null ||oprepJsonObjectB.getString("vfirsttrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vfirsttrantype")));
+								newvo.setVfirstrowno(oprepJsonObjectB.getString("vfirstrowno"));
+								newvo.setCfirstid(oprepJsonObjectB.getString("cfirstid"));
+								newvo.setCfirstbid(oprepJsonObjectB.getString("cfirstbid"));
+								newvo.setVsrctype(oprepJsonObjectB.getString("vsrctype"));
+								newvo.setVsrccode(oprepJsonObjectB.getString("vsrccode"));
+								newvo.setVsrctrantype((oprepJsonObjectB.getString("vsrctrantype") == null ||oprepJsonObjectB.getString("vsrctrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vsrctrantype")));
+								newvo.setVsrcrowno(oprepJsonObjectB.getString("vsrcrowno"));
+								newvo.setCsrcid(oprepJsonObjectB.getString("csrcid"));
+								newvo.setCsrcbid(oprepJsonObjectB.getString("csrcbid"));
+								newvo.setNdiscountrate(new UFDouble(100));
+								newvo.setNdiscount(new UFDouble(0));
+								newvo.setNitemdiscountrate(new UFDouble(100));
+								newvo.setBtriatradeflag(UFBoolean.FALSE);
+								newvo.setCtrafficorgid(SqlexecuteQuery("pk_trafficorg", "org_trafficorg", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								newvo.setCtrafficorgvid(SqlexecuteQuery("pk_vid", "org_trafficorg_v", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								newvo.setCarorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("carorgid")));
+								newvo.setCarorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("carorgid")));
+								newvo.setCcurrencyid(SqlexecuteQuery("pk_currtype", "bd_currtype", "code", oprepJsonObjectB.getString("ccurrencyid")));
+								newvo.setCsaleorderid(csaleorderid.toString());
+								newvo.setFrowstatus(1);
+								newvo.setBarrangedflag(UFBoolean.FALSE);
+								newvo.setBbarsettleflag(UFBoolean.FALSE);
+								newvo.setBbcostsettleflag(UFBoolean.FALSE);
+								newvo.setBbinvoicendflag(UFBoolean.FALSE);
+								newvo.setBboutendflag(UFBoolean.FALSE);
+								newvo.setBbsendendflag(UFBoolean.FALSE);
+								break;
+							}
+						}
+						newvos[oldsize+i]=newvo;
+					}
+					aggvo.setChildrenVO(newvos);
+					IPFBusiAction service = NCLocator.getInstance().lookup(IPFBusiAction.class);
+					service.processAction("REVISEWRITE",
+				            "30", null, aggvo, null, null);
+					out.print(formatRSJsonData("成功",vbillcode,"")); 
+				}
+				else{
+					SaleOrderBVO[] newvos = new SaleOrderBVO[newsize];
+					for(int i = 0;i < newsize;i++){
+						JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(i);
+						String crowno = oprepJsonObjectB.getString("crowno");
+						if(!rownos.contains(crowno)){
+							String msg = "第"+i+"行行号不在原订单中,请检查!";
+							resp.getWriter().write(formatRSJsonData("失败",
+									vbillcode,msg).toString());
+							StringWriter stringWriter = new StringWriter();
+							//获取详细信息
+							NcLog.info("接口返回值提示:"+msg);
+							return;
+						}
+					}
+					for(int j = 0;j < newsize;j++){
+						SaleOrderBVO newvo = bodyvos[j];
+						String oldrowno = newvo.getCrowno();
+						for(int k = 0;k < oprepObjectBs.size();k++){
+							JSONObject oprepJsonObjectB = oprepObjectBs.getJSONObject(k);
+							String newrowno = oprepJsonObjectB.getString("crowno");
+							if(newrowno.equals(oldrowno)){
+								newvo.setStatus(1);
+								newvo.setPk_org(SqlexecuteQuery("pk_salesorg", "org_salesorg", "code", oprepJsonObjectB.getString("pk_org")));
+								newvo.setPk_group(SqlexecuteQuery("pk_group", "org_group", "code", oprepJsonObjectB.getString("pk_group")));
+								newvo.setCsendstockorgid(SqlexecuteQuery("pk_stockorg", "org_stockorg", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								newvo.setCsendstockorgvid(SqlexecuteQuery("pk_vid", "org_stockorg_v", "code", oprepJsonObjectB.getString("csendstockorgid")));
+								newvo.setCsettleorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("csettleorgid")));
+								newvo.setCsettleorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("csettleorgid")));
+								newvo.setDbilldate(new UFDate(oprepJsonObjectB.getString("dbilldate")));
+								newvo.setCmaterialid(QryMaterial(oprepJsonObjectB.getString("cmaterialid")));
+								newvo.setCmaterialvid(QryMaterialv(oprepJsonObjectB.getString("cmaterialid")));
+								newvo.setCprojectid(SqlexecuteQuery("pk_project", "bd_project", "project_code", oprepJsonObjectB.getString("cprojectid")));
+								newvo.setCunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cunitid")));
+								newvo.setCastunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("castunitid")));
+								newvo.setNnum(new UFDouble(oprepJsonObjectB.getString("nnum")));
+								newvo.setNastnum(new UFDouble(oprepJsonObjectB.getString("nastnum")));
+								newvo.setVchangerate(oprepJsonObjectB.getString("vchangerate"));
+								newvo.setNexchangerate(new UFDouble(oprepJsonObjectB.getString("nexchangerate")));
+								newvo.setCqtunitid(SqlexecuteQuery("pk_measdoc", "bd_measdoc", "code", oprepJsonObjectB.getString("cqtunitid")));
+								newvo.setNqtunitnum(new UFDouble(oprepJsonObjectB.getString("nqtunitnum")));
+								newvo.setVqtunitrate(oprepJsonObjectB.getString("vqtunitrate"));
+								newvo.setCtaxcodeid(SqlexecuteQuery("pk_taxcode", "bd_taxcode", "code", oprepJsonObjectB.getString("ctaxcodeid")));
+								newvo.setNtaxrate(new UFDouble(oprepJsonObjectB.getString("ntaxrate")));
+								newvo.setFtaxtypeflag(Integer.parseInt(oprepJsonObjectB.getString("ftaxtypeflag")));
+								newvo.setNqtorigtaxprice(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxprice")));
+								newvo.setNqtorigprice(new UFDouble(oprepJsonObjectB.getString("nqtorigprice")));
+								newvo.setNqtorigtaxnetprc(new UFDouble(oprepJsonObjectB.getString("nqtorigtaxnetprc")));
+								newvo.setNqtorignetprice(new UFDouble(oprepJsonObjectB.getString("nqtorignetprice")));
+								newvo.setNorigtaxprice(new UFDouble(oprepJsonObjectB.getString("norigtaxprice")));
+								newvo.setNorigprice(new UFDouble(oprepJsonObjectB.getString("norigprice")));
+								newvo.setNorigtaxnetprice(new UFDouble(oprepJsonObjectB.getString("norigtaxnetprice")));
+								newvo.setNorignetprice(new UFDouble(oprepJsonObjectB.getString("norignetprice")));
+								newvo.setNtax(new UFDouble(oprepJsonObjectB.getString("ntax")));
+								newvo.setNcaltaxmny(new UFDouble(oprepJsonObjectB.getString("ncaltaxmny")));
+								newvo.setNorigmny(new UFDouble(oprepJsonObjectB.getString("norigmny")));
+								newvo.setNorigtaxmny(new UFDouble(oprepJsonObjectB.getString("norigtaxmny")));
+								newvo.setNqttaxprice(new UFDouble(oprepJsonObjectB.getString("nqttaxprice")));
+								newvo.setNqtprice(new UFDouble(oprepJsonObjectB.getString("nqtprice")));
+								newvo.setNqttaxnetprice(new UFDouble(oprepJsonObjectB.getString("nqttaxnetprice")));
+								newvo.setNqtnetprice(new UFDouble(oprepJsonObjectB.getString("nqtnetprice")));
+								newvo.setNtaxprice(new UFDouble(oprepJsonObjectB.getString("ntaxprice")));
+								newvo.setNprice(new UFDouble(oprepJsonObjectB.getString("nprice")));
+								newvo.setNtaxnetprice(new UFDouble(oprepJsonObjectB.getString("ntaxnetprice")));
+								newvo.setNnetprice(new UFDouble(oprepJsonObjectB.getString("nnetprice")));
+								newvo.setNmny(new UFDouble(oprepJsonObjectB.getString("nmny")));
+								newvo.setNtaxmny(new UFDouble(oprepJsonObjectB.getString("ntaxmny")));
+								newvo.setDsenddate(new UFDate(oprepJsonObjectB.getString("dsenddate")));
+								newvo.setDreceivedate(new UFDate(oprepJsonObjectB.getString("dreceivedate")));
+								newvo.setCreceivecustid(SqlexecuteQuery("pk_customer", "bd_customer", "code", oprepJsonObjectB.getString("creceivecustid")));
+								newvo.setCrececountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("crececountryid")));
+								newvo.setCsendcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("csendcountryid")));
+								newvo.setCtaxcountryid(SqlexecuteQuery("pk_country", "bd_countryzone", "code", oprepJsonObjectB.getString("ctaxcountryid")));
+								newvo.setFbuysellflag(Integer.parseInt(oprepJsonObjectB.getString("fbuysellflag")));
+								newvo.setVfirsttype(oprepJsonObjectB.getString("vfirsttype"));
+								newvo.setVfirstcode(oprepJsonObjectB.getString("vfirstcode"));
+								newvo.setVfirsttrantype((oprepJsonObjectB.getString("vfirsttrantype") == null ||oprepJsonObjectB.getString("vfirsttrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vfirsttrantype")));
+								newvo.setVfirstrowno(oprepJsonObjectB.getString("vfirstrowno"));
+								newvo.setCfirstid(oprepJsonObjectB.getString("cfirstid"));
+								newvo.setCfirstbid(oprepJsonObjectB.getString("cfirstbid"));
+								newvo.setVsrctype(oprepJsonObjectB.getString("vsrctype"));
+								newvo.setVsrccode(oprepJsonObjectB.getString("vsrccode"));
+								newvo.setVsrctrantype((oprepJsonObjectB.getString("vsrctrantype") == null ||oprepJsonObjectB.getString("vsrctrantype").equals("")) ? "" : SqlexecuteQuery("pk_billtypeid", "bd_billtype", "pk_billtypecode", oprepJsonObjectB.getString("vsrctrantype")));
+								newvo.setVsrcrowno(oprepJsonObjectB.getString("vsrcrowno"));
+								newvo.setCsrcid(oprepJsonObjectB.getString("csrcid"));
+								newvo.setCsrcbid(oprepJsonObjectB.getString("csrcbid"));
+								newvo.setCtrafficorgid(SqlexecuteQuery("pk_trafficorg", "org_trafficorg", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								newvo.setCtrafficorgvid(SqlexecuteQuery("pk_vid", "org_trafficorg_v", "code", oprepJsonObjectB.getString("ctrafficorgid")));
+								newvo.setCarorgid(SqlexecuteQuery("pk_financeorg", "org_financeorg", "code", oprepJsonObjectB.getString("carorgid")));
+								newvo.setCarorgvid(SqlexecuteQuery("pk_vid", "org_financeorg_v", "code", oprepJsonObjectB.getString("carorgid")));
+								newvo.setCcurrencyid(SqlexecuteQuery("pk_currtype", "bd_currtype", "code", oprepJsonObjectB.getString("ccurrencyid")));
+								newvo.setCsaleorderid(csaleorderid.toString());
+								newvo.setFrowstatus(1);
+								break;
+							}
+						}
+						newvos[j] = newvo;
+					}
+					aggvo.setChildrenVO(newvos);
+					IPFBusiAction service = NCLocator.getInstance().lookup(IPFBusiAction.class);
+					service.processAction("REVISEWRITE",
+				            "30", null, aggvo, null, null);
+					out.print(formatRSJsonData("成功",vbillcode,"")); 
+				}
+				
+			}
+			} catch (Exception e) {
+			// TODO 自动生成的 catch 块
+			resp.getWriter().write(formatRSJsonData("失败",
+					vbillcode,e.getMessage().toString()).toString());
+			StringWriter stringWriter = new StringWriter();
+			e.printStackTrace(new PrintWriter(stringWriter));
+			//获取详细信息
+			String msg=stringWriter.getBuffer().toString();
+			NcLog.info("接口返回值提示:"+msg);
+		}
+	}
+	
+	
+	/**
+	 * 非空判断
+	 * @param json
+	 * @throws Exception
+	 */
+	private void checkJson(JSONObject json) throws Exception {
+		
+		StringBuffer mags = new StringBuffer();
+		Boolean empty = true;
+		
+		String vbillcode = "vbillcode";//单据号
+		String creviserid = "creviserid";//修订人
+		
+		String body = "goodslist";//表体
+		
+		String[] HeadKey = {vbillcode,creviserid};
+		
+		for (String as : HeadKey) {
+
+			if (json.getString(as).isEmpty()) {
+				empty = false;
+				mags.append("'" + as + "'");
+			}
+		}
+		
+		if(json.getString(body) == null){
+			empty = false;
+			mags.append(" 'goodslist'表体不存在! ");
+		}
+		
+		JSONArray oprepObjectBs = json.getJSONArray("goodslist");
+		if (oprepObjectBs == null || oprepObjectBs.size() == 0) {
+			throw new Exception("表体内容不可为空!");
+		}
+		
+		if (!empty) {
+			throw new Exception("以下字段不可为空:"+mags);
+		}
+	}
+	
+	/**
+	 * 获取集团id
+	 * @return
+	 */
+	private String qryGroup() {
+		String qrysql = "select pk_group from org_group where nvl(dr,0)=0 and rownum = 1";
+		String pk_group;
+		try {
+			pk_group = (String) iuap.executeQuery(qrysql, new ColumnProcessor());
+			return pk_group;
+		} catch (BusinessException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return null;
+	}
+	
+	/*
+	 * 数据库查询
+	 */
+	private String SqlexecuteQuery(String out,String table,String key,String value) throws BusinessException {
+		
+		String sql = "select "+out+" from "+table+" where "+key+" = '"+value+"' and nvl(dr,0)=0";
+		
+		Object object;
+		object = iuap.executeQuery(sql, new ColumnProcessor());
+		if (object==null) {
+			throw new DAOException("未查询到数据!请检查编码"+value+"是否正确!");
+		}
+		
+		return object.toString();
+	}
+
+	/**
+	 * 查询cmaterialid
+	 * @param code
+	 * @return
+	 * @throws BusinessException 
+	 */
+	private String QryMaterial(String code) throws BusinessException{
+		String sql = "select pk_source from bd_material_v where nvl(dr,0) = '0' and enablestate = '2' and code = '"+code+"'";
+		Object object;
+		object = iuap.executeQuery(sql, new ColumnProcessor());
+		if (object==null) {
+			throw new DAOException("未查询到数据!请检查编码"+code+"是否正确!");
+		}
+		
+		return object.toString();
+	}
+	
+	/**
+	 * 查询cmaterialvid
+	 * @param code
+	 * @return
+	 * @throws BusinessException 
+	 */
+	private String QryMaterialv(String code) throws BusinessException{
+		String sql = "select pk_material from bd_material where nvl(dr,0) = '0' and enablestate = '2' and latest = 'Y' and code = '"+code+"'";
+		Object object;
+		object = iuap.executeQuery(sql, new ColumnProcessor());
+		if (object==null) {
+			throw new DAOException("未查询到数据!请检查编码"+code+"是否正确!");
+		}
+		
+		return object.toString();
+	}
+}