修改科目创建订单默认显示设置
This commit is contained in:
+45
-16
@@ -53,10 +53,10 @@ public class ExpenseAccountApplicationService {
|
||||
*/
|
||||
public List<ExpenseAccountPO> queryList(ExpenseAccountDO expenseAccountDO) {
|
||||
try {
|
||||
log.info("开始查询费用科目列表,参数:organizationId={}, topOrganizationId={}, expenseAccountDO={}",
|
||||
log.info("开始查询费用科目列表,参数:organizationId={}, topOrganizationId={}, expenseAccountDO={}",
|
||||
expenseAccountDO.getOrganizationId(), expenseAccountDO.getTopOrganizationId(), expenseAccountDO);
|
||||
setDataPermission(expenseAccountDO);
|
||||
|
||||
|
||||
// 处理 createByName 和 updateByName 字段:
|
||||
// 问题:ExpenseAccountAssembler 在查询场景下可能会自动设置 createByName 和 updateByName 为当前登录用户名
|
||||
// 这会导致 SQL 中添加 create_by_name LIKE '%nanguang%' 和 update_by_name LIKE '%nanguang%' 条件
|
||||
@@ -67,21 +67,21 @@ public class ExpenseAccountApplicationService {
|
||||
if (loginUser != null && loginUser.getUserPo() != null) {
|
||||
Long loginUserOrganizationId = loginUser.getUserPo().getOrganizationId();
|
||||
String currentUserName = loginUser.getUsername();
|
||||
|
||||
|
||||
// 先保存前端传递的 createByName 和 updateByName(用于判断是否是前端传递的查询条件)
|
||||
String frontendCreateByName = expenseAccountDO.getCreateByName();
|
||||
String frontendUpdateByName = expenseAccountDO.getUpdateByName();
|
||||
|
||||
|
||||
if (expenseAccountDO.getOrganizationId() == null && expenseAccountDO.getTopOrganizationId() == null) {
|
||||
// 查询所有组织的数据时,不应该通过创建者或更新者来过滤,清空这些字段
|
||||
// 除非前端明确传递了这些字段作为查询条件
|
||||
if (frontendCreateByName == null || frontendCreateByName.isEmpty() ||
|
||||
if (frontendCreateByName == null || frontendCreateByName.isEmpty() ||
|
||||
(currentUserName != null && frontendCreateByName.equals(currentUserName))) {
|
||||
// 前端未传递,或者等于当前登录用户名(可能是 Assembler 自动设置的),清空
|
||||
log.info("查询所有组织数据,清空 createByName 过滤条件(前端未传递或由 Assembler 自动设置)");
|
||||
expenseAccountDO.setCreateByName(null);
|
||||
}
|
||||
if (frontendUpdateByName == null || frontendUpdateByName.isEmpty() ||
|
||||
if (frontendUpdateByName == null || frontendUpdateByName.isEmpty() ||
|
||||
(currentUserName != null && frontendUpdateByName.equals(currentUserName))) {
|
||||
// 前端未传递,或者等于当前登录用户名(可能是 Assembler 自动设置的),清空
|
||||
log.info("查询所有组织数据,清空 updateByName 过滤条件(前端未传递或由 Assembler 自动设置)");
|
||||
@@ -92,20 +92,20 @@ public class ExpenseAccountApplicationService {
|
||||
// 清空这些字段,避免限制查询结果(因为其他组织的数据可能不是当前登录用户创建的)
|
||||
if (currentUserName != null) {
|
||||
if (expenseAccountDO.getCreateByName() != null && expenseAccountDO.getCreateByName().equals(currentUserName)) {
|
||||
log.info("南光组织查询指定组织数据(organizationId={}),清空 createByName 过滤条件(可能由 Assembler 自动设置)",
|
||||
log.info("南光组织查询指定组织数据(organizationId={}),清空 createByName 过滤条件(可能由 Assembler 自动设置)",
|
||||
expenseAccountDO.getOrganizationId());
|
||||
expenseAccountDO.setCreateByName(null);
|
||||
}
|
||||
if (expenseAccountDO.getUpdateByName() != null && expenseAccountDO.getUpdateByName().equals(currentUserName)) {
|
||||
log.info("南光组织查询指定组织数据(organizationId={}),清空 updateByName 过滤条件(可能由 Assembler 自动设置)",
|
||||
log.info("南光组织查询指定组织数据(organizationId={}),清空 updateByName 过滤条件(可能由 Assembler 自动设置)",
|
||||
expenseAccountDO.getOrganizationId());
|
||||
expenseAccountDO.setUpdateByName(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.info("设置组织ID后,查询参数:organizationId={}, topOrganizationId={}, createByName={}, updateByName={}",
|
||||
|
||||
log.info("设置组织ID后,查询参数:organizationId={}, topOrganizationId={}, createByName={}, updateByName={}",
|
||||
expenseAccountDO.getOrganizationId(), expenseAccountDO.getTopOrganizationId(),
|
||||
expenseAccountDO.getCreateByName(), expenseAccountDO.getUpdateByName());
|
||||
List<ExpenseAccountPO> result = expenseAccountDomainService.queryList(expenseAccountDO);
|
||||
@@ -137,14 +137,14 @@ public class ExpenseAccountApplicationService {
|
||||
log.warn("费用科目查询 - 未获取到登录用户信息,跳过数据权限过滤");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
UserPo userPo = loginUser.getUserPo();
|
||||
Long loginUserOrganizationId = userPo.getOrganizationId();
|
||||
Long topOrganizationId = userPo.getTopOrganizationId();
|
||||
|
||||
|
||||
// 先保存前端传递的 organizationId(如果存在)
|
||||
Long frontendOrganizationId = expenseAccountDO.getOrganizationId();
|
||||
|
||||
|
||||
// 数据权限:根据 organizationId 来设置查询权限
|
||||
// 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己
|
||||
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L)) {
|
||||
@@ -379,6 +379,35 @@ public class ExpenseAccountApplicationService {
|
||||
expenseAccountDO.setUpdateByName(loginUser.getUsername());
|
||||
return expenseAccountDomainService.update(expenseAccountDO);
|
||||
}
|
||||
/**
|
||||
* 修改创建订单是否固定显示 0-否 1-是
|
||||
* @param expenseAccountDTO
|
||||
* @return
|
||||
*/
|
||||
public boolean changeFixedOrderDisplay(ExpenseAccountDTO expenseAccountDTO) {
|
||||
//获取登录用户信息
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if (ObjectUtil.isNull(loginUser)) {
|
||||
throw new DigitalLogisticsException(UserError.TIMEOUT);
|
||||
}
|
||||
//根据id修改启用状态停用状态
|
||||
if(expenseAccountDTO.getExpenseAccountId() == null){
|
||||
throw new ServiceException("费用科目id不能为空");
|
||||
}
|
||||
if(expenseAccountDTO.getFixedOrderDisplay() == null){
|
||||
throw new ServiceException("状态不能为空");
|
||||
}
|
||||
if(expenseAccountDTO.getFixedOrderDisplay() != 0 && expenseAccountDTO.getFixedOrderDisplay()!=1){
|
||||
throw new ServiceException("状态错误");
|
||||
}
|
||||
ExpenseAccountDO expenseAccountDO = new ExpenseAccountDO();
|
||||
expenseAccountDO.setExpenseAccountId(expenseAccountDTO.getExpenseAccountId());
|
||||
expenseAccountDO.setFixedOrderDisplay(expenseAccountDTO.getFixedOrderDisplay());
|
||||
expenseAccountDO.setUpdateBy(loginUser.getUserid());
|
||||
expenseAccountDO.setUpdateTime(new Date());
|
||||
expenseAccountDO.setUpdateByName(loginUser.getUsername());
|
||||
return expenseAccountDomainService.update(expenseAccountDO);
|
||||
}
|
||||
/**
|
||||
* 根据编码查询费用科目信息
|
||||
*/
|
||||
@@ -398,7 +427,7 @@ public class ExpenseAccountApplicationService {
|
||||
setDataPermissionForSearch(searchExpenseAccountDO);
|
||||
return expenseAccountDomainService.selectOtherExpenseAccount(searchExpenseAccountDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 为 SearchExpenseAccountDO 设置数据权限
|
||||
*/
|
||||
@@ -408,11 +437,11 @@ public class ExpenseAccountApplicationService {
|
||||
log.warn("费用科目查询 - 未获取到登录用户信息,跳过数据权限过滤");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
UserPo userPo = loginUser.getUserPo();
|
||||
Long loginUserOrganizationId = userPo.getOrganizationId();
|
||||
Long topOrganizationId = userPo.getTopOrganizationId();
|
||||
|
||||
|
||||
// 数据权限:根据 organizationId 来设置查询权限
|
||||
// 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己
|
||||
if (loginUserOrganizationId != null && loginUserOrganizationId.equals(2827L)) {
|
||||
|
||||
+12
-3
@@ -101,7 +101,7 @@ public class ExpenseAccountApi extends BaseController{
|
||||
public AjaxResult selectOtherExpenseAccount(SearchExpenseAccountDTO searchExpenseAccountDTO){
|
||||
SearchExpenseAccountDO searchExpenseAccountDO = new SearchExpenseAccountDO();
|
||||
BeanUtils.copyProperties(searchExpenseAccountDTO,searchExpenseAccountDO);
|
||||
|
||||
|
||||
// 数据权限:根据组织ID实现数据隔离
|
||||
// organizationId=2827(南光)时,查询所有组织的数据;其他组织只查询自己的数据
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
@@ -115,7 +115,7 @@ public class ExpenseAccountApi extends BaseController{
|
||||
searchExpenseAccountDO.setOrganizationId(loginUserOrganizationId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return AjaxResult.success(expenseAccountApplicationService.selectOtherExpenseAccount(searchExpenseAccountDO));
|
||||
|
||||
}
|
||||
@@ -258,7 +258,16 @@ public class ExpenseAccountApi extends BaseController{
|
||||
return AjaxResult.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation("修改创建订单默认显示设置")
|
||||
@PostMapping("/changeFixedOrderDisplay")
|
||||
public AjaxResult changeFixedOrderDisplay(@RequestBody ExpenseAccountDTO expenseAccountDTO)
|
||||
{
|
||||
try {
|
||||
return toAjax(expenseAccountApplicationService.changeFixedOrderDisplay(expenseAccountDTO));
|
||||
}catch (Exception e){
|
||||
return AjaxResult.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation("根据code获取费用科目")
|
||||
@GetMapping(value = "/getInfoByCode")
|
||||
|
||||
Reference in New Issue
Block a user