diff --git a/uapbd/src/private/nc/bs/uapbd/bip/workplugin/ErpIaI2billFromGyImsPlugin.java b/uapbd/src/private/nc/bs/uapbd/bip/workplugin/ErpIaI2billFromGyImsPlugin.java index 24a5e238..0a3c3e01 100644 --- a/uapbd/src/private/nc/bs/uapbd/bip/workplugin/ErpIaI2billFromGyImsPlugin.java +++ b/uapbd/src/private/nc/bs/uapbd/bip/workplugin/ErpIaI2billFromGyImsPlugin.java @@ -15,11 +15,17 @@ import nc.vo.ia.mi2.entity.I2HeadVO; import nc.vo.ic.m45.entity.PurchaseInBodyVO; import nc.vo.ic.m45.entity.PurchaseInHeadVO; import nc.vo.ic.m45.entity.PurchaseInVO; +import nc.vo.ic.org.OrgInfoQuery; import nc.vo.pub.BusinessException; import nc.vo.pub.lang.UFDate; import nc.vo.pub.lang.UFDouble; import nc.vo.pubapp.pattern.exception.ExceptionUtils; +import nc.vo.scmpub.check.billvalidate.BillVOsCheckRule; import nc.vo.scmpub.res.billtype.ICBillType; +import nccloud.api.impl.ic.m45.check.CheckPurchaseInSaveValidator; +import nccloud.api.impl.ic.m45.fill.PurchaseInSaveFillValue; +import nccloud.openapi.ic.util.ICAPILocationVOUtils; +import nccloud.openapi.scmpub.pub.TransferCodeToPKTool; import org.eclipse.swt.internal.C; import java.util.ArrayList; @@ -41,6 +47,7 @@ public class ErpIaI2billFromGyImsPlugin implements IBackgroundWorkPlugin { List> remain = (List>) imsDao.executeQuery(sql, new MapListProcessor()); if (remain != null && remain.size() > 0) { + try{ List list = new ArrayList(); for (Map map : remain) { HYPubBO hy = new HYPubBO(); @@ -61,7 +68,7 @@ public class ErpIaI2billFromGyImsPlugin implements IBackgroundWorkPlugin { Object pk_org_v = hy.findColValue("org_stockorg_v", "pk_vid", "code = '"+map.get("pk_org")+"' "); - head.setPk_org((String) pk_org_v); // 对应字段pk_org_v + head.setPk_org_v((String) pk_org_v); // 对应字段pk_org_v Object busicode = hy.findColValue("bd_busitype", "pk_busitype", "busicode = '"+map.get("busicode")+"' "); @@ -107,9 +114,11 @@ public class ErpIaI2billFromGyImsPlugin implements IBackgroundWorkPlugin { head.setTaudittime(new UFDate(String.valueOf(map.get("taudittime"))) ); // 日期类型 } + map.put("cpayfinorgoid","C003"); Object cpayfinorgoid = hy.findColValue("org_financeorg", "pk_financeorg", " code = '"+map.get("cpayfinorgoid")+"' and dr='0' "); - - head.setCpayfinorgoid((String) cpayfinorgoid); + if(cpayfinorgoid !=null){ + head.setCpayfinorgoid((String) cpayfinorgoid); + } Object cfanaceorgoid = hy.findColValue("org_financeorg", "pk_financeorg", " code = '"+map.get("cfanaceorgoid")+"' and dr='0' "); @@ -118,7 +127,13 @@ public class ErpIaI2billFromGyImsPlugin implements IBackgroundWorkPlugin { Object cpurorgoid = hy.findColValue("org_purchaseorg", "pk_purchaseorg", " code = '"+map.get("cpurorgoid")+"' and dr='0' "); head.setCpurorgoid((String) cpurorgoid); - head.setCvendorvid((String) map.get("cvendorvid")); + + Object cvendorid = hy.findColValue("bd_supplier", "pk_supplier", " code = '"+map.get("cvendorvid")+"' and dr='0' "); + head.setCvendorid((String)cvendorid); + + Object cvendorvid = hy.findColValue("bd_supplier_v", "pk_supplier_v", " pk_supplier = '"+cvendorid+"' and dr='0' "); + + head.setCvendorvid((String)cvendorvid); head.setDmakedate(new UFDate(String.valueOf(map.get("dmakedate")))); // 日期类型 Object csendcountryid = hy.findColValue("bd_countryzone", "pk_country", " code = '"+"CN"+"' and dr='0' "); @@ -378,10 +393,10 @@ public class ErpIaI2billFromGyImsPlugin implements IBackgroundWorkPlugin { } // 供应商基本信息(查询结果非null时赋值) - String cvendorid = (String) hy1.findColValue("bd_supplierclass", "pk_supplierclass", + String cvendorid1 = (String) hy1.findColValue("bd_supplier", "pk_supplier", " code = '" + body.get("cvendorid") + "' and dr=0 "); - if (cvendorid != null) { - bodyVO.setCvendorid(cvendorid); + if (cvendorid1 != null) { + bodyVO.setCvendorid(cvendorid1); } list1.add(bodyVO); @@ -391,9 +406,52 @@ public class ErpIaI2billFromGyImsPlugin implements IBackgroundWorkPlugin { list.add(vo); } - try{ + + PurchaseInVO[] vos =list.toArray(new PurchaseInVO[list.size()]) ; // InsertBP insertBP=new InsertBP(); // insertBP.insert(list.toArray(new PurchaseInVO[list.size()])); + ICAPILocationVOUtils.setLocationVO(ICBillType.PurchaseIn.getCode(), vos); + // 1、传入数据基本非空校验 + BillVOsCheckRule checker = + new BillVOsCheckRule(new CheckPurchaseInSaveValidator()); + //2025年4月23日15点10分 采购入库单接口项目字段为波浪则清空 sdlizheng --start + for (PurchaseInVO vo : vos) { + PurchaseInBodyVO[] bodys = vo.getBodys(); + if (bodys != null && bodys.length > 0) { + String[] attributeNames = bodys[0].getAttributeNames(); + for (PurchaseInBodyVO body : bodys) { + for (String fildName : attributeNames) { + if (body.getAttributeValue(fildName) != null && "~".equals(body.getAttributeValue(fildName))) { + body.setAttributeValue(fildName, null); + } + } + } + } + + } + //2025年4月23日15点10分 采购入库单接口项目字段为波浪则清空 sdlizheng --end + //添加供应商和交易类型为空赋值 + + checker.check(vos); + + // 翻译货位 + ICAPILocationVOUtils.translate(vos); + + //begin没取到财务组织导致的报错,在这里给财务组织赋值为库存组织 +// for (PurchaseInVO vo : vos) { +// if (vo.getHead().getCfanaceorgoid() != null) { +// continue; +// } +// String cfinanceoid = (new OrgInfoQuery()).getFinanceOrgIDByCalBodyID(vo.getHead().getPk_org()); +// String cfinancevid = (new OrgInfoQuery()).getFinanceOrgVIDByCalBodyID(vo.getHead().getPk_org()); +// vo.getHead().setCfanaceorgoid(cfinanceoid); +// vo.getHead().setCfanaceorgvid(cfinancevid); +// } + //end + + // 3、其他数据填充 +// new PurchaseInSaveFillValue().setDefaultValue(vos); + BillMaintainTool tool = new BillMaintainTool( PurchaseInVO.class, ICBillType.PurchaseIn.getCode()); tool.insert(list.toArray(new PurchaseInVO[list.size()]));