From c4a24b683c4d9b1cbc6a9f0ab2369dcf9a3ddcd0 Mon Sep 17 00:00:00 2001 From: lihao Date: Tue, 14 Oct 2025 19:34:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dchange/META-INF/dchange.rest | 6 ++ .../DchangeMasterManageResources.java | 72 ++++++++++++++++--- 2 files changed, 68 insertions(+), 10 deletions(-) create mode 100644 dchange/META-INF/dchange.rest 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> mrpPlan=getMRPPlan(code); List list1=new ArrayList<>(); for (Map map : mrpPlan) { + if(!map.get("cmaterialvid").equals(cmrl)){ + continue; + } DchangeSlave1VO slave1VO=new DchangeSlave1VO(); slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum")); slave1VO.setCbmaterialvid((String) map.get("cmaterialvid")); - slave1VO.setMrpbillcode((String) map.get("mrpbillcode")); + slave1VO.setMrpbillcode((String) map.get("vbillcode")); list1.add(slave1VO); } dchangeMasterVO.setDchangeslave1_dchangeslave1(list1.toArray(new DchangeSlave1VO[0])); List list2=new ArrayList<>(); + List mrpbillcode=new ArrayList<>(); for (Map map : mrpPlan) { + if(!map.get("cmaterialvid").equals(cmrl)){ + continue; + } DchangeSlave2VO slave1VO=new DchangeSlave2VO(); slave1VO.setPlannum((UFDouble) map.get("nassaccpraynum")); slave1VO.setCbmaterialvid((String) map.get("cmaterialvid")); slave1VO.setMrpbillcode((String) map.get("mrpbillcode")); list2.add(slave1VO); + mrpbillcode.add((String) map.get("mrpbillcode")); } + dchangeMasterVO.setDchangeslave2_dchangeslave2(list2.toArray(new DchangeSlave2VO[0])); +//根据计划订单查询采购订单 + List> buyingreq=getbuyingreq(mrpbillcode); + List list3=new ArrayList<>(); + for (Map 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' "); headJson.put("pk_org", pk_org); DchangeMasterVO headVO = new DchangeMasterVO(); @@ -345,12 +386,23 @@ public class DchangeMasterManageResources extends AbstractNCCRestResource { return headVO; } -// 获取mrp计划订单 + + private List> getbuyingreq(List code) throws DAOException { + String placeholders = String.join(",", Collections.nCopies(code.size(), "?")); + String sql = " SELECT * from po_praybill_b WHERE vsourcecode IN (" + placeholders + ")"; + List> remain = (List>) new BaseDAO().executeQuery(sql, new MapListProcessor()); + + return remain; + + } + + // 获取mrp计划订单 private List> getMRPPlan(List codes) throws BusinessException { // 生成与codes数量匹配的占位符(如: ?, ?, ?) String placeholders = String.join(",", Collections.nCopies(codes.size(), "?")); String sql = " \t\tSELECT\n" + - "\tcmaterialvid,\n" + + "\tcmaterialvid," + + " vbillcode,\n" + "\tnassaccponum,\n" + "\tnassaccpraynum\n" + "FROM\n" +