demand: tms-oa接口

This commit is contained in:
aike 2026-02-03 17:20:03 +08:00
parent 2f80328988
commit c0eab1d2fc
7 changed files with 622 additions and 12 deletions

View File

@ -0,0 +1,89 @@
/**
* @Project: emis
* @Title: EmisCommissionProfitController.java
* @author heyu
* @date 2026-02-03 01:46:36
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @Description: <p> 员工提成表 控制器 </p>
*/
package com.xdadan.erp.apiweb;
import com.alibaba.fastjson.JSONObject;
import com.xdadan.erp.apiweb.utils.EntityAuditUtils;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.core.redis.RedissonService;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.poi.ExcelUtil;
import com.xdadan.erp.emis.domain.EmisCommissionDtl;
import com.xdadan.erp.emis.domain.EmisCommissionProfit;
import com.xdadan.erp.emis.domain.EmisTmsSiteBatch;
import com.xdadan.erp.emis.domain.EmisWaybill;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.service.IEmisCommissionDtlService;
import com.xdadan.erp.emis.service.IEmisCommissionProfitService;
import com.xdadan.erp.emis.utils.WaybillHelper;
import com.xdadan.erp.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 员工提成表Controller
*
* @author heyu
* @date 2026-02-03 01:46:36
*/
@Slf4j
@RestController
@RequestMapping("/apiweb/emisCommissionProfit")
public class CommissionProfitController extends BaseController
{
@Autowired
private IEmisCommissionProfitService emisCommissionProfitService;
@Autowired
private IEmisCommissionDtlService emisCommissionDtlService;
@Autowired
RedissonService redissonService;
@Autowired
private EmisBaseService emisBaseService;
@Autowired
private ISysUserService sysUserService;
/**
* 查询员工提成表列表
*/
@GetMapping("/list")
public TableDataInfo list(EmisCommissionProfit emisCommissionProfit)
{
EntityAuditUtils.setEmpNameFromOaEmpCode(emisCommissionProfit, sysUserService, "setEmpName");
startPage();
List<EmisCommissionProfit> list = emisCommissionProfitService.selectEmisCommissionProfitList(emisCommissionProfit);
return getDataTable(list);
}
}

View File

@ -0,0 +1,116 @@
/**
* @Project: emis
* @Title: EmisCreditCustomerController.java
* @author heyu
* @date 2026-02-02 16:17:55
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @Description: <p> 客户信用额度表 控制器 </p>
*/
package com.xdadan.erp.apiweb;
import com.xdadan.erp.apiweb.utils.EntityAuditUtils;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.common.utils.StringUtils;
import com.xdadan.erp.common.utils.poi.ExcelUtil;
import com.xdadan.erp.emis.domain.EmisCreditCustomer;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.service.IEmisCreditCustomerService;
import com.xdadan.erp.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 客户信用额度表Controller
*
* @author heyu
* @date 2026-02-02 16:17:55
*/
@RestController
@RequestMapping("/apiweb/emisCreditCustomer")
public class CreditCustomerController extends BaseController
{
@Autowired
private IEmisCreditCustomerService emisCreditCustomerService;
@Autowired
private ISysUserService sysUserService;
/**
* 查询客户信用额度表列表
*/
@GetMapping("/list")
public TableDataInfo list(EmisCreditCustomer emisCreditCustomer)
{
startPage();
List<EmisCreditCustomer> list = emisCreditCustomerService.selectEmisCreditCustomerList(emisCreditCustomer);
return getDataTable(list);
}
/**
* 获取客户信用额度表详细信息
*/
@PreAuthorize("@ss.hasPermi('emis:emisCreditCustomer:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(emisCreditCustomerService.selectEmisCreditCustomerById(id));
}
/**
* 保存或更新客户信用额度表
* 根据monthlyPayCode判断:若编号不存在则执行新增,若存在则执行修改
*/
@Log(title = "客户信用额度表", businessType = BusinessType.OTHER)
@PostMapping("/saveOrUpdate")
public AjaxResult saveOrUpdate(@RequestBody EmisCreditCustomer emisCreditCustomer)
{
try {
// 验证monthlyPayCode不能为空
if (StringUtils.isEmpty(emisCreditCustomer.getMonthlyPayCode())) {
return AjaxResult.error("月结卡号不能为空");
}
// 根据monthlyPayCode查询记录
EmisCreditCustomer queryParam = new EmisCreditCustomer();
queryParam.setMonthlyPayCode(emisCreditCustomer.getMonthlyPayCode());
List<EmisCreditCustomer> list = emisCreditCustomerService.selectEmisCreditCustomerList(queryParam);
// 如果查询到记录,执行修改
if (list != null && !list.isEmpty()) {
// 如果查询到多条记录,报错
if (list.size() > 1) {
return AjaxResult.error("根据monthlyPayCode查询到多条记录,无法确定要修改的记录");
}
// 设置id进行更新
EmisCreditCustomer existing = list.get(0);
emisCreditCustomer.setId(existing.getId());
EntityAuditUtils.setAuditInfo(emisCreditCustomer, null, true, this, sysUserService);
return toAjax(emisCreditCustomerService.updateEmisCreditCustomer(emisCreditCustomer));
} else {
// 如果查询不到,执行新增
EntityAuditUtils.setAuditInfo(emisCreditCustomer, null, false, this, sysUserService);
return toAjax(emisCreditCustomerService.insertEmisCreditCustomer(emisCreditCustomer));
}
}catch (Exception ex){
ex.printStackTrace();
// 返回子定义异常
if(ex instanceof EmisBizError){
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
}
return AjaxResult.error("服务器异常,联系客服");
}
}
}

View File

@ -0,0 +1,144 @@
/**
* @Project: emis
* @Title: EmisCreditSalesmenController.java
* @author heyu
* @date 2026-02-02 03:51:54
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @Description: <p> 销售信用额度 控制器 </p>
*/
package com.xdadan.erp.apiweb;
import com.xdadan.erp.apiweb.utils.EntityAuditUtils;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.common.utils.poi.ExcelUtil;
import com.xdadan.erp.emis.domain.EmisCreditSalesmen;
import com.xdadan.erp.emis.domain.EmisSettleBill;
import com.xdadan.erp.emis.domain.EmisWaybill;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.service.IEmisCreditSalesmenService;
import com.xdadan.erp.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
* 销售信用额度Controller
*
* @author heyu
* @date 2026-02-02 03:51:54
*/
@RestController
@RequestMapping("/apiweb/emisCreditSalesmen")
public class CreditSalesmenController extends BaseController
{
@Autowired
private IEmisCreditSalesmenService emisCreditSalesmenService;
@Autowired
private ISysUserService sysUserService;
/**
* 新增/修改销售信用额度(根据salesmen和transType)
*/
@Log(title = "销售信用额度", businessType = BusinessType.INSERT)
@PostMapping("/saveOrUpdate")
public AjaxResult saveOrUpdate(@RequestBody EmisCreditSalesmen emisCreditSalesmen)
{
try {
EntityAuditUtils.setEmpNameFromOaEmpCode(emisCreditSalesmen, sysUserService, "setSalesmen");
// 验证传入的transType只能有一个(不能包含逗号)
String transType = emisCreditSalesmen.getTransType();
if (transType != null && transType.contains(",")) {
return AjaxResult.error("传入的transType只能有一个");
}
// 验证salesmen和transType不能为空
if (emisCreditSalesmen.getSalesmen() == null || transType == null || transType.trim().isEmpty()) {
return AjaxResult.error("salesmen和transType不能为空");
}
// 根据salesmen查询所有相关记录
EmisCreditSalesmen queryParam = new EmisCreditSalesmen();
queryParam.setSalesmen(emisCreditSalesmen.getSalesmen());
List<EmisCreditSalesmen> list = emisCreditSalesmenService.selectEmisCreditSalesmenList(queryParam);
// 过滤出transType匹配的记录
List<EmisCreditSalesmen> matchedList = new ArrayList<>();
for (EmisCreditSalesmen item : list) {
String dbTransType = item.getTransType();
if (dbTransType != null) {
// 将库中的transType按逗号分割,检查是否包含传入的transType
String[] dbTransTypes = dbTransType.split(",");
for (String dbType : dbTransTypes) {
if (transType.trim().equals(dbType.trim())) {
matchedList.add(item);
break;
}
}
}
}
// 如果查询到多条记录,报错
if (matchedList.size() > 1) {
return AjaxResult.error("根据salesmen和transType查询到多条记录,无法确定要修改的记录");
}
// 如果查询到一条记录,根据id修改
if (matchedList.size() == 1) {
EmisCreditSalesmen existing = matchedList.get(0);
emisCreditSalesmen.setId(existing.getId());
// 更新时保持库中现有的transType值不变
emisCreditSalesmen.setTransType(existing.getTransType());
EntityAuditUtils.setAuditInfo(emisCreditSalesmen, null, true, this, sysUserService);
return toAjax(emisCreditSalesmenService.updateEmisCreditSalesmen(emisCreditSalesmen));
}
// 如果查询不到,新增
EntityAuditUtils.setAuditInfo(emisCreditSalesmen, null, false, this, sysUserService);
return toAjax(emisCreditSalesmenService.insertEmisCreditSalesmen(emisCreditSalesmen));
}catch (Exception ex){
ex.printStackTrace();
// 返回子定义异常
if(ex instanceof EmisBizError){
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
}
return AjaxResult.error("服务器异常,联系客服");
}
}
/**
* 查询销售信用额度列表
*/
@GetMapping("/list")
public TableDataInfo list(EmisCreditSalesmen emisCreditSalesmen)
{
EntityAuditUtils.setEmpNameFromOaEmpCode(emisCreditSalesmen, sysUserService, "setSalesmen");
startPage();
List<EmisCreditSalesmen> list = emisCreditSalesmenService.selectEmisCreditSalesmenList(emisCreditSalesmen);
return getDataTable(list);
}
/**
* 获取销售信用额度详细信息
*/
@PreAuthorize("@ss.hasPermi('emis:emisCreditSalesmen:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(emisCreditSalesmenService.selectEmisCreditSalesmenById(id));
}
}

View File

@ -0,0 +1,67 @@
package com.xdadan.erp.apiweb;
import cn.hutool.core.collection.CollectionUtil;
import com.xdadan.erp.apiweb.utils.EntityAuditUtils;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.emis.domain.EmisCreditCustomer;
import com.xdadan.erp.emis.domain.EmisCreditSalesmen;
import com.xdadan.erp.emis.domain.EmisTempCreditCustomer;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.service.IEmisCreditCustomerService;
import com.xdadan.erp.emis.service.IEmisCreditSalesmenService;
import com.xdadan.erp.emis.service.IEmisTempCreditCustomerService;
import com.xdadan.erp.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 客户临时额度Controller
*
* @author heyu
*/
@RestController
@RequestMapping("/apiweb/emisTempCreditCustomer")
public class TempCreditCustomerController extends BaseController {
@Autowired
private IEmisTempCreditCustomerService emisTempCreditCustomerService;
@Autowired
private IEmisCreditCustomerService emisCreditCustomerService;
@Autowired
private ISysUserService sysUserService;
/**
* 新增客户临时额度
*/
@Log(title = "客户临时额度", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody EmisTempCreditCustomer emisTempCreditCustomer) {
try {
if(emisTempCreditCustomer.getParams().get("monthlyPayCode")==null){
return AjaxResult.error("monthlyPayCode不能为空");
}
EmisCreditCustomer emisCreditCustomer = new EmisCreditCustomer();
emisCreditCustomer.setMonthlyPayCode((String) emisTempCreditCustomer.getParams().get("monthlyPayCode"));
List<EmisCreditCustomer> emisCreditCustomers = emisCreditCustomerService.selectEmisCreditCustomerList(emisCreditCustomer);
if(CollectionUtil.isEmpty(emisCreditCustomers)||emisCreditCustomers.size()!=1){
return AjaxResult.error("无法匹配月结客户额度");
}
emisTempCreditCustomer.setAccCode(emisCreditCustomers.get(0).getAccCode());
EntityAuditUtils.setAuditInfo(emisTempCreditCustomer, null, false, this, sysUserService);
return toAjax(emisTempCreditCustomerService.insertEmisTempCreditCustomer(emisTempCreditCustomer));
} catch (Exception e) {
return error(e.getMessage());
}
}
}

View File

@ -0,0 +1,117 @@
/**
* @Project: emis
* @Title: EmisTempCreditSalesmenController.java
* @author heyu
* @date 2026-02-02 16:17:56
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @Description: <p> 销售临时额度 控制器 </p>
*/
package com.xdadan.erp.apiweb;
import cn.hutool.core.collection.CollectionUtil;
import com.xdadan.erp.apiweb.utils.EntityAuditUtils;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.emis.domain.EmisCreditSalesmen;
import com.xdadan.erp.emis.domain.EmisTempCreditCustomer;
import com.xdadan.erp.emis.domain.EmisTempCreditSalesmen;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.service.IEmisCreditSalesmenService;
import com.xdadan.erp.emis.service.IEmisTempCreditSalesmenService;
import com.xdadan.erp.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 销售临时额度Controller
*
* @author heyu
* @date 2026-02-02 16:17:56
*/
@RestController
@RequestMapping("/apiweb/emisTempCreditSalesmen")
public class TempCreditSalesmenController extends BaseController
{
@Autowired
private IEmisTempCreditSalesmenService emisTempCreditSalesmenService;
@Autowired
private IEmisCreditSalesmenService emisCreditSalesmenService;
@Autowired
private ISysUserService sysUserService;
/**
* 新增客户临时额度
*/
@Log(title = "客户临时额度", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody EmisTempCreditSalesmen emisTempCreditSalesmen) {
try {
EntityAuditUtils.setEmpNameFromOaEmpCode(emisTempCreditSalesmen, sysUserService, "setSalesmen");
// 验证传入的transType只能有一个(不能包含逗号)
String transType = emisTempCreditSalesmen.getTransType();
String salesmen = emisTempCreditSalesmen.getSalesmen();
if (transType != null && transType.contains(",")) {
return AjaxResult.error("传入的transType只能有一个");
}
// 验证salesmen和transType不能为空
if (salesmen == null || transType == null || transType.trim().isEmpty()) {
return AjaxResult.error("salesmen和transType不能为空");
}
// 根据salesmen查询所有相关记录
EmisCreditSalesmen queryParam = new EmisCreditSalesmen();
queryParam.setSalesmen(salesmen);
List<EmisCreditSalesmen> list = emisCreditSalesmenService.selectEmisCreditSalesmenList(queryParam);
// 过滤出transType匹配的记录
List<EmisCreditSalesmen> matchedList = new ArrayList<>();
for (EmisCreditSalesmen item : list) {
String dbTransType = item.getTransType();
if (dbTransType != null) {
// 将库中的transType按逗号分割,检查是否包含传入的transType
String[] dbTransTypes = dbTransType.split(",");
for (String dbType : dbTransTypes) {
if (transType.trim().equals(dbType.trim())) {
matchedList.add(item);
break;
}
}
}
}
if(CollectionUtil.isEmpty(matchedList)){
return AjaxResult.error("根据salesmen和transType未查询到对应的现金客户额度");
}
// 如果查询到多条记录,报错
if (matchedList.size() > 1) {
return AjaxResult.error("根据salesmen和transType查询到多条记录,无法确定要新增的现金客户额度");
}
emisTempCreditSalesmen.setAccCode(matchedList.get(0).getAccCode());
EntityAuditUtils.setAuditInfo(emisTempCreditSalesmen, null, false, this, sysUserService);
return toAjax(emisTempCreditSalesmenService.insertEmisTempCreditSalesmen(emisTempCreditSalesmen));
}catch (Exception ex){
ex.printStackTrace();
// 返回子定义异常
if(ex instanceof EmisBizError){
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
}
return AjaxResult.error("服务器异常,联系客服");
}
}
}

View File

@ -16,6 +16,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.xdadan.erp.apiweb.utils.EntityAuditUtils;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
import com.xdadan.erp.common.config.PayConfig;
@ -509,10 +510,12 @@ public class WaybillController extends BaseController
public TableDataInfo list(EmisWaybill emisWaybill)
{
// 非总部只能查看自己的或者与自己相关的订单
startPage();
// setPrivParams(emisWaybill);
EntityAuditUtils.setEmpNameFromOaEmpCode(emisWaybill, sysUserService, "setSalesmen");
startPage();
List<EmisWaybill> list = null;
// 如果单号不为空,则去除其他参数
if(!StringUtils.isEmpty(emisWaybill.getBillCode())){
@ -552,6 +555,37 @@ public class WaybillController extends BaseController
return exportList;
}
/**
* 查询统计信息
*/
@GetMapping("/getQueryStatInfoMap")
public AjaxResult getQueryStatInfoMap(EmisWaybill emisWaybill)
{
EntityAuditUtils.setEmpNameFromOaEmpCode(emisWaybill, sysUserService, "setSalesmen");
startPage();
// setPrivParams(emisWaybill);
if(!StringUtils.isEmpty(emisWaybill.getBillCode())){
emisWaybill.setBillCode(WaybillHelper.formatQueryValue(emisWaybill.getBillCode()));
String[] billCodeSortList = emisWaybill.getBillCode().split(",");
if(billCodeSortList.length>1){
emisWaybill.getParams().put("billCodeSortList",Arrays.asList(billCodeSortList));
}
}
if(!StringUtils.isEmpty(emisWaybill.getOrderSn())){
emisWaybill.setOrderSn(WaybillHelper.formatQueryValue(emisWaybill.getOrderSn()));
String[] orderSnSortList = emisWaybill.getOrderSn().split(",");
if(orderSnSortList.length>1){
emisWaybill.getParams().put("orderSnSortList",Arrays.asList(orderSnSortList));
}
}
Map rstMap = emisWaybillService.getQueryStatInfoMap(emisWaybill);
return AjaxResult.success("查询成功",rstMap);
}

View File

@ -12,7 +12,6 @@ import java.util.stream.Collectors;
/**
* 实体审计工具类
* 用于设置实体的创建人、修改人、创建网点、修改网点等信息
*
* @author heyu
* @date 2026-01-29
@ -20,13 +19,12 @@ import java.util.stream.Collectors;
public class EntityAuditUtils {
/**
* 设置实体的创建人或修改人信息
*
* @param entity 实体对象
* @param user 用户信息,如果为null则从BaseController获取当前登录用户
* @param isUpdate 是否为更新操作,true表示更新,false表示新增
* @param baseController BaseController实例,用于获取当前登录用户(当user为null时)
* @param sysUserService 用户服务,用于根据oaEmpCode查询用户(当从params中获取oaEmpCode时)
* @param user 用户信息
* @param isUpdate 是否为更新操作
* @param baseController
* @param sysUserService 用户服务
*/
public static void setAuditInfo(Object entity, SysUser user, boolean isUpdate,
BaseController baseController, ISysUserService sysUserService) {
@ -34,7 +32,6 @@ public class EntityAuditUtils {
return;
}
// 如果user为null,尝试从params中获取oaEmpCode或使用当前登录用户
if (user == null) {
user = getUserFromEntity(entity, baseController, sysUserService);
}
@ -45,16 +42,13 @@ public class EntityAuditUtils {
try {
if (isUpdate) {
// 设置修改人和修改网点
setFieldValue(entity, "setUpdateBy", String.valueOf(user.getUserId()));
setFieldValue(entity, "setUpdateSite", String.valueOf(user.getOwnerSiteCode()));
} else {
// 设置创建人和创建网点
setFieldValue(entity, "setCreateBy", String.valueOf(user.getUserId()));
setFieldValue(entity, "setCreateSite", String.valueOf(user.getOwnerSiteCode()));
}
} catch (Exception e) {
// 如果实体没有这些方法,忽略异常
}
}
@ -153,4 +147,53 @@ public class EntityAuditUtils {
// 如果方法不存在或调用失败,忽略异常
}
}
/**
*
*
* @param entity 实体对象
* @param sysUserService 用户服务
* @param setterMethodName setter方法名
*/
public static void setEmpNameFromOaEmpCode(Object entity, ISysUserService sysUserService, String setterMethodName) {
if (entity == null || sysUserService == null || StringUtils.isEmpty(setterMethodName)) {
return;
}
try {
// 获取params
Method getParamsMethod = entity.getClass().getMethod("getParams");
Object params = getParamsMethod.invoke(entity);
if (params != null && params instanceof java.util.Map) {
@SuppressWarnings("unchecked")
java.util.Map<String, Object> paramsMap = (java.util.Map<String, Object>) params;
Object oaEmpCodeObj = paramsMap.get("oaEmpCode");
if (oaEmpCodeObj != null) {
String oaEmpCode = oaEmpCodeObj.toString();
if (StringUtils.isNotEmpty(oaEmpCode)) {
try {
SysUser queryUser = new SysUser();
// 使用反射设置oaEmpCode,兼容不同的字段名
setFieldValueByReflection(queryUser, "setOaEmpCode", oaEmpCode);
List<SysUser> userList = sysUserService.selectUserList(queryUser);
if (userList != null && !userList.isEmpty()) {
// 取第一个用户的empName
String empName = userList.get(0).getEmpName();
if (StringUtils.isNotEmpty(empName)) {
// 使用反射设置到实体的指定字段
setFieldValue(entity, setterMethodName, empName);
}
}
} catch (Exception e) {
// 查询失败时忽略异常,继续使用原有参数查询
}
}
}
}
} catch (Exception e) {
// 如果实体没有getParams方法,忽略异常
}
}
}