From c304a7e58189dbc6a158d94374ccccdc20a0abf7 Mon Sep 17 00:00:00 2001 From: yuxueliang0813 <407010292@qq.com> Date: Thu, 20 Feb 2025 22:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/PayinfoChangeOperation.java | 4 +- .../java/shjh/jhzj7/fi/fi/utils/EsbUtils.java | 74 ++++++++++++------- .../jhzj7/fi/fi/webapi/CustomerControler.java | 8 ++ .../fi/fi/webapi/model/CustomerModel.java | 40 ++++++++++ 4 files changed, 99 insertions(+), 27 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayinfoChangeOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayinfoChangeOperation.java index 591adcb..2d12a3b 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayinfoChangeOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/PayinfoChangeOperation.java @@ -7,7 +7,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; /** - * 单据操作插件 + * 支付信息变更单据操作插件 */ public class PayinfoChangeOperation extends AbstractOperationServicePlugIn implements Plugin { @@ -24,7 +24,7 @@ public class PayinfoChangeOperation extends AbstractOperationServicePlugIn imple DynamicObject[] dos = e.getDataEntities(); DynamicObject prinfo = null; for (int i = 0; i < dos.length; i++) { - //TODO反审核操作之前系统未把info对象所有属性加载出来,尤其是二开的字段,需要在此处重新load一下 + //TODO 反审核操作之前系统未把info对象所有属性加载出来,尤其是二开的字段,需要在此处重新load一下 prinfo = BusinessDataServiceHelper.loadSingle(dos[i].getPkValue(),dos[i].getDataEntityType().getName()); if("".equals(prinfo.getString(""))){ e.setCancelMessage(prinfo.getString("billno")+"为费控推送的单据,不能发起收款信息变更"); diff --git a/main/java/shjh/jhzj7/fi/fi/utils/EsbUtils.java b/main/java/shjh/jhzj7/fi/fi/utils/EsbUtils.java index fc5ea8e..1e8351d 100644 --- a/main/java/shjh/jhzj7/fi/fi/utils/EsbUtils.java +++ b/main/java/shjh/jhzj7/fi/fi/utils/EsbUtils.java @@ -39,23 +39,22 @@ public class EsbUtils { //处理分配 public static void handleAssign(JSONArray companysJson, Map cusids, String entityName) { - if(companysJson == null){ + if(companysJson == null || cusids.isEmpty()){ return; } JSONObject json_body; String compnum; - String cusnumber = ""; + String cusnumber = "";//当前编号 + String firstnumber = "firstnumber";//初始化编号 + Long curid;//当前数据id DynamicObject compinfo; List dataList = new ArrayList<>(); List orgList = new ArrayList<>(); for (int i = 0; i < companysJson.size(); i++) { json_body = companysJson.getJSONObject(i); - if(i == 0){ - //初始化 - cusnumber = json_body.getString("code");//客户-供应商编号 - } + cusnumber = json_body.getString("code");//客户-供应商编号 compnum = json_body.getString("companynum");//公司编号 - if(EsbUtils.isEmpty(compnum) || "0".equals(json_body.getString("companystatus"))){ + if(EsbUtils.isEmpty(cusnumber) || EsbUtils.isEmpty(compnum) || "0".equals(json_body.getString("companystatus"))){ //公司编号为空 或者 公司层面使用状态-禁用的 不处理 continue; } @@ -64,49 +63,61 @@ public class EsbUtils { if(compinfo == null){ continue; } - if(cusnumber.equals(json_body.getString("code"))){ + if("firstnumber".equals(firstnumber)){ + //初始化,改变初始化值 + firstnumber = cusnumber; + orgList.add(compinfo.getLong("id")); + }else if(firstnumber.equals(cusnumber)){ //还是同一个客户 orgList.add(compinfo.getLong("id")); }else{ //另一个客户,先处理上一个客户的分配 if(!orgList.isEmpty()){ + curid = cusids.get(cusnumber); + if(curid == null){ + //当前编号对应的id不存在,即上一个数据没有保存成功 不处理分配,上一个组织数据清空,增加当前组织 + orgList.clear(); + orgList.add(compinfo.getLong("id")); + continue; + } dataList.clear(); - dataList.add(cusids.get(cusnumber)); + dataList.add(curid); BaseDataServiceHelper.batchAssignWithDetail(entityName,JhzjUtils.GROUPID,dataList,orgList); //处理完成后,清空组织列表 orgList.clear(); orgList.add(compinfo.getLong("id")); } - cusnumber = json_body.getString("code"); + firstnumber = cusnumber; + orgList.add(compinfo.getLong("id")); } } + curid = cusids.get(cusnumber); //考虑最后一个客户的分配情况 - if(!orgList.isEmpty()){ + if(!orgList.isEmpty() && curid != null){ dataList.clear(); - dataList.add(cusids.get(cusnumber)); + dataList.add(curid); BaseDataServiceHelper.batchAssignWithDetail(entityName,JhzjUtils.GROUPID,dataList,orgList); } } //处理取消分配 public static void handleUnAssign(JSONArray companysJson, Map cusids, String entityName) { - if(companysJson == null){ + if(companysJson == null || cusids.isEmpty()){ return; } JSONObject json_body; String compnum; - String cusnumber = ""; + String cusnumber = "";//当前编号 + String firstnumber = "firstnumber";//初始化编号 + Long curid;//当前数据id DynamicObject compinfo; Set dataList = new HashSet<>(); Set orgList = new HashSet<>(); for (int i = 0; i < companysJson.size(); i++) { json_body = companysJson.getJSONObject(i); - if(i == 0){ - //初始化 - cusnumber = json_body.getString("code");//客户-供应商编号 - } + cusnumber = json_body.getString("code");//客户-供应商编号 compnum = json_body.getString("companynum");//公司编号 - if(EsbUtils.isEmpty(compnum) || "1".equals(json_body.getString("companystatus"))){ + if(EsbUtils.isEmpty(cusnumber) || EsbUtils.isEmpty(compnum) || "1".equals(json_body.getString("companystatus"))){ //公司编号为空 或者 公司层面使用状态-启用的 不处理 continue; } @@ -115,26 +126,39 @@ public class EsbUtils { if(compinfo == null){ continue; } - if(cusnumber.equals(json_body.getString("code"))){ + if("firstnumber".equals(firstnumber)){ + //初始化,改变初始化值 + firstnumber = cusnumber; + orgList.add(compinfo.getLong("id")); + }else if(firstnumber.equals(cusnumber)){ //还是同一个客户 orgList.add(compinfo.getLong("id")); }else{ //另一个客户,先处理上一个客户的取消分配 if(!orgList.isEmpty()){ + curid = cusids.get(cusnumber); + if(curid == null){ + //当前编号对应的id不存在,即上一个数据没有保存成功 不处理取消分配,上一个组织数据清空,增加当前组织 + orgList.clear(); + orgList.add(compinfo.getLong("id")); + continue; + } dataList.clear(); - dataList.add(cusids.get(cusnumber)); + dataList.add(curid); BaseDataServiceHelper.cancelAssign(entityName,dataList,orgList); - //处理完成后,清空组织列表 + //处理完成后,清空上一个组织列表,增加当前组织 orgList.clear(); orgList.add(compinfo.getLong("id")); } - cusnumber = json_body.getString("code"); + firstnumber = cusnumber; + orgList.add(compinfo.getLong("id")); } } + curid = cusids.get(cusnumber); //考虑最后一个客户的取消分配情况 - if(!orgList.isEmpty()){ + if(!orgList.isEmpty() && curid != null){ dataList.clear(); - dataList.add(cusids.get(cusnumber)); + dataList.add(curid); BaseDataServiceHelper.cancelAssign(entityName,dataList,orgList); } } diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/CustomerControler.java b/main/java/shjh/jhzj7/fi/fi/webapi/CustomerControler.java index 74e0ac9..462f55b 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/CustomerControler.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/CustomerControler.java @@ -157,6 +157,9 @@ public class CustomerControler { //处理 客户组5 handleFive(customerfivesJson,currentCus.getDynamicObjectCollection("shjh_entry_five"),cusnumber); //TODO 银行信息 + if(!"M400".equals(type)){ + handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber); + } SaveServiceHelper.save(new DynamicObject[]{currentCus}); } cusids.put(cusnumber,currentSupId); @@ -186,8 +189,12 @@ public class CustomerControler { json_body = customerfivesJson.getJSONObject(i); if(cusnumber.equals(json_body.getString("code"))){ fiveinfo = doc_five.addNew(); + fiveinfo.set("shjh_channelnum",json_body.getString("channelnum"));//渠道编号 + fiveinfo.set("shjh_channelname",json_body.getString("channelname"));//渠道名称 + fiveinfo.set("shjh_salecompanynum",json_body.getString("salecompanynum"));//公司编号 fiveinfo.set("shjh_entryfive_number",json_body.getString("customerfivecode"));//编号 fiveinfo.set("shjh_entryfive_name",json_body.getString("customerfivename"));//名称 + fiveinfo.set("shjh_status",json_body.getString("customerfivestatus"));//状态 } } } @@ -196,6 +203,7 @@ public class CustomerControler { if(banksJson == null){ return; } + doc_bank.clear(); JSONObject json_body; DynamicObject bankinfo; DynamicObject bebankinfo; diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/model/CustomerModel.java b/main/java/shjh/jhzj7/fi/fi/webapi/model/CustomerModel.java index ca23d8c..4b7e02a 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/model/CustomerModel.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/model/CustomerModel.java @@ -183,6 +183,14 @@ public class CustomerModel implements Serializable { private String customerfivecode; @ApiParam(value="客户组5名称",position=3) private String customerfivename; + @ApiParam(value="分销渠道编号",position=4) + private String channelnum; + @ApiParam(value="分销渠道名称",position=5) + private String channelname; + @ApiParam(value="销售公司编号",position=6) + private String salecompanynum; + @ApiParam(value="客户组5使用状态",position=7) + private String customerfivestatus; public String getCode() { return code; @@ -207,6 +215,38 @@ public class CustomerModel implements Serializable { public void setCustomerfivename(String customerfivename) { this.customerfivename = customerfivename; } + + public String getChannelnum() { + return channelnum; + } + + public void setChannelnum(String channelnum) { + this.channelnum = channelnum; + } + + public String getChannelname() { + return channelname; + } + + public void setChannelname(String channelname) { + this.channelname = channelname; + } + + public String getSalecompanynum() { + return salecompanynum; + } + + public void setSalecompanynum(String salecompanynum) { + this.salecompanynum = salecompanynum; + } + + public String getCustomerfivestatus() { + return customerfivestatus; + } + + public void setCustomerfivestatus(String customerfivestatus) { + this.customerfivestatus = customerfivestatus; + } } @ApiModel