diff --git a/main/java/shkd/repc/task/DobeDWorgRelationTask.java b/main/java/shkd/repc/task/DobeDWorgRelationTask.java index 6449044..09a3841 100644 --- a/main/java/shkd/repc/task/DobeDWorgRelationTask.java +++ b/main/java/shkd/repc/task/DobeDWorgRelationTask.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.exception.KDException; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; @@ -29,7 +30,9 @@ public class DobeDWorgRelationTask extends AbstractTask implements Plugin { private static Log log = LogFactory.getLog(DobeDWorgRelationTask.class); private static final String entityName = "qeug_recon_orgrelation";//供应链库 表名 tk_qeug_recon_orgrelation private static final String developerName = "qeug_recon_developer";//供应链库 表名 tk_qeug_recon_developer + private static final String supplierName = "resm_official_supplier";//正式供应商 表名 t_resm_supplier private static final String orgEntityName = "bos_org";//系统库 表名 t_ORG_ORG + private static final String bebankName = "bd_bebank";//系统库 表名 t_bd_bebank private static final String dw_menthod = "mdm_orgcorp"; @Override @@ -95,6 +98,7 @@ public class DobeDWorgRelationTask extends AbstractTask implements Plugin { String taxno = null; DynamicObject yworginfo = null; DynamicObject devepinfo = null; + DynamicObject suppinfo; for (int i = 0; i < detailsJson.size(); i++) { json_body = detailsJson.getJSONObject(i); @@ -155,6 +159,7 @@ public class DobeDWorgRelationTask extends AbstractTask implements Plugin { yworginfo.set("uniformsocialcreditcode", taxno);//业务单元-统一社会信用代码 SaveServiceHelper.update(yworginfo); } + //根据财务组织编号和名称判断甲方是否需要新增和修改 devepinfo = BusinessDataServiceHelper.loadSingle(developerName,new QFilter[]{new QFilter("number","=",companyNumber)}); if(devepinfo == null){ @@ -170,9 +175,41 @@ public class DobeDWorgRelationTask extends AbstractTask implements Plugin { devepinfo.set("name", companyName); SaveServiceHelper.update(devepinfo); } + //根据财务组织编号找到对应的正式供应商,只处理查到的供应商下银行账号数据 + suppinfo = BusinessDataServiceHelper.loadSingle(supplierName,new QFilter[]{new QFilter("number","=",companyNumber)}); + if(suppinfo != null){ + //银行信息分录 + DynamicObjectCollection bankdoc = suppinfo.getDynamicObjectCollection("entry_bank"); + boolean isneedupdate = true; + for (DynamicObject bankinfo : bankdoc) { + if(paynumber.equals(bankinfo.getString("bankaccount"))){ + //此账号已存在了,不需要同步 + isneedupdate = false; + break; + } + } + if(isneedupdate){ + DynamicObject bankinfo = bankdoc.addNew(); + bankinfo.set("bank",getBankInfo(paybank));//开户银行 + bankinfo.set("bankaccount",paynumber);//银行账号 + bankinfo.set("accountname",companyName);//账户名称 + bankinfo.set("currency",1L);//币别--默认人民币 + if(bankdoc.size() == 1){ + bankinfo.set("isdefault_bank",true);//默认银行 + } + suppinfo.set("taxregnumber",taxno);//税务登记号 + SaveServiceHelper.save(new DynamicObject[]{suppinfo}); + log.info("内部供应商银行账户处理成功"+companyNumber+companyName); + } + } } } + private DynamicObject getBankInfo(String bankname){ + //根据开户行名称获得对应的行名行号 + return BusinessDataServiceHelper.loadSingle(bebankName,new QFilter[]{new QFilter("name","=",bankname)}); + } + private boolean isNeedUpdate(DynamicObject orginfo,String companyNumber,String deptNumber,String paynumber,String taxno, String companyName,String deptName,String paybank){ if(!companyNumber.equals(orginfo.getString("qeug_companynumber"))){