diff --git a/dchange/META-INF/dchange.rest b/dchange/META-INF/dchange.rest
new file mode 100644
index 00000000..ff597290
--- /dev/null
+++ b/dchange/META-INF/dchange.rest
@@ -0,0 +1,6 @@
+
+
+	
+		
+	
+
diff --git a/dchange/src/public/nccloud/api/mmbd/dchangemanage/dchangemaster/DchangeMasterManageResources.java b/dchange/src/public/nccloud/api/mmbd/dchangemanage/dchangemaster/DchangeMasterManageResources.java
index c2db3384..c4d98621 100644
--- a/dchange/src/public/nccloud/api/mmbd/dchangemanage/dchangemaster/DchangeMasterManageResources.java
+++ b/dchange/src/public/nccloud/api/mmbd/dchangemanage/dchangemaster/DchangeMasterManageResources.java
@@ -12,6 +12,7 @@ import java.util.*;
 import java.util.Map.Entry;
 
 import nc.bs.dao.BaseDAO;
+import nc.bs.dao.DAOException;
 import nc.bs.trade.business.HYPubBO;
 import nc.bs.uapbd.util.MyHelper;
 import nc.itf.mmbd.dchange.dchangemaster.IDchangeMasterVOService;
@@ -20,10 +21,7 @@ import nc.jdbc.framework.processor.MapListProcessor;
 import nc.jdbc.framework.processor.MapProcessor;
 import nc.uif.pub.exception.UifException;
 import nc.util.mmf.framework.base.MMValueCheck;
-import nc.vo.dchange.dchange.DchangeMasterVO;
-import nc.vo.dchange.dchange.DchangeSlave0VO;
-import nc.vo.dchange.dchange.DchangeSlave1VO;
-import nc.vo.dchange.dchange.DchangeSlave2VO;
+import nc.vo.dchange.dchange.*;
 import nc.vo.mmpac.pickm.entity.AggPickmVO;
 import nc.vo.mmpps.mps0202.AggregatedPoVO;
 import nccloud.framework.service.ServiceLocator;
@@ -260,6 +258,17 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource {
 		JSONObject headJson = (JSONObject) json.get("dchangeMaster");
 //		BOM版本号-父项编码-子项编码-变更前数量-变更后数量
         String bomVersion = headJson.getString("bomVersion");
+
+  /*bom版本号等于销售订单号加行号*/
+		String[] s=bomVersion.split("\\+");
+		if(s.length!=2){
+			throw new NullPointerException("传入参数中BOM版本号格式错误!");
+		}
+		String so_saleorder=s[0];
+		String vrow=s[1];
+		// Object pk_material = hy.findColValue("bd_material", "pk_material", "code  = '"+pcode+"' and nvl(dr,0)=0  ");
+
+
 		String pcode=headJson.getString("pcode");
 		String ccode=headJson.getString("ccode");
 		UFDouble beforenum=new UFDouble(headJson.getString("beforenum")) ;
@@ -269,8 +278,12 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource {
 
 		Object cmrl = hy.findColValue("bd_material", "pk_material", "code  = '"+ccode+"' and nvl(dr,0)=0  ");
 
-		Object cbomid = hy.findColValue("bd_bom", "cbomid", "hcmaterialvid  = '"+pk_material+"' and hversion=‘"+bomVersion+"’ and nvl(dr,0)=0  ");
+		Object pmoid = hy.findColValue("cpickmid", "mm_pickm", "vfirstmocode  = '"+so_saleorder+"' and vfirstmorowcode=‘"+vrow+"’ and nvl(dr,0)=0  ");
 
+		Object cbomid = hy.findColValue("vbomversion", "mm_pickm", "cpickmid  = '"+pmoid+"'   and nvl(dr,0)=0  ");
+		if(null ==cbomid){
+			return null;
+		}
 
 		Object cpickmid=hy.findColValue("mm_pickm", "cpickmid", "cmaterialvid  = '"+pk_material+"' and vbomversion=‘"+cbomid+"’ and nvl(dr,0)=0  ");
 
@@ -288,13 +301,13 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource {
 			code.add(aggVOs.getParentVO().getVbillcode());
 			for (int j=0;j map = new HashMap<>();
-//				if(aggVOs.getChildrenVO()[j].getAttributeValue("cbmaterialvid").equals(cmrl)){
+				if(aggVOs.getChildrenVO()[j].getAttributeValue("cbmaterialvid").equals(cmrl)){
 					DchangeSlave0VO slave0VO=new DchangeSlave0VO();
 					slave0VO.setAfternum(afternum);
 					slave0VO.setCbmaterialvid((String) cmrl);
 					slave0VO.setBeforenum(beforenum);
 					list.add(slave0VO);
-//				}
+				}
 			}
 		}
 		dchangeMasterVO.setDchangeslave0_dchangeslave0(list.toArray(new DchangeSlave0VO[0]));
@@ -316,23 +329,51 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource {
 		List