diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java index 2eee8bb1..344a7c87 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BasicClazzController.java @@ -37,6 +37,7 @@ import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.vo.BasicClazzVO; import org.springblade.desk.basic.service.IBasicClazzService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.BasicClazzWrapper; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; @@ -115,6 +116,9 @@ public class BasicClazzController extends BladeController { @ApiOperationSupport(order = 21) @Operation(summary = "page分页", description = "传入BasicClazz Obj") public R> page(BasicClazzVO basicClazz, Query query) { + // 处理排序字段转换:将前端虚拟字段转换为实际数据库字段(如 MEMO -> CREATE_TIME) + QueryUtils.convertSortField(query); + IPage pagesVO = service.selectBasicClazzPage( Condition.getPage(query), basicClazz ); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java index 4fce8693..8fc055fe 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BatConfigController.java @@ -31,6 +31,7 @@ import org.springblade.desk.basic.pojo.entity.BatConfig; import org.springblade.desk.basic.pojo.vo.BatConfigVO; import org.springblade.desk.basic.service.IBatConfigService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.BatConfigWrapper; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -99,6 +100,7 @@ public class BatConfigController extends BladeController { @ApiOperationSupport(order = 21) @Operation(summary = "page分页", description = "传入BatConfig Obj") public R> page(BatConfigVO batConfig, Query query) { + QueryUtils.convertSortField( query); IPage pagesVO = service.selectBatConfigPage( Condition.getPage(query), batConfig ); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java index c7fcc3e1..0552d3c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/BsAssignController.java @@ -57,6 +57,7 @@ import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.BsAssignWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.system.cache.DictCache; @@ -123,9 +124,7 @@ public class BsAssignController extends BladeController { @ApiOperationSupport(order = 3) @Operation(summary = "分页", description = "传入bsAssign") public R> page(BsAssignVO bsAssign, Query query) { - query.setDescs(null); - query.setAscs(null); - + QueryUtils.convertSortField(query); IPage pages = bsAssignService.selectBsAssignPage(Condition.getPage(query), bsAssign); List list = pages.getRecords(); for(BsAssignVO vo:list){ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java index a4da8226..a25fd4cb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java @@ -50,6 +50,7 @@ import org.springblade.desk.basic.excel.CraftAbilityExcel; import org.springblade.desk.basic.pojo.vo.CraftAbilityVO; import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.CraftAbilityWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; @@ -121,10 +122,7 @@ public class CraftAbilityController extends BladeController { @ApiOperationSupport(order = 2) @Operation(summary = "分页", description = "传入CraftAbility") public R> list(@Parameter(hidden = true) @RequestParam Map craftAbility, Query query) { - craftAbility.remove("descs"); - craftAbility.remove("ascs"); - query.setDescs(null); - query.setAscs(null); + QueryUtils.convertSortField(query); Date startTime = null; Date endTime = null; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java index c31a69aa..0ff38343 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/LocallyPlatedPartController.java @@ -84,12 +84,9 @@ public class LocallyPlatedPartController extends BladeController { @Operation(summary = "list分页", description = "传入LocallyPlatedPart Obj") public R> list(@Parameter(hidden = true) @RequestParam Map locallyPlatedPart, Query query) { - locallyPlatedPart.remove("descs"); - locallyPlatedPart.remove("ascs"); - query.setDescs(null); - query.setAscs(null); + QueryWrapper qw = Condition.getQueryWrapper(locallyPlatedPart, LocallyPlatedPart.class); - qw.last("ORDER BY UPDATE_TIME DESC "); + IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = LocallyPlatedPartWrapper.build().pageVO(pages); pagesVO.getRecords() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java index ae1e97e8..95f6b4dd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/OemController.java @@ -37,6 +37,7 @@ import org.springblade.desk.basic.service.ICraftAbilityService; import org.springblade.desk.basic.service.IOemCraftAbilityService; import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.OemWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.system.feign.IUserClient; @@ -210,6 +211,7 @@ public class OemController extends BladeController { @Operation(summary = "list分页", description = "传入Oem Obj") public R> list(@Parameter(hidden = true) @RequestParam Map map, Query query) { + QueryUtils.convertSortField(query); // build QueryWrapper QueryWrapper qw = Condition.getQueryWrapper(map, Oem.class); qw.eq(map.containsKey(Oem.COL_CODE), Oem.COL_CODE, (Func.toStr(map.get(OemSearch.COL_CODE)))); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java index 7c25a48b..054867d1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java @@ -3,6 +3,8 @@ */ package org.springblade.desk.basic.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -45,10 +47,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -97,17 +96,26 @@ public class PlatingController extends BladeController { @Operation(summary = "list分页", description = "传入Plating Obj") public R> list(@Parameter(hidden = true) @RequestParam Map plating, Query query) { - QueryWrapper qw = Condition.getQueryWrapper(plating, Plating.class); - qw.like(plating.containsKey("configNo"), Plating.COL_CONFIG_NO, Func.toStr(plating.get("configNo"))); - qw.eq(plating.containsKey("bcId"), Plating.COL_BC_ID, Func.toInt(plating.get("bcId"))); - qw.like(plating.containsKey("plating"), Plating.COL_PLATING, Func.toStr(plating.get("plating"))); + String configNo = Func.toStr(plating.getOrDefault("configNo", null)); + Object bcId = plating.getOrDefault("bcId", null); + String platingStr = Func.toStr(plating.getOrDefault("plating", null)); + plating.remove("configNo"); + plating.remove("plating"); + plating.remove("bcId"); + QueryWrapper qw = Condition.getQueryWrapper(plating,Plating.class); + qw.like(StrUtil.isNotEmpty(configNo), Plating.COL_CONFIG_NO, configNo); + qw.eq(Objects.nonNull(bcId), Plating.COL_BC_ID, Func.toLong(bcId)); + qw.like(StrUtil.isNotEmpty(platingStr), Plating.COL_PLATING, platingStr); + - qw.orderByAsc(BaseCol.ID); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = PlatingWrapper.build().pageVO(pages); //bcId //镀种ID , 镀种名称 Set bcIds = pagesVO.getRecords().stream().map(PlatingVO::getBcId).collect(Collectors.toSet()); + if (CollUtil.isEmpty(bcIds)){ + return R.data(pagesVO); + } Map bcIdAndName = basicClazzService .listByIds(bcIds) .stream() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java index e3e85705..00fe6598 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java @@ -247,10 +247,10 @@ public class TeamSetController extends BladeController { @Operation(summary = "list分页", description = "传入TeamSet Obj") public R> list(@Parameter(hidden = true) @RequestParam Map map, Query query) { - map.remove("descs"); - map.remove("ascs"); - query.setDescs(null); - query.setAscs(null); + //map.remove("descs"); + //map.remove("ascs"); + //query.setDescs(null); + //query.setAscs(null); // List ids = new ArrayList<>(); // if(map.containsKey("dispatcherRealName")){ // List users = iUserClient.userListByName(Func.toStr(map.get("dispatcherRealName"))); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java index 8cf29bd3..090da012 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java @@ -33,6 +33,7 @@ import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.vo.WorkCenterVO; import org.springblade.desk.basic.service.*; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.WorkCenterWrapper; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.system.feign.IUserClient; @@ -95,10 +96,10 @@ public class WorkCenterController extends BladeController { @Operation(summary = "list分页", description = "传入WorkCenter Obj") public R> list(@Parameter(hidden = true) @RequestParam Map workCenter, Query query) { - query.setDescs(null); - query.setAscs(null); - workCenter.remove("descs"); - workCenter.remove("ascs"); + //query.setDescs(null); + //query.setAscs(null); + //workCenter.remove("descs"); + //workCenter.remove("ascs"); QueryWrapper qw = Condition.getQueryWrapper(workCenter, WorkCenter.class); @@ -109,8 +110,8 @@ public class WorkCenterController extends BladeController { qw.eq(workCenter.containsKey("leaderUser"), WorkCenter.COL_LEADER_USER, Func.toLong(workCenter.get("leaderUser"))); qw.like(workCenter.containsKey("team"), WorkCenter.COL_TEAM, Func.toStr(workCenter.get("team"))); qw.like(workCenter.containsKey("teamId"), WorkCenter.COL_TEAM_ID, Func.toStr(workCenter.get("teamId"))); - - qw.last("ORDER BY UPDATE_TIME DESC "); + QueryUtils.convertSortField( query); + //qw.last("ORDER BY UPDATE_TIME DESC "); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = WorkCenterWrapper.build().pageVO(pages); List vos = pagesVO.getRecords(); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java index 827c9374..1cbd358d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java @@ -37,6 +37,7 @@ import org.springblade.desk.basic.pojo.vo.WorkTankVO; import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.service.IWorkTankService; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.util.QueryUtils; import org.springblade.desk.basic.wrapper.WorkTankWrapper; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; @@ -90,8 +91,14 @@ public class WorkTankController extends BladeController { @Operation(summary = "list分页", description = "传入WorkTank Obj") public R> list(@Parameter(hidden = true) @RequestParam Map workTank, Query query) { + // QueryWrapper qw = Condition.getQueryWrapper(workTank, WorkTank.class); - IPage pages = service.page(Condition.getPage(query), qw); + + QueryUtils.convertSortField(query); + + IPage page = Condition.getPage(query); + + IPage pages = service.page(page, qw); IPage pagesVO = WorkTankWrapper.build().pageVO(pages); List listVO = pagesVO.getRecords(); for(WorkTankVO one : listVO){ @@ -123,6 +130,9 @@ public class WorkTankController extends BladeController { @ApiOperationSupport(order = 21) @Operation(summary = "page分页", description = "传入WorkTank Obj") public R> page(WorkTankVO workTank, Query query) { + // 处理排序字段转换:将前端传来的虚拟字段转换为实际数据库字段 + convertSortField(query); + IPage pagesVO = service.selectWorkTankPage( Condition.getPage(query), workTank ); @@ -309,4 +319,60 @@ public class WorkTankController extends BladeController { }); return R.data(service.saveBatch(noticeList)); } + + /** + * 转换排序字段:将前端虚拟字段名转换为数据库实际字段名 + * 例如:OP_USER_REAL_NAME -> UPDATE_TIME + */ + private void convertSortField(Query query) { + if (query == null) { + return; + } + + // 处理降序排序字段 + if (Func.isNotEmpty(query.getDescs())) { + String descs = query.getDescs(); + descs = convertSingleSortField(descs); + query.setDescs(descs); + } + + // 处理升序排序字段 + if (Func.isNotEmpty(query.getAscs())) { + String ascs = query.getAscs(); + ascs = convertSingleSortField(ascs); + query.setAscs(ascs); + } + } + + /** + * 转换单个排序字段 + * @param sortField 排序字段字符串(可能包含多个字段,逗号分隔) + * @return 转换后的排序字段 + */ + private String convertSingleSortField(String sortField) { + if (Func.isEmpty(sortField)) { + return sortField; + } + + // 定义字段映射关系:前端字段名 -> 数据库字段名 + String[] fields = sortField.split(","); + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < fields.length; i++) { + String field = fields[i].trim(); + String convertedField = switch (field.toUpperCase()) { + case "OP_USER_REAL_NAME" -> "UPDATE_TIME"; // 操作人姓名转换为更新时间排序 + // 可以在此添加更多字段映射 + // case "OTHER_FIELD" -> "ACTUAL_COLUMN"; + default -> field; // 其他字段保持不变 + }; + + result.append(convertedField); + if (i < fields.length - 1) { + result.append(","); + } + } + + return result.toString(); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java new file mode 100644 index 00000000..ccfd1ae6 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/QueryUtils.java @@ -0,0 +1,86 @@ +package org.springblade.desk.basic.util;/** + * @date : 2026/4/28 13:27 + */ + +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.controller.BatConfigController; + +/** + * 文件名称 + * @module 归属项目 + * @author *** + * @date 2025/11/26 10:27 + */ +public class QueryUtils { + /** + * 转换排序字段:将前端虚拟字段名转换为数据库实际字段名 + * 例如:OP_USER_REAL_NAME -> UPDATE_TIME + */ + public static void convertSortField(Query query) { + if (query == null) { + return; + } + + // 处理降序排序字段 + if (Func.isNotEmpty(query.getDescs())) { + String descs = query.getDescs(); + descs = convertSingleSortField(descs); + query.setDescs(descs); + } + + // 处理升序排序字段 + if (Func.isNotEmpty(query.getAscs())) { + String ascs = query.getAscs(); + ascs = convertSingleSortField(ascs); + query.setAscs(ascs); + } + } + + /** + * 转换单个排序字段 + * @param sortField 排序字段字符串(可能包含多个字段,逗号分隔) + * @return 转换后的排序字段 + */ + public static String convertSingleSortField(String sortField) { + if (Func.isEmpty(sortField)) { + return sortField; + } + + // 定义字段映射关系:前端字段名 -> 数据库字段名 + String[] fields = sortField.split(","); + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < fields.length; i++) { + String field = fields[i].trim(); + String convertedField = switch (field.toUpperCase()) { + // 操作人姓名转换为更新时间排序 + case "OP_USER_REAL_NAME" -> "UPDATE_USER"; + /** + * {@link org.springblade.desk.basic.controller.OemController.list} + * */ + case "CUR_STATUS_TEXT" -> "status"; + /** + * {@link BatConfigController#page(org.springblade.desk.basic.pojo.vo.BatConfigVO, org.springblade.core.mp.support.Query)} + * */ + case "UPDATE_USER_NAME" -> "UPDATE_USER"; + /** + * {@link org.springblade.desk.basic.controller.WorkCenterController#list(java.util.Map, org.springblade.core.mp.support.Query)} + * */ + case "LEADER_USER_NAME" -> "LEADER_USER"; + /** + * {@link } + * */ + case "CREATE_USER_NAME" -> "CREATE_USER"; + default -> field; + }; + + result.append(convertedField); + if (i < fields.length - 1) { + result.append(","); + } + } + + return result.toString(); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml index dea5924a..6a57c857 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpciuPatrolInspectionMapper.xml @@ -8,9 +8,9 @@ - + - + @@ -27,7 +27,11 @@ - select * from BS_INS_TEST n + select n.ID, n.DEVICE, n.DOSING_TIME, n.DOSING_MAN, n.IT_NI, n.IT_CU, + n.IT_CR, n.IT_CN2, n.IT_PH, n.MEMO, n.CREATE_USER, n.CREATE_DEPT, + n.CREATE_TIME, n.UPDATE_USER, n.UPDATE_TIME, n.STATUS, n.IS_DELETED + from BS_INS_TEST n n.is_deleted = 0 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml index ca73b5f0..c028be95 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/TowerReportMapper.xml @@ -23,7 +23,10 @@