接口优化调整
This commit is contained in:
parent
94438626f6
commit
e4fc50883e
|
|
@ -15,7 +15,7 @@ import java.net.URLEncoder;
|
|||
import java.util.Date;
|
||||
|
||||
public class JHSSOAuthHandler implements ThirdSSOAuthHandler {
|
||||
private static final String ssologinUrl = "https://ip/login.html";
|
||||
private static final String ssologinUrl = "https://www.baidu.com";
|
||||
private static final String client_id = "id";//应用注册ID 由认证系统提供
|
||||
private static final String client_secret = "secret";//应用注册密码 由认证系统提供
|
||||
|
||||
|
|
@ -67,6 +67,9 @@ public class JHSSOAuthHandler implements ThirdSSOAuthHandler {
|
|||
private String getWorkerNumber(HttpServletRequest hsrequest){
|
||||
//第二步:SSO认证系统会携带临时code浏览器重定向至应用方回调地址,直接从请求中获取code
|
||||
String tempCode = hsrequest.getParameter("code");
|
||||
if(StringUtils.isEmpty(tempCode)){
|
||||
return null;
|
||||
}
|
||||
//第三步:根据SSO颁发的code获取accessToken post请求 参数拼接在url上
|
||||
StringBuffer ssoURL = new StringBuffer();
|
||||
ssoURL.append(ssologinUrl);
|
||||
|
|
|
|||
|
|
@ -1,13 +1,18 @@
|
|||
package shjh.jhzj7.fi.fi.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.isc.util.script.encoding.Hash;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.basedata.BaseDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.*;
|
||||
|
||||
public class EsbUtils {
|
||||
//esb-人员、行政组织、成本中心、客商、会计科目、利润中心、客户组5接口工具类
|
||||
|
|
@ -21,6 +26,7 @@ public class EsbUtils {
|
|||
public static final Long CUSTOMERSTATUS = 1122390034075371520l;//客户状态 默认合格
|
||||
|
||||
public static final Long ACCTABLE = 1318154893474663424L;//科目表
|
||||
private static final String orgName = "bos_org";//系统库 表名 t_org_org
|
||||
|
||||
public static boolean isEmpty(String value) {
|
||||
return value == null || value.trim().length() <= 0;
|
||||
|
|
@ -31,6 +37,102 @@ public class EsbUtils {
|
|||
return null;
|
||||
}
|
||||
|
||||
//处理分配
|
||||
public static void handleAssign(JSONArray companysJson, Map<String, Long> cusids, String entityName) {
|
||||
JSONObject json_body;
|
||||
String compnum;
|
||||
String cusnumber = "";
|
||||
DynamicObject compinfo;
|
||||
List<Long> dataList = new ArrayList<>();
|
||||
List<Long> orgList = new ArrayList<>();
|
||||
for (int i = 0; i < companysJson.size(); i++) {
|
||||
json_body = companysJson.getJSONObject(i);
|
||||
if(i == 0){
|
||||
//初始化
|
||||
cusnumber = json_body.getString("code");//客户-供应商编号
|
||||
}
|
||||
compnum = json_body.getString("companynum");//公司编号
|
||||
if(EsbUtils.isEmpty(compnum) || "0".equals(json_body.getString("companystatus"))){
|
||||
//公司编号为空 或者 公司层面使用状态-禁用的 不处理
|
||||
continue;
|
||||
}
|
||||
//还原公司id
|
||||
compinfo = BusinessDataServiceHelper.loadSingleFromCache(orgName,"id,number",new QFilter[]{new QFilter("number","=",compnum)});
|
||||
if(compinfo == null){
|
||||
continue;
|
||||
}
|
||||
if(cusnumber.equals(json_body.getString("code"))){
|
||||
//还是同一个客户
|
||||
orgList.add(compinfo.getLong("id"));
|
||||
}else{
|
||||
//另一个客户,先处理上一个客户的分配
|
||||
if(!orgList.isEmpty()){
|
||||
dataList.clear();
|
||||
dataList.add(cusids.get(cusnumber));
|
||||
BaseDataServiceHelper.batchAssignWithDetail(entityName,JhzjUtils.GROUPID,dataList,orgList);
|
||||
//处理完成后,清空组织列表
|
||||
orgList.clear();
|
||||
orgList.add(compinfo.getLong("id"));
|
||||
}
|
||||
cusnumber = json_body.getString("code");
|
||||
}
|
||||
}
|
||||
//考虑最后一个客户的分配情况
|
||||
if(!orgList.isEmpty()){
|
||||
dataList.clear();
|
||||
dataList.add(cusids.get(cusnumber));
|
||||
BaseDataServiceHelper.batchAssignWithDetail(entityName,JhzjUtils.GROUPID,dataList,orgList);
|
||||
}
|
||||
}
|
||||
|
||||
//处理取消分配
|
||||
public static void handleUnAssign(JSONArray companysJson, Map<String, Long> cusids, String entityName) {
|
||||
JSONObject json_body;
|
||||
String compnum;
|
||||
String cusnumber = "";
|
||||
DynamicObject compinfo;
|
||||
Set<Long> dataList = new HashSet<>();
|
||||
Set<Long> orgList = new HashSet<>();
|
||||
for (int i = 0; i < companysJson.size(); i++) {
|
||||
json_body = companysJson.getJSONObject(i);
|
||||
if(i == 0){
|
||||
//初始化
|
||||
cusnumber = json_body.getString("code");//客户-供应商编号
|
||||
}
|
||||
compnum = json_body.getString("companynum");//公司编号
|
||||
if(EsbUtils.isEmpty(compnum) || "1".equals(json_body.getString("companystatus"))){
|
||||
//公司编号为空 或者 公司层面使用状态-启用的 不处理
|
||||
continue;
|
||||
}
|
||||
//还原公司id
|
||||
compinfo = BusinessDataServiceHelper.loadSingleFromCache(orgName,"id,number",new QFilter[]{new QFilter("number","=",compnum)});
|
||||
if(compinfo == null){
|
||||
continue;
|
||||
}
|
||||
if(cusnumber.equals(json_body.getString("code"))){
|
||||
//还是同一个客户
|
||||
orgList.add(compinfo.getLong("id"));
|
||||
}else{
|
||||
//另一个客户,先处理上一个客户的取消分配
|
||||
if(!orgList.isEmpty()){
|
||||
dataList.clear();
|
||||
dataList.add(cusids.get(cusnumber));
|
||||
BaseDataServiceHelper.cancelAssign(entityName,dataList,orgList);
|
||||
//处理完成后,清空组织列表
|
||||
orgList.clear();
|
||||
orgList.add(compinfo.getLong("id"));
|
||||
}
|
||||
cusnumber = json_body.getString("code");
|
||||
}
|
||||
}
|
||||
//考虑最后一个客户的取消分配情况
|
||||
if(!orgList.isEmpty()){
|
||||
dataList.clear();
|
||||
dataList.add(cusids.get(cusnumber));
|
||||
BaseDataServiceHelper.cancelAssign(entityName,dataList,orgList);
|
||||
}
|
||||
}
|
||||
|
||||
public static String getDateString(Date billDate){
|
||||
//将传入的日期类型格式化为字符串,如果传入日期为空,则返回当前时间
|
||||
//创建一个SimpleDateFormat对象,定义目标日期格式
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.drew.lang.annotations.NotNull;
|
|||
import kd.bos.api.client.ApiResult;
|
||||
import kd.bos.context.RequestContext;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiController;
|
||||
|
|
@ -16,7 +17,6 @@ import kd.bos.openapi.common.custom.annotation.ApiRequestBody;
|
|||
import kd.bos.openapi.common.result.CustomApiResult;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.DeleteServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import shjh.jhzj7.fi.fi.utils.EsbUtils;
|
||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||
|
|
@ -24,6 +24,8 @@ import shjh.jhzj7.fi.fi.webapi.model.CustomerModel;
|
|||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@ApiController(value = "CustomerControler",desc = "客户接口,自定义插件")
|
||||
public class CustomerControler {
|
||||
|
|
@ -31,6 +33,7 @@ public class CustomerControler {
|
|||
|
||||
private static final String cusTypeName = "bd_customergroup";//系统库 表名 t_bd_customergroup
|
||||
private static final String gdName = "bd_customergroupdetail";//系统库 客户分组 表名 t_bd_customergroupdetail
|
||||
private static final String bebankName = "bd_bebank";//系统库 行名行号 表名 t_bd_bebank
|
||||
private static final Log log = LogFactory.getLog(CustomerControler.class);
|
||||
private static final String apimenthod = "/customer_sync";
|
||||
|
||||
|
|
@ -41,7 +44,7 @@ public class CustomerControler {
|
|||
@ApiPostMapping(value = apimenthod, desc = "客户接口")
|
||||
public CustomApiResult<ApiResult> customer_sync (@NotNull @Valid @ApiRequestBody(value="入参json格式") CustomerModel bizParam) {
|
||||
|
||||
JSONObject json_obj = null;
|
||||
JSONObject json_obj;
|
||||
try{
|
||||
//解析入参,如果格式不正确,日志记录,并反馈esb
|
||||
json_obj = (JSONObject) JSON.toJSON(bizParam);
|
||||
|
|
@ -53,7 +56,10 @@ public class CustomerControler {
|
|||
}
|
||||
JSONArray itemsJson = new JSONArray();//返回值明细集合
|
||||
JSONObject itemInfo;//返回值明细对象
|
||||
JSONArray detailsJson = json_obj.getJSONArray("items");
|
||||
JSONArray detailsJson = json_obj.getJSONArray("items");//客户基本信息
|
||||
JSONArray banksJson = json_obj.getJSONArray("banks");//客户银行
|
||||
JSONArray companysJson = json_obj.getJSONArray("companys");//客户所属公司
|
||||
JSONArray customerfivesJson = json_obj.getJSONArray("customerfives");//客户组5
|
||||
String cusnumber;
|
||||
String cusname;
|
||||
String taxno;
|
||||
|
|
@ -64,6 +70,7 @@ public class CustomerControler {
|
|||
JSONObject json_body;
|
||||
Long currentSupId;
|
||||
DynamicObject suppliergroupdetail;
|
||||
Map<String, Long> cusids = new HashMap<>();//客户编号和ID对应关系
|
||||
|
||||
for (int i = 0; i < detailsJson.size(); i++) {
|
||||
json_body = detailsJson.getJSONObject(i);
|
||||
|
|
@ -72,7 +79,7 @@ public class CustomerControler {
|
|||
taxno = json_body.getString("taxno");
|
||||
type = json_body.getString("type");
|
||||
|
||||
if(EsbUtils.isEmpty(cusnumber) || EsbUtils.isEmpty(cusname) || EsbUtils.isEmpty(taxno) || EsbUtils.isEmpty(type)){
|
||||
if(EsbUtils.isEmpty(cusnumber) || EsbUtils.isEmpty(cusname) || EsbUtils.isEmpty(type)){
|
||||
log.error(String.format("客户接口入参为空异常:%s", json_body.toJSONString()));
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",cusnumber);
|
||||
|
|
@ -80,17 +87,18 @@ public class CustomerControler {
|
|||
itemsJson.add(itemInfo);
|
||||
continue;
|
||||
}
|
||||
custype = BusinessDataServiceHelper.loadSingleFromCache(cusTypeName,"id,number",new QFilter[]{new QFilter("number","=",type)});
|
||||
if(custype == null){
|
||||
log.error(String.format("客户分类未匹配:%s", json_body.toJSONString()));
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",cusnumber);
|
||||
itemInfo.put("error","客户分类未匹配");
|
||||
itemsJson.add(itemInfo);
|
||||
continue;
|
||||
}
|
||||
currentCus = BusinessDataServiceHelper.loadSingle(entityName,new QFilter[]{new QFilter("number","=",cusnumber)});
|
||||
if(currentCus == null){
|
||||
//判断客户分类
|
||||
custype = BusinessDataServiceHelper.loadSingleFromCache(cusTypeName,"id,number",new QFilter[]{new QFilter("number","=",type)});
|
||||
if(custype == null){
|
||||
log.error(String.format("客户分类未匹配:%s", json_body.toJSONString()));
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",cusnumber);
|
||||
itemInfo.put("error","客户分类未匹配");
|
||||
itemsJson.add(itemInfo);
|
||||
continue;
|
||||
}
|
||||
//根据编号找不到客户,则新增
|
||||
currentCus = BusinessDataServiceHelper.newDynamicObject(entityName);
|
||||
currentCus.set("number",cusnumber);
|
||||
|
|
@ -103,27 +111,44 @@ public class CustomerControler {
|
|||
currentCus.set("bizfunction",",1,2,3,4,");//业务职能 默认全选
|
||||
currentCus.set("createorg", JhzjUtils.GROUPID);//创建组织 默认为集团
|
||||
currentCus.set("org", JhzjUtils.GROUPID);//管理组织 默认为集团
|
||||
currentCus.set("ctrlstrategy","1");//控制策略 默认逐级分配
|
||||
currentCus.set("ctrlstrategy","1");//控制策略 默认逐级分配1 自由分配2
|
||||
currentCus.set("group",custype.getLong("id"));//客户分组
|
||||
currentCus.set("bitindex",1);//位图
|
||||
currentCus.set("customerstatus",EsbUtils.CUSTOMERSTATUS);//客户状态
|
||||
currentCus.set("name",cusname);//客户名称
|
||||
currentCus.set("tx_register_no",taxno);//税务登记号
|
||||
currentCus.set("societycreditcode",taxno);//统一社会信用代码
|
||||
currentCus.set("linkman",json_body.getString("contacts"));//联系人
|
||||
currentCus.set("bizpartner_phone",json_body.getString("telnum"));//联系电话
|
||||
//处理银行-新增-员工类客户不需要处理
|
||||
if(!"06".equals(type)){
|
||||
handleBank(banksJson,currentCus.getDynamicObjectCollection("entry_bank"),cusnumber);
|
||||
}
|
||||
currentSupId = ((DynamicObject) SaveServiceHelper.save(new DynamicObject[]{currentCus})[0]).getLong("id");
|
||||
//处理分类
|
||||
suppliergroupdetail = BusinessDataServiceHelper.newDynamicObject(gdName);
|
||||
suppliergroupdetail.set("createorg",JhzjUtils.GROUPID);//创建组织
|
||||
suppliergroupdetail.set("standard",EsbUtils.CUSTOMERSTAND);//客户分类标准
|
||||
suppliergroupdetail.set("group",custype.getLong("id"));//具体分类
|
||||
suppliergroupdetail.set("customer",currentSupId);//客户
|
||||
SaveServiceHelper.save(new DynamicObject[]{suppliergroupdetail});
|
||||
//保存成功后,处理masterid字段,不然不能进行分配动作
|
||||
}else{
|
||||
currentSupId = currentCus.getLong("id");
|
||||
currentCus.set("masterid",currentSupId);
|
||||
currentCus.set("name",cusname);//客户名称
|
||||
currentCus.set("tx_register_no",taxno);//税务登记号
|
||||
currentCus.set("societycreditcode",taxno);//统一社会信用代码
|
||||
currentCus.set("linkman",json_body.getString("contacts"));//联系人
|
||||
currentCus.set("bizpartner_phone",json_body.getString("telnum"));//联系电话
|
||||
SaveServiceHelper.save(new DynamicObject[]{currentCus});
|
||||
}
|
||||
currentCus.set("name",cusname);//客户名称
|
||||
currentCus.set("tx_register_no",taxno);//税务登记号
|
||||
currentCus.set("societycreditcode",taxno);//统一社会信用代码
|
||||
currentCus.set("linkman",json_body.getString("contacts"));//联系人
|
||||
currentCus.set("bizpartner_phone",json_body.getString("telnum"));//联系电话
|
||||
|
||||
currentSupId = ((DynamicObject) SaveServiceHelper.save(new DynamicObject[]{currentCus})[0]).getLong("id");
|
||||
//处理分类
|
||||
DeleteServiceHelper.delete(gdName,new QFilter[]{new QFilter("customer","=",currentSupId)});
|
||||
suppliergroupdetail = BusinessDataServiceHelper.newDynamicObject(gdName);
|
||||
suppliergroupdetail.set("createorg",JhzjUtils.GROUPID);//创建组织
|
||||
suppliergroupdetail.set("standard",EsbUtils.CUSTOMERSTAND);//客户分类标准
|
||||
suppliergroupdetail.set("group",custype.getLong("id"));//具体分类
|
||||
suppliergroupdetail.set("customer",currentSupId);//客户
|
||||
SaveServiceHelper.save(new DynamicObject[]{suppliergroupdetail});
|
||||
cusids.put(cusnumber,currentSupId);
|
||||
}
|
||||
//处理客户分配
|
||||
EsbUtils.handleAssign(companysJson, cusids, entityName);
|
||||
//处理客户取消分配
|
||||
EsbUtils.handleUnAssign(companysJson, cusids, entityName);
|
||||
|
||||
if(itemsJson.isEmpty()){
|
||||
EsbUtils.saveLog(apimenthod,"ESB",json_obj.toString(),null,true,"API");
|
||||
|
|
@ -133,4 +158,28 @@ public class CustomerControler {
|
|||
return CustomApiResult.fail("400","接口处理异常"+itemsJson.toJSONString());
|
||||
}
|
||||
}
|
||||
|
||||
private void handleBank(JSONArray banksJson,DynamicObjectCollection doc_bank,String cusnumber){
|
||||
JSONObject json_body;
|
||||
DynamicObject bankinfo;
|
||||
DynamicObject bebankinfo;
|
||||
for (int i = 0; i < banksJson.size(); i++) {
|
||||
json_body = banksJson.getJSONObject(i);
|
||||
if(cusnumber.equals(json_body.getString("code"))){
|
||||
bankinfo = doc_bank.addNew();
|
||||
bankinfo.set("bankaccount",json_body.getString("banknumber"));//银行账号
|
||||
bankinfo.set("accountname",json_body.getString("acctname"));//账户名称
|
||||
//根据详细分机银行 查找对应的行名行号
|
||||
bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,name",new QFilter[]{new QFilter("name","=",json_body.getString("bankname"))});
|
||||
if(bebankinfo != null){
|
||||
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
|
||||
}
|
||||
bankinfo.set("currency", JhzjUtils.CNY);//币别 默认人民币
|
||||
// bankinfo.set("isdefault_bank",1);
|
||||
}
|
||||
}
|
||||
if(!doc_bank.isEmpty()){
|
||||
doc_bank.get(0).set("isdefault_bank",1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||
import com.drew.lang.annotations.NotNull;
|
||||
import kd.bos.api.client.ApiResult;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.logging.Log;
|
||||
import kd.bos.logging.LogFactory;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiController;
|
||||
|
|
@ -15,9 +16,12 @@ import kd.bos.openapi.common.custom.annotation.ApiRequestBody;
|
|||
import kd.bos.openapi.common.result.CustomApiResult;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.permission.model.UserParam;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import kd.bos.servicehelper.user.UserServiceHelper;
|
||||
import shjh.jhzj7.fi.fi.utils.EsbUtils;
|
||||
import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
||||
import shjh.jhzj7.fi.fi.webapi.model.PersonModel;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
|
@ -32,6 +36,9 @@ public class PersonControler implements Serializable {
|
|||
private static final String entityName = "bos_user";//系统库 表名 t_sec_user
|
||||
private static final String orgName = "bos_org";//系统库 表名 t_org_org
|
||||
private static final String ccName = "bos_costcenter";//系统库 表名 t_bas_costcenter
|
||||
|
||||
private static final String cusEntityName = "bd_customer";//系统库 表名 T_BD_Customer
|
||||
private static final String bebankName = "bd_bebank";//系统库 行名行号 表名 t_bd_bebank
|
||||
private static final Log log = LogFactory.getLog(PersonControler.class);
|
||||
private static final String apimenthod = "/person_sync";
|
||||
|
||||
|
|
@ -90,7 +97,7 @@ public class PersonControler implements Serializable {
|
|||
for (int i = 0; i < detailsJson.size(); i++) {
|
||||
json_body = detailsJson.getJSONObject(i);
|
||||
number = json_body.getString("code");//工号,作为唯一值
|
||||
name = json_body.getString("hrisname");
|
||||
name = json_body.getString("hrisName");
|
||||
email = json_body.getString("email");
|
||||
phone = json_body.getString("phone1");
|
||||
deptid = json_body.getString("keyDeptDoc");//部门编号
|
||||
|
|
@ -192,18 +199,18 @@ public class PersonControler implements Serializable {
|
|||
UserServiceHelper.add(addList);
|
||||
//判断执行结果
|
||||
for (UserParam result : addList) {
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",result.getDataMap().get("number"));
|
||||
itemsJson.add(itemInfo);
|
||||
if (!result.isSuccess()) {
|
||||
handleResult = String.format("人员新增异常:%s", result.getMsg());
|
||||
log.error(handleResult);
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",result.getDataMap().get("number"));
|
||||
itemInfo.put("error",handleResult);
|
||||
itemsJson.add(itemInfo);
|
||||
}else{
|
||||
// itemInfo.put("status","1");
|
||||
// itemInfo.put("message","");
|
||||
//更新人员对应客户的银行信息
|
||||
|
||||
handlePersonForCustomer(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -212,18 +219,18 @@ public class PersonControler implements Serializable {
|
|||
UserServiceHelper.update(updateList);
|
||||
//判断执行结果
|
||||
for (UserParam result : updateList) {
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",result.getDataMap().get("number"));
|
||||
itemsJson.add(itemInfo);
|
||||
if (!result.isSuccess()) {
|
||||
handleResult = String.format("人员修改异常:%s", result.getMsg());
|
||||
log.error(handleResult);
|
||||
itemInfo = new JSONObject();
|
||||
itemInfo.put("code",result.getDataMap().get("number"));
|
||||
itemInfo.put("error",handleResult);
|
||||
itemsJson.add(itemInfo);
|
||||
}else{
|
||||
// itemInfo.put("status","1");
|
||||
// itemInfo.put("message","");
|
||||
//更新人员对应客户的银行信息
|
||||
|
||||
handlePersonForCustomer(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -240,4 +247,33 @@ public class PersonControler implements Serializable {
|
|||
}
|
||||
}
|
||||
|
||||
private void handlePersonForCustomer(UserParam ups){
|
||||
String cusnumber = (String) ups.getDataMap().get("number");//客户编号-即是 人员的编号
|
||||
DynamicObject currentCus = BusinessDataServiceHelper.loadSingle(cusEntityName,new QFilter[]{new QFilter("number","=",cusnumber)});
|
||||
if(currentCus != null){
|
||||
String cusname = (String) ups.getDataMap().get("name");//姓名
|
||||
String skyh = (String) ups.getDataMap().get("shjh_skyh");//收款银行
|
||||
String xxyh = (String) ups.getDataMap().get("shjh_xxyh");//详细分机银行
|
||||
String acctnum = (String) ups.getDataMap().get("shjh_acctnum");//收款账号
|
||||
DynamicObjectCollection doc_bank = currentCus.getDynamicObjectCollection("entry_bank");
|
||||
DynamicObject bankinfo;
|
||||
if(doc_bank.isEmpty()){
|
||||
bankinfo = doc_bank.addNew();
|
||||
}else{
|
||||
bankinfo = doc_bank.get(0);
|
||||
}
|
||||
bankinfo.set("bankaccount",acctnum);//银行账号
|
||||
bankinfo.set("accountname",cusname);//账户名称
|
||||
//根据详细分机银行 查找对应的行名行号
|
||||
DynamicObject bebankinfo = BusinessDataServiceHelper.loadSingleFromCache(bebankName,"id,name",new QFilter[]{new QFilter("name","=",xxyh)});
|
||||
if(bebankinfo != null){
|
||||
bankinfo.set("bank",bebankinfo.getLong("id"));//开户银行-行名行号 根据入参查找
|
||||
}
|
||||
bankinfo.set("currency", JhzjUtils.CNY);//币别 默认人民币
|
||||
bankinfo.set("isdefault_bank",1);
|
||||
SaveServiceHelper.save(new DynamicObject[]{currentCus});
|
||||
}
|
||||
//客户还未生成,需要在客户生成时,从人员处获取银行账号
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import kd.bos.openapi.common.custom.annotation.ApiRequestBody;
|
|||
import kd.bos.openapi.common.result.CustomApiResult;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.basedata.BaseDataServiceHelper;
|
||||
import kd.bos.servicehelper.operation.DeleteServiceHelper;
|
||||
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||
import shjh.jhzj7.fi.fi.utils.EsbUtils;
|
||||
|
|
@ -25,9 +24,7 @@ import shjh.jhzj7.fi.fi.utils.JhzjUtils;
|
|||
import shjh.jhzj7.fi.fi.webapi.model.SupplierModel;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
@ApiController(value = "SupplierControler",desc = "供应商接口,自定义插件")
|
||||
public class SupplierControler {
|
||||
|
|
@ -60,6 +57,8 @@ public class SupplierControler {
|
|||
JSONArray itemsJson = new JSONArray();//返回值明细集合
|
||||
JSONObject itemInfo;//返回值明细对象
|
||||
JSONArray detailsJson = json_obj.getJSONArray("items");
|
||||
JSONArray banksJson = json_obj.getJSONArray("banks");//供应商银行
|
||||
JSONArray companysJson = json_obj.getJSONArray("companys");//供应商所属公司
|
||||
String supnumber;
|
||||
String supname;
|
||||
String taxno;
|
||||
|
|
@ -67,18 +66,16 @@ public class SupplierControler {
|
|||
String bankcode;
|
||||
DynamicObject currentSup;
|
||||
DynamicObject suptype;
|
||||
List<Long> dataList = new ArrayList<>();
|
||||
List<Long> orgList = new ArrayList<>();
|
||||
JSONObject json_body;
|
||||
// DynamicObjectCollection doc_type;
|
||||
DynamicObjectCollection doc_bank;
|
||||
DynamicObject bankinfo;
|
||||
DynamicObject bebankinfo;
|
||||
JSONArray detailsBankJson;
|
||||
JSONObject json_bank;
|
||||
Long currentSupId;
|
||||
DynamicObject suppliergroupdetail;
|
||||
DynamicObject parterInfo;
|
||||
// DynamicObject parterInfo;
|
||||
Map<String, Long> cusids = new HashMap<>();//供应商编号和ID对应关系
|
||||
for (int i = 0; i < detailsJson.size(); i++) {
|
||||
json_body = detailsJson.getJSONObject(i);
|
||||
supnumber = json_body.getString("code");
|
||||
|
|
@ -137,9 +134,11 @@ public class SupplierControler {
|
|||
//处理银行信息-分表
|
||||
doc_bank = currentSup.getDynamicObjectCollection("entry_bank");
|
||||
doc_bank.clear();
|
||||
detailsBankJson = json_body.getJSONArray("banks");
|
||||
for (int j = 0; j < detailsBankJson.size(); j++) {
|
||||
json_bank = detailsBankJson.getJSONObject(j);
|
||||
for (int j = 0; j < banksJson.size(); j++) {
|
||||
json_bank = banksJson.getJSONObject(j);
|
||||
if(!supnumber.equals(json_bank.getString("code"))){
|
||||
continue;
|
||||
}
|
||||
bankcode = json_bank.getString("bankcode");
|
||||
if(EsbUtils.isEmpty(bankcode)){
|
||||
log.error(String.format("供应商行名行号为空异常:%s", json_bank.toJSONString()));
|
||||
|
|
@ -169,11 +168,8 @@ public class SupplierControler {
|
|||
bankinfo.set("isdefault_bank",1);
|
||||
}
|
||||
}
|
||||
//处理所属公司-分表
|
||||
dataList.clear();
|
||||
//保存供应商
|
||||
currentSupId = ((DynamicObject)SaveServiceHelper.save(new DynamicObject[]{currentSup})[0]).getLong("id");
|
||||
// OperationServiceHelper.executeOperate("save",entityName,new DynamicObject[]{currentSup}, OperateOption.create());
|
||||
//处理分类
|
||||
DeleteServiceHelper.delete(gdName,new QFilter[]{new QFilter("supplier","=",currentSupId)});
|
||||
suppliergroupdetail = BusinessDataServiceHelper.newDynamicObject(gdName);
|
||||
|
|
@ -182,10 +178,7 @@ public class SupplierControler {
|
|||
suppliergroupdetail.set("group",suptype.getLong("id"));//具体分类
|
||||
suppliergroupdetail.set("supplier",currentSupId);//供应商
|
||||
SaveServiceHelper.save(new DynamicObject[]{suppliergroupdetail});
|
||||
// dataList.add(currentSupId);
|
||||
// orgList.clear();
|
||||
// orgList.add(2116792428491973632l);//C005
|
||||
// orgList.add(2116753963226241024l);//C001
|
||||
cusids.put(supnumber,currentSupId);
|
||||
//处理商务伙伴,先判断是否已经生成了伙伴,没有则新增一个伙伴
|
||||
// parterInfo = BusinessDataServiceHelper.loadSingle(parterName,new QFilter[]{new QFilter("number","=",supnumber)});
|
||||
// if(parterInfo == null){
|
||||
|
|
@ -203,11 +196,13 @@ public class SupplierControler {
|
|||
// SaveServiceHelper.save(new DynamicObject[]{parterInfo});
|
||||
// //将伙伴的id更新到供应商上面
|
||||
// }
|
||||
//保存成功后处理供应商分配至具体公司,需要注意,如果供应商取消了某个公司,是否会以最新分配为准
|
||||
// BaseDataServiceHelper.batchAssignWithDetail(entityName,JhzjUtils.GROUPID,dataList,orgList);
|
||||
//取消分配接口 cancelAssign
|
||||
}
|
||||
|
||||
//处理供应商分配
|
||||
EsbUtils.handleAssign(companysJson, cusids, entityName);
|
||||
//处理供应商取消分配
|
||||
EsbUtils.handleUnAssign(companysJson, cusids, entityName);
|
||||
|
||||
if(itemsJson.isEmpty()){
|
||||
EsbUtils.saveLog(apimenthod,"ESB",json_obj.toString(),null,true,"API");
|
||||
return CustomApiResult.success(null);
|
||||
|
|
@ -216,4 +211,5 @@ public class SupplierControler {
|
|||
return CustomApiResult.fail("400","接口处理异常"+itemsJson.toJSONString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue