erp从ims中间表获取数据

This commit is contained in:
lihao 2025-10-05 11:17:53 +08:00
parent 13922b9a7f
commit 14a4a3cb8a
1 changed files with 66 additions and 8 deletions

View File

@ -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<Map<String,Object>> remain = (List<Map<String, Object>>) imsDao.executeQuery(sql, new MapListProcessor());
if (remain != null && remain.size() > 0) {
try{
List<PurchaseInVO> list = new ArrayList<PurchaseInVO>();
for (Map<String, Object> 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<PurchaseInVO> tool = new BillMaintainTool<PurchaseInVO>(
PurchaseInVO.class, ICBillType.PurchaseIn.getCode());
tool.insert(list.toArray(new PurchaseInVO[list.size()]));