This commit is contained in:
		
							parent
							
								
									9bee99b80b
								
							
						
					
					
						commit
						c4a24b683c
					
				|  | @ -0,0 +1,6 @@ | ||||||
|  | <?xml version="1.0" encoding='gb2312'?> | ||||||
|  | <module> | ||||||
|  | 	<rest> | ||||||
|  | 		<resource classname="nccloud.api.mmbd.dchangemanage.dchangemaster.DchangeMasterManageResources"  exinfo=""/> | ||||||
|  | 	</rest> | ||||||
|  | </module> | ||||||
|  | @ -12,6 +12,7 @@ import java.util.*; | ||||||
| import java.util.Map.Entry; | import java.util.Map.Entry; | ||||||
| 
 | 
 | ||||||
| import nc.bs.dao.BaseDAO; | import nc.bs.dao.BaseDAO; | ||||||
|  | import nc.bs.dao.DAOException; | ||||||
| import nc.bs.trade.business.HYPubBO; | import nc.bs.trade.business.HYPubBO; | ||||||
| import nc.bs.uapbd.util.MyHelper; | import nc.bs.uapbd.util.MyHelper; | ||||||
| import nc.itf.mmbd.dchange.dchangemaster.IDchangeMasterVOService; | 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.jdbc.framework.processor.MapProcessor; | ||||||
| import nc.uif.pub.exception.UifException; | import nc.uif.pub.exception.UifException; | ||||||
| import nc.util.mmf.framework.base.MMValueCheck; | import nc.util.mmf.framework.base.MMValueCheck; | ||||||
| import nc.vo.dchange.dchange.DchangeMasterVO; | import nc.vo.dchange.dchange.*; | ||||||
| import nc.vo.dchange.dchange.DchangeSlave0VO; |  | ||||||
| import nc.vo.dchange.dchange.DchangeSlave1VO; |  | ||||||
| import nc.vo.dchange.dchange.DchangeSlave2VO; |  | ||||||
| import nc.vo.mmpac.pickm.entity.AggPickmVO; | import nc.vo.mmpac.pickm.entity.AggPickmVO; | ||||||
| import nc.vo.mmpps.mps0202.AggregatedPoVO; | import nc.vo.mmpps.mps0202.AggregatedPoVO; | ||||||
| import nccloud.framework.service.ServiceLocator; | import nccloud.framework.service.ServiceLocator; | ||||||
|  | @ -260,6 +258,17 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource { | ||||||
| 		JSONObject headJson = (JSONObject) json.get("dchangeMaster"); | 		JSONObject headJson = (JSONObject) json.get("dchangeMaster"); | ||||||
| //		BOM版本号-父项编码-子项编码-变更前数量-变更后数量 | //		BOM版本号-父项编码-子项编码-变更前数量-变更后数量 | ||||||
|         String bomVersion = headJson.getString("bomVersion"); |         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 pcode=headJson.getString("pcode"); | ||||||
| 		String ccode=headJson.getString("ccode"); | 		String ccode=headJson.getString("ccode"); | ||||||
| 		UFDouble beforenum=new UFDouble(headJson.getString("beforenum")) ; | 		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 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  "); | 		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()); | 			code.add(aggVOs.getParentVO().getVbillcode()); | ||||||
| 			for (int j=0;j<aggVOs.getChildrenVO().length;j++) { | 			for (int j=0;j<aggVOs.getChildrenVO().length;j++) { | ||||||
| 				Map<String,Object> map = new HashMap<>(); | 				Map<String,Object> map = new HashMap<>(); | ||||||
| //				if(aggVOs.getChildrenVO()[j].getAttributeValue("cbmaterialvid").equals(cmrl)){ | 				if(aggVOs.getChildrenVO()[j].getAttributeValue("cbmaterialvid").equals(cmrl)){ | ||||||
| 					DchangeSlave0VO slave0VO=new DchangeSlave0VO(); | 					DchangeSlave0VO slave0VO=new DchangeSlave0VO(); | ||||||
| 					slave0VO.setAfternum(afternum); | 					slave0VO.setAfternum(afternum); | ||||||
| 					slave0VO.setCbmaterialvid((String) cmrl); | 					slave0VO.setCbmaterialvid((String) cmrl); | ||||||
| 					slave0VO.setBeforenum(beforenum); | 					slave0VO.setBeforenum(beforenum); | ||||||
| 					list.add(slave0VO); | 					list.add(slave0VO); | ||||||
| //				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		dchangeMasterVO.setDchangeslave0_dchangeslave0(list.toArray(new DchangeSlave0VO[0])); | 		dchangeMasterVO.setDchangeslave0_dchangeslave0(list.toArray(new DchangeSlave0VO[0])); | ||||||
|  | @ -316,23 +329,51 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource { | ||||||
| 		List<Map<String,Object>> mrpPlan=getMRPPlan(code); | 		List<Map<String,Object>> mrpPlan=getMRPPlan(code); | ||||||
| 		List<DchangeSlave1VO> list1=new ArrayList<>(); | 		List<DchangeSlave1VO> list1=new ArrayList<>(); | ||||||
| 		for (Map<String,Object> map : mrpPlan) { | 		for (Map<String,Object> map : mrpPlan) { | ||||||
|  | 			if(!map.get("cmaterialvid").equals(cmrl)){ | ||||||
|  | 				continue; | ||||||
|  | 			} | ||||||
| 			DchangeSlave1VO slave1VO=new DchangeSlave1VO(); | 			DchangeSlave1VO slave1VO=new DchangeSlave1VO(); | ||||||
| 			slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum")); | 			slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum")); | ||||||
| 			slave1VO.setCbmaterialvid((String) map.get("cmaterialvid")); | 			slave1VO.setCbmaterialvid((String) map.get("cmaterialvid")); | ||||||
| 			slave1VO.setMrpbillcode((String) map.get("mrpbillcode")); | 			slave1VO.setMrpbillcode((String) map.get("vbillcode")); | ||||||
| 			list1.add(slave1VO); | 			list1.add(slave1VO); | ||||||
| 		} | 		} | ||||||
| 		dchangeMasterVO.setDchangeslave1_dchangeslave1(list1.toArray(new DchangeSlave1VO[0])); | 		dchangeMasterVO.setDchangeslave1_dchangeslave1(list1.toArray(new DchangeSlave1VO[0])); | ||||||
| 
 | 
 | ||||||
| 		List<DchangeSlave2VO> list2=new ArrayList<>(); | 		List<DchangeSlave2VO> list2=new ArrayList<>(); | ||||||
|  | 		List<String> mrpbillcode=new ArrayList<>(); | ||||||
| 		for (Map<String,Object> map : mrpPlan) { | 		for (Map<String,Object> map : mrpPlan) { | ||||||
|  | 			if(!map.get("cmaterialvid").equals(cmrl)){ | ||||||
|  | 				continue; | ||||||
|  | 			} | ||||||
| 			DchangeSlave2VO slave1VO=new DchangeSlave2VO(); | 			DchangeSlave2VO slave1VO=new DchangeSlave2VO(); | ||||||
| 			slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum")); | 			slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum")); | ||||||
| 			slave1VO.setCbmaterialvid((String) map.get("cmaterialvid")); | 			slave1VO.setCbmaterialvid((String) map.get("cmaterialvid")); | ||||||
| 			slave1VO.setMrpbillcode((String) map.get("mrpbillcode")); | 			slave1VO.setMrpbillcode((String) map.get("mrpbillcode")); | ||||||
| 			list2.add(slave1VO); | 			list2.add(slave1VO); | ||||||
|  | 			mrpbillcode.add((String) map.get("mrpbillcode")); | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
| 		dchangeMasterVO.setDchangeslave2_dchangeslave2(list2.toArray(new DchangeSlave2VO[0])); | 		dchangeMasterVO.setDchangeslave2_dchangeslave2(list2.toArray(new DchangeSlave2VO[0])); | ||||||
|  | //根据计划订单查询采购订单 | ||||||
|  | 		List<Map<String,Object>> buyingreq=getbuyingreq(mrpbillcode); | ||||||
|  | 		List<DchangeSlave3VO> list3=new ArrayList<>(); | ||||||
|  | 		for (Map<String,Object> map : buyingreq) { | ||||||
|  | 			if(!map.get("cmaterialvid").equals(cmrl)){ | ||||||
|  | 				continue; | ||||||
|  | 			} | ||||||
|  | 			DchangeSlave3VO slave1VO=new DchangeSlave3VO(); | ||||||
|  | //			slave1VO.setNewnum(new UFDouble((Double) map.get("nastnum")).add()); | ||||||
|  | 			slave1VO.setNewnum(afternum); | ||||||
|  | 			slave1VO.setPk_material((String) map.get("cmaterialvid")); | ||||||
|  | 			slave1VO.setParybillcode((String) map.get("mrpbillcode")); | ||||||
|  | 			list3.add(slave1VO); | ||||||
|  | //			mrpbillcode.add((String) map.get("mrpbillcode")); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		dchangeMasterVO.setDchangeslave3_dchangeslave3(list3.toArray(new DchangeSlave3VO[0])); | ||||||
| 		Object pk_org = hy.findColValue("org_orgs", "pk_org", "code  = '"+headJson.get("pk_org")+"' and nvl(dr,0)=0 and isbusinessunit='Y' "); | 		Object pk_org = hy.findColValue("org_orgs", "pk_org", "code  = '"+headJson.get("pk_org")+"' and nvl(dr,0)=0 and isbusinessunit='Y' "); | ||||||
| 		headJson.put("pk_org", pk_org); | 		headJson.put("pk_org", pk_org); | ||||||
| 		DchangeMasterVO headVO = new DchangeMasterVO(); | 		DchangeMasterVO headVO = new DchangeMasterVO(); | ||||||
|  | @ -345,12 +386,23 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource { | ||||||
| 
 | 
 | ||||||
| 		return headVO; | 		return headVO; | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	private List<Map<String, Object>> getbuyingreq(List<String> code) throws DAOException { | ||||||
|  | 		String placeholders = String.join(",", Collections.nCopies(code.size(), "?")); | ||||||
|  | 		String sql = "  SELECT * from  po_praybill_b WHERE vsourcecode IN (" + placeholders + ")"; | ||||||
|  | 		List<Map<String,Object>> remain = (List<Map<String, Object>>) new BaseDAO().executeQuery(sql, new MapListProcessor()); | ||||||
|  | 
 | ||||||
|  | 		return remain; | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	//	获取mrp计划订单 | 	//	获取mrp计划订单 | ||||||
| 	private List<Map<String,Object>> getMRPPlan(List<String> codes) throws BusinessException { | 	private List<Map<String,Object>> getMRPPlan(List<String> codes) throws BusinessException { | ||||||
| 		// 生成与codes数量匹配的占位符(如: ?, ?, ?) | 		// 生成与codes数量匹配的占位符(如: ?, ?, ?) | ||||||
| 		String placeholders = String.join(",", Collections.nCopies(codes.size(), "?")); | 		String placeholders = String.join(",", Collections.nCopies(codes.size(), "?")); | ||||||
| 		String sql = " \t\tSELECT\n" + | 		String sql = " \t\tSELECT\n" + | ||||||
| 				"\tcmaterialvid,\n" + | 				"\tcmaterialvid," + | ||||||
|  | 				"  vbillcode,\n" + | ||||||
| 				"\tnassaccponum,\n" + | 				"\tnassaccponum,\n" + | ||||||
| 				"\tnassaccpraynum\n" + | 				"\tnassaccpraynum\n" + | ||||||
| 				"FROM\n" + | 				"FROM\n" + | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue