客户分配组织调整
This commit is contained in:
parent
74256580ab
commit
e336bcb528
|
@ -1,231 +0,0 @@
|
||||||
//
|
|
||||||
// Source code recreated from a .class file by IntelliJ IDEA
|
|
||||||
// (powered by FernFlower decompiler)
|
|
||||||
//
|
|
||||||
|
|
||||||
package nccloud.web.uapbd.customer.baseinfo.action;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import nc.bs.dao.BaseDAO;
|
|
||||||
import nc.bs.framework.common.InvocationInfoProxy;
|
|
||||||
import nc.bs.uif2.LockFailedException;
|
|
||||||
import nc.bs.uif2.VersionConflictException;
|
|
||||||
import nc.itf.bd.cust.assign.ICustAssignService;
|
|
||||||
import nc.itf.bd.cust.baseinfo.ICustBaseInfoQueryService;
|
|
||||||
import nc.itf.bd.cust.baseinfo.ICustBaseInfoService;
|
|
||||||
import nc.itf.uap.IUAPQueryBS;
|
|
||||||
import nc.jdbc.framework.processor.MapProcessor;
|
|
||||||
import nc.uap.utils.ResHelper;
|
|
||||||
import nc.vo.bd.cust.*;
|
|
||||||
import nc.vo.bd.supplier.SupplierVO;
|
|
||||||
import nc.vo.ml.NCLangRes4VoTransl;
|
|
||||||
import nc.vo.org.OrgVO;
|
|
||||||
import nc.vo.pub.BusinessException;
|
|
||||||
import nc.vo.pub.SuperVO;
|
|
||||||
import nc.vo.pub.lang.UFDateTime;
|
|
||||||
import nccloud.commons.lang.StringUtils;
|
|
||||||
import nccloud.framework.core.exception.ExceptionUtils;
|
|
||||||
import nccloud.framework.service.ServiceLocator;
|
|
||||||
import nccloud.framework.web.action.itf.ICommonAction;
|
|
||||||
import nccloud.framework.web.container.IRequest;
|
|
||||||
import nccloud.framework.web.json.JsonFactory;
|
|
||||||
import nccloud.framework.web.processor.template.ExtBillCardConvertProcessor;
|
|
||||||
import nccloud.framework.web.ui.model.row.Row;
|
|
||||||
import nccloud.framework.web.ui.pattern.billcard.ExtSpecilAggBill;
|
|
||||||
import nccloud.framework.web.ui.pattern.extbillcard.ExtBillCard;
|
|
||||||
import nccloud.framework.web.ui.pattern.extbillcard.ExtBillCardOperator;
|
|
||||||
import nccloud.framework.web.ui.pattern.grid.Grid;
|
|
||||||
import nccloud.web.uapbd.customer.baseinfo.utils.CustSupExceptionHandle;
|
|
||||||
import nccloud.web.uapbd.customer.baseinfo.utils.CustomerExtendAggBill;
|
|
||||||
import nccloud.web.uapbd.customer.baseinfo.utils.CustomerResultMessage;
|
|
||||||
import nccloud.web.uapbd.customer.baseinfo.utils.CustomerService;
|
|
||||||
import nccloud.web.uapbd.supplier.supplier.action.SupplierCommonUtil;
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.lang.reflect.UndeclaredThrowableException;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
public class CustomerSaveAction implements ICommonAction {
|
|
||||||
public CustomerSaveAction() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object doAction(IRequest request) {
|
|
||||||
CustomerExtendAggBill fromJson = (CustomerExtendAggBill) JsonFactory.create().fromJson(request.read(), CustomerExtendAggBill.class);
|
|
||||||
ExtBillCard extspecilAggBill = fromJson.getExtspecilAggBill();
|
|
||||||
String step = fromJson.getStep();
|
|
||||||
boolean checkflag = fromJson.isCheckflag();
|
|
||||||
boolean createVersion = fromJson.isCreateversion();
|
|
||||||
String pagecode = fromJson.getPagecode();
|
|
||||||
List<String> exceptAreas = new ArrayList();
|
|
||||||
exceptAreas.add("custAddress");
|
|
||||||
exceptAreas.add("custBankaccbas");
|
|
||||||
exceptAreas.add("10140LM");
|
|
||||||
exceptAreas.add("customerassign_list");
|
|
||||||
exceptAreas.add("cust_sale_simple");
|
|
||||||
exceptAreas.add("cust_creditctl_simple");
|
|
||||||
exceptAreas.add("cust_finance_simple");
|
|
||||||
exceptAreas.add("customer_list_checkbyorg");
|
|
||||||
exceptAreas.add("versionList");
|
|
||||||
ExtBillCardConvertProcessor ebcp = new ExtBillCardConvertProcessor(exceptAreas);
|
|
||||||
ExtBillCardOperator ec = new ExtBillCardOperator(pagecode);
|
|
||||||
new CustomerResultMessage();
|
|
||||||
ExtBillCard ebc = null;
|
|
||||||
ExtSpecilAggBill bill = (ExtSpecilAggBill) ebcp.fromExtBillCard(extspecilAggBill);
|
|
||||||
CustomerVO customerVO = (CustomerVO) bill.getHead();
|
|
||||||
CustlinkmanVO[] custlikCustlinkmanVOs = (CustlinkmanVO[]) bill.getBodys(CustlinkmanVO.class);
|
|
||||||
CustCountrytaxesVO[] custCountrytaxesVOs = (CustCountrytaxesVO[]) bill.getBodys(CustCountrytaxesVO.class);
|
|
||||||
customerVO.setCustcontacts(custlikCustlinkmanVOs);
|
|
||||||
customerVO.setCusttaxtypes(custCountrytaxesVOs);
|
|
||||||
if ("2".equals(customerVO.getCalibrationstate()) && customerVO.getLatestcaltime() == null) {
|
|
||||||
customerVO.setLatestcaltime(new UFDateTime());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!SupplierCommonUtil.checkRegisterfund(customerVO.getRegisterfund())) {
|
|
||||||
ExceptionUtils.wrapBusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("nccriauapbd0", "0nccriauapbd00466"));
|
|
||||||
}
|
|
||||||
|
|
||||||
CustomerService cs = new CustomerService();
|
|
||||||
|
|
||||||
try {
|
|
||||||
if (StringUtils.isNotBlank(step) && "one".equals(step)) {
|
|
||||||
if (createVersion) {
|
|
||||||
customerVO = ((ICustBaseInfoService) ServiceLocator.find(ICustBaseInfoService.class)).createCustomerVersion(customerVO);
|
|
||||||
} else if (StringUtils.isNotBlank(customerVO.getPk_customer())) {
|
|
||||||
CustomerVO[] temp = ((ICustBaseInfoQueryService) ServiceLocator.find(ICustBaseInfoQueryService.class)).queryDataByPkSet(new String[]{customerVO.getPk_customer()});
|
|
||||||
if (temp == null || temp.length == 0) {
|
|
||||||
ExceptionUtils.wrapException(new BusinessException("没有找到对应的客户信息"));
|
|
||||||
}
|
|
||||||
|
|
||||||
customerVO = cs.updateCustomer(customerVO, checkflag);
|
|
||||||
} else {
|
|
||||||
if (customerVO.getCustcontacts() != null && customerVO.getCustcontacts().length > 0) {
|
|
||||||
for (CustlinkmanVO custlinkmanvo : customerVO.getCustcontacts()) {
|
|
||||||
custlinkmanvo.setPk_customer((String) null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (customerVO.getCusttaxtypes() != null && customerVO.getCusttaxtypes().length > 0) {
|
|
||||||
for (CustCountrytaxesVO custCountrytaxesVO : customerVO.getCusttaxtypes()) {
|
|
||||||
custCountrytaxesVO.setPk_customer((String) null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fromJson.getCopy_pk_customer() != null) {
|
|
||||||
customerVO = cs.insertCustomerVO(customerVO, checkflag);
|
|
||||||
((ICustAssignService) ServiceLocator.find(ICustAssignService.class)).copyCustomerAssignData(customerVO, fromJson.getCopy_pk_customer());
|
|
||||||
} else {
|
|
||||||
customerVO = cs.insertCustomerVO(customerVO, checkflag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(step) && "two_yes".equals(step)) {
|
|
||||||
SupplierVO supplierVO = fromJson.getSupplierVO();
|
|
||||||
if (StringUtils.isNotBlank(customerVO.getPk_customer())) {
|
|
||||||
customerVO = cs.updateCustomerAndRelaToSup(customerVO, supplierVO);
|
|
||||||
} else {
|
|
||||||
Map<String, SuperVO> resultMap = cs.insertCustAndRelaToSup(customerVO, supplierVO);
|
|
||||||
customerVO = (CustomerVO) resultMap.get("customer");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(step) && "two_no".equals(step)) {
|
|
||||||
if (StringUtils.isNotBlank(customerVO.getPk_customer())) {
|
|
||||||
customerVO = cs.updateCustomer(customerVO, checkflag);
|
|
||||||
} else {
|
|
||||||
customerVO = cs.insertCustomerVO(customerVO, checkflag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bill.putvo(CustlinkmanVO.class, customerVO.getCustcontacts());
|
|
||||||
customerVO.setCustcontacts((CustlinkmanVO[]) null);
|
|
||||||
bill.putvo(CustbankVO.class, customerVO.getCustbanks());
|
|
||||||
customerVO.setCustbanks((CustbankVO[]) null);
|
|
||||||
bill.putvo(CustCountrytaxesVO.class, customerVO.getCusttaxtypes());
|
|
||||||
customerVO.setCusttaxtypes((CustCountrytaxesVO[]) null);
|
|
||||||
bill.setHead(customerVO);
|
|
||||||
ec.setTransFlag(true);
|
|
||||||
ebc = ec.toCard(bill, exceptAreas);
|
|
||||||
Grid grid = ebc.getBody("custtaxtypes");
|
|
||||||
if (grid != null) {
|
|
||||||
List<Row> listRows = grid.getModel().getListRows();
|
|
||||||
Map<String, String> executeQuery = null;
|
|
||||||
if (listRows != null && listRows.size() > 0) {
|
|
||||||
for (Row row : listRows) {
|
|
||||||
if (row.getCell("pk_taxes").getValue() != null) {
|
|
||||||
String value = row.getCell("pk_taxes").getValue().toString();
|
|
||||||
executeQuery = (Map) ((IUAPQueryBS) ServiceLocator.find(IUAPQueryBS.class)).executeQuery("select custtaxesname from bd_custaxes where pk_custaxes = '" + value + "'", new MapProcessor());
|
|
||||||
row.getCell("pk_taxes").setDisplay(executeQuery != null ? (String) executeQuery.get("custtaxesname") : "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 自动分配组织
|
|
||||||
/*String[] customerPks = {customerVO.getPk_customer()};
|
|
||||||
OrgVO[] virtulaOrg = getVirtulaOrg();
|
|
||||||
String[] assignOrgPks = Arrays.stream(virtulaOrg).map(OrgVO::getPk_org).toArray(String[]::new);
|
|
||||||
ErrLogReturnValue errLogReturnValue = cs.getAssignService().assignCustomerByPks(customerPks, assignOrgPks, null);
|
|
||||||
Logger.error("CustomerSaveAction-errLogReturnValue = " + errLogReturnValue.getErrLogResult());*/
|
|
||||||
assignOrgApi(customerVO);
|
|
||||||
} catch (Exception e) {
|
|
||||||
if (e instanceof UndeclaredThrowableException) {
|
|
||||||
Throwable undeclaredThrowable = ((UndeclaredThrowableException) e).getUndeclaredThrowable();
|
|
||||||
InvocationTargetException ie = (InvocationTargetException) undeclaredThrowable;
|
|
||||||
Throwable targetException = ie.getTargetException();
|
|
||||||
if (targetException instanceof CustSupBusiException) {
|
|
||||||
CustSupBusiException cuBusiException = (CustSupBusiException) targetException;
|
|
||||||
CustomerResultMessage crm = CustSupExceptionHandle.handleCustSupException(cuBusiException);
|
|
||||||
return crm;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (targetException instanceof VersionConflictException) {
|
|
||||||
VersionConflictException versionConflictException = (VersionConflictException) targetException;
|
|
||||||
Object busiObject = versionConflictException.getBusiObject();
|
|
||||||
ExceptionUtils.wrapBusinessException(ResHelper.getString("nccriauapbd0", "0nccriauapbd00030"));
|
|
||||||
} else if (targetException instanceof LockFailedException) {
|
|
||||||
ExceptionUtils.wrapBusinessException(ResHelper.getString("nccriauapbd0", "0nccriauapbd00030"));
|
|
||||||
} else {
|
|
||||||
ExceptionUtils.wrapException(targetException);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ExceptionUtils.wrapException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ebc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void assignOrgApi(CustomerVO customerVO) throws BusinessException {
|
|
||||||
String[] customerPks = {customerVO.getCode()};
|
|
||||||
OrgVO[] virtulaOrg = getVirtulaOrg();
|
|
||||||
String[] assignOrgPks = Arrays.stream(virtulaOrg).map(OrgVO::getCode).toArray(String[]::new);
|
|
||||||
JSONObject param = new JSONObject();
|
|
||||||
JSONObject ufinterfaceJson = new JSONObject();
|
|
||||||
JSONObject dataJson = new JSONObject();
|
|
||||||
dataJson.put("customer", customerPks);
|
|
||||||
dataJson.put("org", assignOrgPks);
|
|
||||||
|
|
||||||
ufinterfaceJson.put("sender", "default");
|
|
||||||
ufinterfaceJson.put("data", dataJson);
|
|
||||||
param.put("ufinterface", ufinterfaceJson);
|
|
||||||
BaseOpenApiReq req = new BaseOpenApiReq();
|
|
||||||
req.assignOrgApi("/nccloud/api/uapbd/customermanageext/customer/assign", param);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询组织信息
|
|
||||||
*
|
|
||||||
* @author mzr
|
|
||||||
* @date 2025/05/29
|
|
||||||
*/
|
|
||||||
public OrgVO[] getVirtulaOrg() throws BusinessException {
|
|
||||||
String groupID = InvocationInfoProxy.getInstance().getGroupId();
|
|
||||||
// NCCForUAPLogger.debug("groupID = " + groupID);
|
|
||||||
// enablestate 启用状态 isbusinessunit 是否业务单元数据
|
|
||||||
String condition = "pk_group = '" + groupID + "' and ENABLESTATE = '2' and isbusinessunit='Y'";
|
|
||||||
Collection<OrgVO> collection = (new BaseDAO()).retrieveByClause(OrgVO.class, condition, "code");
|
|
||||||
return collection.toArray(new OrgVO[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,158 +0,0 @@
|
||||||
//
|
|
||||||
// Source code recreated from a .class file by IntelliJ IDEA
|
|
||||||
// (powered by FernFlower decompiler)
|
|
||||||
//
|
|
||||||
|
|
||||||
package nccloud.web.uapbd.customer.baseinfo.action;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import nc.bs.dao.BaseDAO;
|
|
||||||
import nc.bs.framework.common.InvocationInfoProxy;
|
|
||||||
import nc.bs.logging.Logger;
|
|
||||||
import nc.itf.bd.cust.baseinfo.ICustBaseInfoService;
|
|
||||||
import nc.pub.billcode.itf.IBillcodeManage;
|
|
||||||
import nc.pub.billcode.vo.BillCodeContext;
|
|
||||||
import nc.vo.bd.cust.CustCountrytaxesVO;
|
|
||||||
import nc.vo.bd.cust.CustlinkmanVO;
|
|
||||||
import nc.vo.bd.cust.CustomerVO;
|
|
||||||
import nc.vo.bd.errorlog.ErrLogReturnValue;
|
|
||||||
import nc.vo.org.OrgVO;
|
|
||||||
import nc.vo.pub.BusinessException;
|
|
||||||
import nc.vo.pub.lang.UFBoolean;
|
|
||||||
import nc.vo.pub.lang.UFDateTime;
|
|
||||||
import nccloud.framework.core.exception.ExceptionUtils;
|
|
||||||
import nccloud.framework.web.action.itf.ICommonAction;
|
|
||||||
import nccloud.framework.web.container.IRequest;
|
|
||||||
import nccloud.framework.web.container.SessionContext;
|
|
||||||
import nccloud.framework.web.ui.pattern.billcard.ExtSpecilAggBill;
|
|
||||||
import nccloud.framework.web.ui.pattern.extbillcard.ExtBillCard;
|
|
||||||
import nccloud.framework.web.ui.pattern.extbillcard.ExtBillCardOperator;
|
|
||||||
import nccloud.web.uapbd.customer.baseinfo.utils.CustomerService;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class CustomerSaveAddAction implements ICommonAction {
|
|
||||||
public CustomerSaveAddAction() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object doAction(IRequest request) {
|
|
||||||
ExtBillCardOperator ec = new ExtBillCardOperator();
|
|
||||||
List<String> exceptAreas = new ArrayList();
|
|
||||||
exceptAreas.add("custAddress");
|
|
||||||
exceptAreas.add("custBankaccbas");
|
|
||||||
exceptAreas.add("10140LM");
|
|
||||||
exceptAreas.add("customerassign_list");
|
|
||||||
exceptAreas.add("cust_sale_simple");
|
|
||||||
exceptAreas.add("cust_creditctl_simple");
|
|
||||||
exceptAreas.add("cust_finance_simple");
|
|
||||||
exceptAreas.add("customer_list_checkbyorg");
|
|
||||||
ExtSpecilAggBill bill = (ExtSpecilAggBill) ec.toBill(request);
|
|
||||||
ExtBillCard ebc = null;
|
|
||||||
CustomerVO customerVO = (CustomerVO) bill.getHead();
|
|
||||||
CustlinkmanVO[] custlikCustlinkmanVOs = (CustlinkmanVO[]) bill.getBodys(CustlinkmanVO.class);
|
|
||||||
CustCountrytaxesVO[] custCountrytaxesVOs = (CustCountrytaxesVO[]) bill.getBodys(CustCountrytaxesVO.class);
|
|
||||||
if (custlikCustlinkmanVOs != null && custlikCustlinkmanVOs.length > 0) {
|
|
||||||
for (CustlinkmanVO custlinkmanvo : custlikCustlinkmanVOs) {
|
|
||||||
custlinkmanvo.setPk_customer((String) null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (custCountrytaxesVOs != null && custCountrytaxesVOs.length > 0) {
|
|
||||||
for (CustCountrytaxesVO custCountrytaxesVO : custCountrytaxesVOs) {
|
|
||||||
custCountrytaxesVO.setPk_customer((String) null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
customerVO.setCustcontacts(custlikCustlinkmanVOs);
|
|
||||||
customerVO.setCusttaxtypes(custCountrytaxesVOs);
|
|
||||||
if ("2".equals(customerVO.getCalibrationstate()) && customerVO.getLatestcaltime() == null) {
|
|
||||||
customerVO.setLatestcaltime(new UFDateTime());
|
|
||||||
}
|
|
||||||
|
|
||||||
CustomerService cs = new CustomerService();
|
|
||||||
ICustBaseInfoService getiCustBaseInfoService = cs.getiCustBaseInfoService();
|
|
||||||
IBillcodeManage billcodeManage = cs.getBillcodeManage();
|
|
||||||
String pk_group = SessionContext.getInstance().getClientInfo().getPk_group();
|
|
||||||
String billcode = "";
|
|
||||||
|
|
||||||
try {
|
|
||||||
customerVO.setIssupplier(UFBoolean.FALSE);
|
|
||||||
customerVO.setCuststate(1);
|
|
||||||
customerVO.setFrozenflag(UFBoolean.FALSE);
|
|
||||||
customerVO.setIsfreecust(UFBoolean.FALSE);
|
|
||||||
customerVO.setPk_group(pk_group);
|
|
||||||
customerVO.setPk_org(pk_group);
|
|
||||||
customerVO = getiCustBaseInfoService.insertCustomerVO(customerVO, false);
|
|
||||||
CustomerVO saveAddRe = new CustomerVO();
|
|
||||||
BillCodeContext billCodeContext = billcodeManage.getBillCodeContext("customer", pk_group, pk_group);
|
|
||||||
if (billCodeContext != null && billCodeContext.isPrecode()) {
|
|
||||||
billcode = billcodeManage.getPreBillCode_RequiresNew("customer", pk_group, pk_group);
|
|
||||||
}
|
|
||||||
|
|
||||||
saveAddRe.setCode(billcode);
|
|
||||||
saveAddRe.setIssupplier(UFBoolean.FALSE);
|
|
||||||
saveAddRe.setCuststate(1);
|
|
||||||
saveAddRe.setFrozenflag(UFBoolean.FALSE);
|
|
||||||
saveAddRe.setPk_country("0001Z010000000079UJJ");
|
|
||||||
saveAddRe.setPk_format("FMT0Z000000000000000");
|
|
||||||
saveAddRe.setPk_timezone("0001Z010000000079U2P");
|
|
||||||
saveAddRe.setIsfreecust(UFBoolean.FALSE);
|
|
||||||
saveAddRe.setPk_org(customerVO.getPk_org());
|
|
||||||
saveAddRe.setPk_group(customerVO.getPk_group());
|
|
||||||
bill.putvo(CustlinkmanVO.class, new CustlinkmanVO[0]);
|
|
||||||
bill.putvo(CustCountrytaxesVO.class, new CustCountrytaxesVO[0]);
|
|
||||||
bill.setHead(saveAddRe);
|
|
||||||
ebc = ec.toCard(bill, exceptAreas);
|
|
||||||
ec.setTransFlag(true);
|
|
||||||
ebc.setUserjson(billCodeContext == null ? "" : "" + billCodeContext.isEditable());
|
|
||||||
|
|
||||||
// 自动分配组织
|
|
||||||
/*String[] customerPks = {customerVO.getPk_customer()};
|
|
||||||
OrgVO[] virtulaOrg = getVirtulaOrg();
|
|
||||||
String[] assignOrgPks = Arrays.stream(virtulaOrg).map(OrgVO::getPk_org).toArray(String[]::new);
|
|
||||||
ErrLogReturnValue errLogReturnValue = cs.getAssignService().assignCustomerByPks(customerPks, assignOrgPks, null);
|
|
||||||
Logger.error("CustomerSaveAddAction-errLogReturnValue = " + errLogReturnValue.getErrLogResult());*/
|
|
||||||
assignOrgApi(customerVO);
|
|
||||||
} catch (BusinessException e) {
|
|
||||||
ExceptionUtils.wrapException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ebc;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void assignOrgApi(CustomerVO customerVO) throws BusinessException {
|
|
||||||
String[] customerPks = {customerVO.getCode()};
|
|
||||||
OrgVO[] virtulaOrg = getVirtulaOrg();
|
|
||||||
String[] assignOrgPks = Arrays.stream(virtulaOrg).map(OrgVO::getCode).toArray(String[]::new);
|
|
||||||
JSONObject param = new JSONObject();
|
|
||||||
JSONObject ufinterfaceJson = new JSONObject();
|
|
||||||
JSONObject dataJson = new JSONObject();
|
|
||||||
dataJson.put("customer", customerPks);
|
|
||||||
dataJson.put("org", assignOrgPks);
|
|
||||||
|
|
||||||
ufinterfaceJson.put("sender", "default");
|
|
||||||
ufinterfaceJson.put("data", dataJson);
|
|
||||||
param.put("ufinterface", ufinterfaceJson);
|
|
||||||
BaseOpenApiReq req = new BaseOpenApiReq();
|
|
||||||
req.assignOrgApi("/nccloud/api/uapbd/customermanageext/customer/assign", param);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询组织信息
|
|
||||||
*
|
|
||||||
* @author mzr
|
|
||||||
* @date 2025/05/29
|
|
||||||
*/
|
|
||||||
public OrgVO[] getVirtulaOrg() throws BusinessException {
|
|
||||||
String groupID = InvocationInfoProxy.getInstance().getGroupId();
|
|
||||||
// NCCForUAPLogger.debug("groupID = " + groupID);
|
|
||||||
// enablestate 启用状态 isbusinessunit 是否业务单元数据
|
|
||||||
String condition = "pk_group = '" + groupID + "' and ENABLESTATE = '2' and isbusinessunit='Y'";
|
|
||||||
Collection<OrgVO> collection = (new BaseDAO()).retrieveByClause(OrgVO.class, condition, "code");
|
|
||||||
return collection.toArray(new OrgVO[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
package nccloud.api.uapbd.customer.tms.listener.kejian;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import nc.bs.bd.baseservice.ArrayClassConvertUtil;
|
||||||
|
import nc.bs.businessevent.IBusinessEvent;
|
||||||
|
import nc.bs.businessevent.IBusinessListener;
|
||||||
|
import nc.bs.businessevent.bd.BDCommonEvent;
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
|
import nc.bs.uapbd.util.BaseOpenApiReq;
|
||||||
|
import nc.vo.bd.cust.CustomerVO;
|
||||||
|
import nc.vo.org.OrgVO;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建客户后,自动分配组织
|
||||||
|
*
|
||||||
|
* @author mzr
|
||||||
|
* @date 2025/06/16
|
||||||
|
*/
|
||||||
|
public class AssignCustomerListener implements IBusinessListener {
|
||||||
|
@Override
|
||||||
|
public void doAction(IBusinessEvent event) throws BusinessException {
|
||||||
|
BDCommonEvent e = (BDCommonEvent) event;
|
||||||
|
Object[] objs = e.getObjs();
|
||||||
|
CustomerVO[] useVOs = ArrayClassConvertUtil.convert(objs, CustomerVO.class);
|
||||||
|
for (CustomerVO customerVO : useVOs) {
|
||||||
|
assignOrgApi(customerVO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void assignOrgApi(CustomerVO customerVO) throws BusinessException {
|
||||||
|
String[] customerPks = {customerVO.getPk_customer()};
|
||||||
|
OrgVO[] virtulaOrg = getVirtulaOrg();
|
||||||
|
String[] assignOrgPks = Arrays.stream(virtulaOrg).map(OrgVO::getPk_org).toArray(String[]::new);
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
JSONObject ufinterfaceJson = new JSONObject();
|
||||||
|
JSONObject dataJson = new JSONObject();
|
||||||
|
dataJson.put("customer", customerPks);
|
||||||
|
dataJson.put("org", assignOrgPks);
|
||||||
|
|
||||||
|
ufinterfaceJson.put("sender", "default");
|
||||||
|
ufinterfaceJson.put("data", dataJson);
|
||||||
|
param.put("ufinterface", ufinterfaceJson);
|
||||||
|
BaseOpenApiReq req = new BaseOpenApiReq();
|
||||||
|
req.assignOrgApi("/nccloud/api/uapbd/customermanageext/customer/assignByPk", param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询组织信息
|
||||||
|
*
|
||||||
|
* @author mzr
|
||||||
|
* @date 2025/05/29
|
||||||
|
*/
|
||||||
|
public OrgVO[] getVirtulaOrg() throws BusinessException {
|
||||||
|
String groupID = InvocationInfoProxy.getInstance().getGroupId();
|
||||||
|
// NCCForUAPLogger.debug("groupID = " + groupID);
|
||||||
|
// enablestate 启用状态 isbusinessunit 是否业务单元数据
|
||||||
|
String condition = "pk_group = '" + groupID + "' and ENABLESTATE = '2' and isbusinessunit='Y'";
|
||||||
|
Collection<OrgVO> collection = (new BaseDAO()).retrieveByClause(OrgVO.class, condition, "code");
|
||||||
|
return collection.toArray(new OrgVO[0]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package nccloud.web.uapbd.customer.baseinfo.action;
|
package nc.bs.uapbd.util;
|
||||||
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
@ -7,7 +7,6 @@ import com.sm.misc.BASE64Encoder;
|
||||||
import nc.bs.dao.DAOException;
|
import nc.bs.dao.DAOException;
|
||||||
import nc.bs.logging.Logger;
|
import nc.bs.logging.Logger;
|
||||||
import nc.bs.trade.business.HYSuperDMO;
|
import nc.bs.trade.business.HYSuperDMO;
|
||||||
import nc.itf.arap.goldentax.SysParaInitQuery;
|
|
||||||
import nc.vo.opm.thirdapp.ThirdappVO;
|
import nc.vo.opm.thirdapp.ThirdappVO;
|
||||||
import nc.ws.opm.pub.utils.security.SecurityUtil;
|
import nc.ws.opm.pub.utils.security.SecurityUtil;
|
||||||
import org.apache.commons.httpclient.Header;
|
import org.apache.commons.httpclient.Header;
|
||||||
|
@ -61,7 +60,7 @@ public class BaseOpenApiReq {
|
||||||
if (apiInfo == null) {
|
if (apiInfo == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
BASE_URL_DEV = SysParaInitQuery.getParaString("GLOBLE00000000000000", "GJBURL");
|
// BASE_URL_DEV = SysParaInitQuery.getParaString("GLOBLE00000000000000", "GJBURL");
|
||||||
CLIENT_ID = apiInfo.getApp_id();
|
CLIENT_ID = apiInfo.getApp_id();
|
||||||
CLIENT_SECRET = apiInfo.getApp_secret();
|
CLIENT_SECRET = apiInfo.getApp_secret();
|
||||||
PUBLIC_KEY = apiInfo.getPublic_key();
|
PUBLIC_KEY = apiInfo.getPublic_key();
|
|
@ -1,4 +1,4 @@
|
||||||
package nccloud.web.uapbd.customer.baseinfo.action;
|
package nc.bs.uapbd.util;
|
||||||
|
|
||||||
import org.apache.commons.httpclient.Header;
|
import org.apache.commons.httpclient.Header;
|
||||||
import org.apache.commons.httpclient.HttpClient;
|
import org.apache.commons.httpclient.HttpClient;
|
|
@ -0,0 +1,132 @@
|
||||||
|
//
|
||||||
|
// Source code recreated from a .class file by IntelliJ IDEA
|
||||||
|
// (powered by FernFlower decompiler)
|
||||||
|
//
|
||||||
|
|
||||||
|
package nccloud.api.uapbd.customermanage.customer;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import nc.bs.dao.BaseDAO;
|
||||||
|
import nc.bs.framework.common.InvocationInfoProxy;
|
||||||
|
import nc.bs.framework.common.NCLocator;
|
||||||
|
import nc.itf.bd.cust.assign.ICustAssignService;
|
||||||
|
import nc.jdbc.framework.processor.ColumnListProcessor;
|
||||||
|
import nc.vo.pub.BusinessException;
|
||||||
|
import nccloud.api.rest.utils.ResultMessageUtil;
|
||||||
|
import nccloud.api.uapbd.common.utils.OpenApiPagenationUtils;
|
||||||
|
import nccloud.vo.sql.util.InSqlUtil;
|
||||||
|
import nccloud.ws.rest.resource.AbstractNCCRestResource;
|
||||||
|
import org.json.JSONString;
|
||||||
|
|
||||||
|
import javax.ws.rs.Consumes;
|
||||||
|
import javax.ws.rs.POST;
|
||||||
|
import javax.ws.rs.Path;
|
||||||
|
import javax.ws.rs.Produces;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Path("uapbd/customermanageext/customer")
|
||||||
|
public class AssignCustomerExtResource extends AbstractNCCRestResource {
|
||||||
|
public AssignCustomerExtResource() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("assign")
|
||||||
|
@Consumes({"application/json"})
|
||||||
|
@Produces({"application/json"})
|
||||||
|
public JSONString assign(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
} else {
|
||||||
|
JSONObject object = jObject.getJSONObject("ufinterface");
|
||||||
|
if (object == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
} else {
|
||||||
|
JSONObject data = object.getJSONObject("data");
|
||||||
|
if (data == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("data:null"));
|
||||||
|
} else {
|
||||||
|
JSONArray customer = data.getJSONArray("customer");
|
||||||
|
JSONArray org = data.getJSONArray("org");
|
||||||
|
List<String> customerList = OpenApiPagenationUtils.jSONArrayToList(customer);
|
||||||
|
List<String> orgList = OpenApiPagenationUtils.jSONArrayToList(org);
|
||||||
|
if (customerList.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new BusinessException("传入参数中客户编码为空,请确认传入参数!"));
|
||||||
|
} else if (orgList.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new BusinessException("传入参数待分配组织编码为空,请确认传入参数!"));
|
||||||
|
} else {
|
||||||
|
String pk_group = InvocationInfoProxy.getInstance().getGroupId();
|
||||||
|
String userid = InvocationInfoProxy.getInstance().getUserId();
|
||||||
|
|
||||||
|
try {
|
||||||
|
String[] customerPks = this.translateCustomers(customerList, pk_group);
|
||||||
|
String[] assignOrgPks = this.translateOrgPk(orgList, pk_group);
|
||||||
|
((ICustAssignService) NCLocator.getInstance().lookup(ICustAssignService.class)).assignCustomerByPks(customerPks, assignOrgPks, (String[]) null);
|
||||||
|
return ResultMessageUtil.toJSON("客户分配成功!");
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@Path("assignByPk")
|
||||||
|
@Consumes({"application/json"})
|
||||||
|
@Produces({"application/json"})
|
||||||
|
public JSONString assignByPk(JSONString json) {
|
||||||
|
JSONObject jObject = JSON.parseObject(json.toJSONString());
|
||||||
|
if (jObject == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null"));
|
||||||
|
} else {
|
||||||
|
JSONObject object = jObject.getJSONObject("ufinterface");
|
||||||
|
if (object == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("ufinterface:null"));
|
||||||
|
} else {
|
||||||
|
JSONObject data = object.getJSONObject("data");
|
||||||
|
if (data == null) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new NullPointerException("data:null"));
|
||||||
|
} else {
|
||||||
|
JSONArray customer = data.getJSONArray("customer");
|
||||||
|
JSONArray org = data.getJSONArray("org");
|
||||||
|
List<String> customerList = OpenApiPagenationUtils.jSONArrayToList(customer);
|
||||||
|
List<String> orgList = OpenApiPagenationUtils.jSONArrayToList(org);
|
||||||
|
if (customerList.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new BusinessException("传入参数中客户编码为空,请确认传入参数!"));
|
||||||
|
} else if (orgList.size() == 0) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(new BusinessException("传入参数待分配组织编码为空,请确认传入参数!"));
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
String[] customerPks = customerList.toArray(new String[0]);
|
||||||
|
String[] assignOrgPks = orgList.toArray(new String[0]);
|
||||||
|
((ICustAssignService) NCLocator.getInstance().lookup(ICustAssignService.class)).assignCustomerByPks(customerPks, assignOrgPks, null);
|
||||||
|
return ResultMessageUtil.toJSON("客户分配成功!");
|
||||||
|
} catch (BusinessException e) {
|
||||||
|
return ResultMessageUtil.exceptionToJSON(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String[] translateCustomers(List<String> codes, String pk_group) throws BusinessException {
|
||||||
|
String sql = "select pk_customer from bd_customer where pk_group = '" + pk_group + "' and " + InSqlUtil.buildInSql("code", "or", "in", (String[]) codes.toArray(new String[0]));
|
||||||
|
List<String> pks = (List) (new BaseDAO()).executeQuery(sql, new ColumnListProcessor());
|
||||||
|
return pks != null && pks.size() > 0 ? (String[]) pks.toArray(new String[0]) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String[] translateOrgPk(List<String> codes, String pk_group) throws BusinessException {
|
||||||
|
String sql = "select pk_org from org_orgs where isbusinessunit = 'Y' and pk_group = '" + pk_group + "' and " + InSqlUtil.buildInSql("code", "or", "in", (String[]) codes.toArray(new String[0]));
|
||||||
|
List<String> pks = (List) (new BaseDAO()).executeQuery(sql, new ColumnListProcessor());
|
||||||
|
return pks != null && pks.size() > 0 ? (String[]) pks.toArray(new String[0]) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getModule() {
|
||||||
|
return "uapbd";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue