fix: 优化逻辑

This commit is contained in:
tangwei 2026-04-27 11:07:43 +08:00
parent 15db44b2f5
commit b20b4387a6
21 changed files with 295 additions and 18 deletions

View File

@ -39,6 +39,7 @@ public class ApprovalChangeLogController {
@Operation(summary = "分页查询变更记录列表(通用)")
public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
Page<ApprovalChangeLog> approvalChangeLogPage = DataSourceRequestUtil.executeQuery(request, ApprovalChangeLog.class, approvalChangeLogService);
approvalChangeLogService.fillUserNames(approvalChangeLogPage.getRecords());
return ResponseResult.successData(approvalChangeLogPage);
}

View File

@ -39,6 +39,7 @@ public class ApprovalLogController {
@Operation(summary = "分页查询审批日志列表(通用)")
public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
Page<ApprovalLog> approvalLogPage = DataSourceRequestUtil.executeQuery(request, ApprovalLog.class, approvalLogService);
approvalLogService.fillUserNames(approvalLogPage.getRecords());
return ResponseResult.successData(approvalLogPage);
}

View File

@ -42,6 +42,7 @@ public class ApprovalMainController {
@Operation(summary = "分页查询审批列表(通用)")
public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
Page<ApprovalMain> approvalMainPage = DataSourceRequestUtil.executeQuery(request, ApprovalMain.class, approvalMainService);
approvalMainService.fillUserNames(approvalMainPage.getRecords());
return ResponseResult.successData(approvalMainPage);
}

View File

@ -240,8 +240,11 @@ public class FishDraftDataController {
request.setBizType("FISH");
FishImportResult result = fishImportService.parseAndMapZip(file, uploadUserId);
importTaskService.updateStatus(taskId, "VALIDATED", null);
String status = "VALIDATED";
if ("1".equals(result.getCode())) {
status="FAILED";
}
importTaskService.updateStatus(taskId, status, null);
importTaskService.updateProgress(taskId, result.getTotalCount(), result.getSuccessCount(), result.getFailedCount());
try {
@ -260,9 +263,8 @@ public class FishDraftDataController {
@PostMapping("/cancelImport")
@Operation(summary = "取消导入任务")
public ResponseResult cancelImport(@RequestParam String taskId,
@RequestParam String operatorId) {
boolean result = importTaskService.cancelTask(taskId, operatorId);
public ResponseResult cancelImport(@RequestParam String taskId) {
boolean result = importTaskService.cancelTask(taskId,SecurityUtils.getUserId());
return result ? ResponseResult.success("取消成功") : ResponseResult.error("取消失败");
}

View File

@ -30,6 +30,12 @@ public class ApprovalChangeLog implements Serializable {
*/
private String approvalId;
/**
* 审批批次名称
*/
@TableField(exist = false)
private String approvalName;
/**
* 草稿数据ID
*/
@ -55,6 +61,12 @@ public class ApprovalChangeLog implements Serializable {
*/
private String operatorId;
/**
* 操作人名称
*/
@TableField(exist = false)
private String operatorName;
/**
* 操作时间
*/

View File

@ -30,6 +30,12 @@ public class ApprovalLog implements Serializable {
*/
private String approvalId;
/**
* 审批批次名字
*/
@TableField(exist = false)
private String approvalName;
/**
* 操作类型SUBMIT提交 / APPROVE通过 / REJECT驳回
*/
@ -40,6 +46,12 @@ public class ApprovalLog implements Serializable {
*/
private String operatorId;
/**
* 操作人名字
*/
@TableField(exist = false)
private String operatorName;
/**
* 操作时间
*/

View File

@ -45,6 +45,12 @@ public class ApprovalMain implements Serializable {
*/
private String applyUserId;
/**
* 提交人名称
*/
@TableField(exist = false)
private String applyUserName;
/**
* 提交时间
*/
@ -60,6 +66,12 @@ public class ApprovalMain implements Serializable {
*/
private String approverId;
/**
* 审批人名称
*/
@TableField(exist = false)
private String approverName;
/**
* 审批完成时间
*/

View File

@ -32,6 +32,13 @@ public class SysUserDataScope implements Serializable {
*/
private String userId;
/**
* 用户名称
*/
@TableField(exist = false)
private String userName;
/**
* 资源类型BASIN / BASE /COMPANY / STATION
*/
@ -100,6 +107,12 @@ public class SysUserDataScope implements Serializable {
*/
private String createdBy;
/**
* 创建人名称
*/
@TableField(exist = false)
private String createdByName;
/**
* 更新时间
*/
@ -111,6 +124,12 @@ public class SysUserDataScope implements Serializable {
*/
private String updatedBy;
/**
* 更新人名称
*/
@TableField(exist = false)
private String updatedByName;
/**
* 备注
*/

View File

@ -216,4 +216,19 @@ public class FishDraftDataVO implements Serializable {
* 排序字段
*/
private Integer orderIndex;
/**
* 创建人名称
*/
private String createdByName;
/**
* 更新人名称
*/
private String updatedByName;
/**
* 删除人名称
*/
private String deletedByName;
}

View File

@ -17,6 +17,8 @@ public interface IApprovalChangeLogService extends IService<ApprovalChangeLog> {
*/
List<ApprovalChangeLog> getByApprovalId(String approvalId);
void fillUserNames(List<ApprovalChangeLog> list);
/**
* 根据草稿数据ID查询变更记录
*/

View File

@ -17,6 +17,8 @@ public interface IApprovalLogService extends IService<ApprovalLog> {
*/
List<ApprovalLog> getByApprovalId(String approvalId);
void fillUserNames(List<ApprovalLog> list);
/**
* 根据操作类型查询
*/

View File

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yfd.platform.data.domain.ApprovalMain;
import java.util.List;
/**
* <p>
* 审批批次主表 服务类
@ -16,6 +18,8 @@ public interface IApprovalMainService extends IService<ApprovalMain> {
*/
Page<ApprovalMain> queryPageList(Page<ApprovalMain> page, String bizType, String status);
void fillUserNames(List<ApprovalMain> list);
/**
* 根据审批批次号查询
*/

View File

@ -1,14 +1,16 @@
package com.yfd.platform.data.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.data.domain.ApprovalLog;
import com.yfd.platform.data.mapper.ApprovalLogMapper;
import com.yfd.platform.data.service.IApprovalLogService;
import com.yfd.platform.system.domain.SysUser;
import com.yfd.platform.system.mapper.SysUserMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* <p>
@ -20,12 +22,50 @@ public class ApprovalLogServiceImpl extends ServiceImpl<ApprovalLogMapper, Appro
@Resource
private ApprovalLogMapper approvalLogMapper;
@Resource
private SysUserMapper sysUserMapper;
@Override
public List<ApprovalLog> getByApprovalId(String approvalId) {
return approvalLogMapper.selectByApprovalId(approvalId);
}
@Override
public void fillUserNames(List<ApprovalLog> list) {
if (list == null || list.isEmpty()) {
return;
}
Set<String> userIds = new HashSet<>();
for (ApprovalLog vo : list) {
if (StrUtil.isNotBlank(vo.getApprovalId())) {
userIds.add(vo.getApprovalId());
}
if (StrUtil.isNotBlank(vo.getOperatorId())) {
userIds.add(vo.getOperatorId());
}
}
if (userIds.isEmpty()) {
return;
}
Map<String, String> userNameMap = new HashMap<>();
List<SysUser> users = sysUserMapper.selectBatchIds(userIds);
for (SysUser user : users) {
userNameMap.put(user.getId(), user.getNickname());
}
for (ApprovalLog vo : list) {
if (StrUtil.isNotBlank(vo.getApprovalId())) {
vo.setApprovalName(userNameMap.get(vo.getApprovalId()));
}
if (StrUtil.isNotBlank(vo.getOperatorId())) {
vo.setOperatorName(userNameMap.get(vo.getOperatorId()));
}
}
}
@Override
public List<ApprovalLog> getByAction(String action) {
return approvalLogMapper.selectByAction(action);

View File

@ -1,19 +1,20 @@
package com.yfd.platform.data.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yfd.platform.data.domain.ApprovalLog;
import com.yfd.platform.data.domain.ApprovalMain;
import com.yfd.platform.data.mapper.ApprovalLogMapper;
import com.yfd.platform.data.mapper.ApprovalMainMapper;
import com.yfd.platform.data.service.IApprovalLogService;
import com.yfd.platform.data.service.IApprovalMainService;
import com.yfd.platform.system.domain.SysUser;
import com.yfd.platform.system.mapper.SysUserMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.*;
/**
* <p>
@ -29,15 +30,58 @@ public class ApprovalMainServiceImpl extends ServiceImpl<ApprovalMainMapper, App
@Resource
private IApprovalLogService approvalLogService;
@Resource
private SysUserMapper sysUserMapper;
@Override
public Page<ApprovalMain> queryPageList(Page<ApprovalMain> page, String bizType, String status) {
return this.page(page, this.lambdaQuery()
Page<ApprovalMain> approvalMainPage = this.page(page, this.lambdaQuery()
.eq(StringUtils.hasText(bizType), ApprovalMain::getBizType, bizType)
.eq(StringUtils.hasText(status), ApprovalMain::getStatus, status)
.orderByDesc(ApprovalMain::getCreatedAt)
.getWrapper());
fillUserNames(approvalMainPage.getRecords());
return approvalMainPage;
}
@Override
public void fillUserNames(List<ApprovalMain> list) {
if (list == null || list.isEmpty()) {
return;
}
Set<String> userIds = new HashSet<>();
for (ApprovalMain vo : list) {
if (StrUtil.isNotBlank(vo.getApproverId())) {
userIds.add(vo.getApproverId());
}
if (StrUtil.isNotBlank(vo.getApplyUserId())) {
userIds.add(vo.getApplyUserId());
}
}
if (userIds.isEmpty()) {
return;
}
Map<String, String> userNameMap = new HashMap<>();
List<SysUser> users = sysUserMapper.selectBatchIds(userIds);
for (SysUser user : users) {
userNameMap.put(user.getId(), user.getNickname());
}
for (ApprovalMain vo : list) {
if (StrUtil.isNotBlank(vo.getApproverId())) {
vo.setApproverName(userNameMap.get(vo.getApproverId()));
}
if (StrUtil.isNotBlank(vo.getApplyUserId())) {
vo.setApplyUserName(userNameMap.get(vo.getApplyUserId()));
}
}
}
@Override
public ApprovalMain getByApprovalNo(String approvalNo) {
return approvalMainMapper.selectByApprovalNo(approvalNo);

View File

@ -15,6 +15,8 @@ import com.yfd.platform.data.service.IApprovalChangeLogService;
import com.yfd.platform.data.service.IApprovalLogService;
import com.yfd.platform.data.service.IApprovalMainService;
import com.yfd.platform.data.service.IFishDraftDataService;
import com.yfd.platform.system.domain.SysUser;
import com.yfd.platform.system.mapper.SysUserMapper;
import com.yfd.platform.utils.KendoUtil;
import com.yfd.platform.utils.QgcQueryWrapperUtil;
import com.yfd.platform.utils.SecurityUtils;
@ -46,6 +48,9 @@ public class FishDraftDataServiceImpl extends ServiceImpl<FishDraftDataMapper, F
@Resource
private IApprovalLogService approvalLogService;
@Resource
private SysUserMapper sysUserMapper;
@Resource
private ObjectMapper objectMapper;
@ -69,6 +74,7 @@ public class FishDraftDataServiceImpl extends ServiceImpl<FishDraftDataMapper, F
}
Page<FishDraftDataVO> resultPage = fishDraftDataMapper.selectJoinPage(
page, stcd, rstcd, baseId, direction, status, ftp, startTime, endTime);
fillUserNames(resultPage.getRecords());
return resultPage;
}
@ -84,7 +90,56 @@ public class FishDraftDataServiceImpl extends ServiceImpl<FishDraftDataMapper, F
String startTime = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "startTime");
String endTime = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "endTime");
return fishDraftDataMapper.selectJoinList(stcd, rstcd, baseId, direction, status, ftp, startTime, endTime);
List<FishDraftDataVO> list = fishDraftDataMapper.selectJoinList(stcd, rstcd, baseId, direction, status, ftp, startTime, endTime);
fillUserNames(list);
return list;
}
private void fillUserNames(List<FishDraftDataVO> list) {
if (list == null || list.isEmpty()) {
return;
}
Set<String> userIds = new HashSet<>();
for (FishDraftDataVO vo : list) {
if (StrUtil.isNotBlank(vo.getCreatedBy())) {
userIds.add(vo.getCreatedBy());
}
if (StrUtil.isNotBlank(vo.getCreatedBy())) {
userIds.add(vo.getCreatedBy());
}
if (StrUtil.isNotBlank(vo.getUpdatedBy())) {
userIds.add(vo.getUpdatedBy());
}
if (StrUtil.isNotBlank(vo.getDeletedBy())) {
userIds.add(vo.getDeletedBy());
}
}
if (userIds.isEmpty()) {
return;
}
Map<String, String> userNameMap = new HashMap<>();
List<SysUser> users = sysUserMapper.selectBatchIds(userIds);
for (SysUser user : users) {
userNameMap.put(user.getId(), user.getNickname());
}
for (FishDraftDataVO vo : list) {
if (StrUtil.isNotBlank(vo.getCreatedBy())) {
vo.setCreatedByName(userNameMap.get(vo.getCreatedBy()));
}
if (StrUtil.isNotBlank(vo.getUpdatedBy())) {
vo.setUpdatedByName(userNameMap.get(vo.getUpdatedBy()));
}
if (StrUtil.isNotBlank(vo.getDeletedBy())) {
vo.setDeletedByName(userNameMap.get(vo.getDeletedBy()));
}
if (StrUtil.isNotBlank(vo.getDeletedBy())) {
vo.setDeletedByName(userNameMap.get(vo.getDeletedBy()));
}
}
}
@Override

View File

@ -187,7 +187,7 @@ public class ImportTaskServiceImpl extends ServiceImpl<ImportTaskMapper, ImportT
@Override
public ImportTask getLastImportResult(String uploadUserId) {
ImportTask importTask = importTaskMapper.selectOne(new LambdaQueryWrapper<ImportTask>().eq(ImportTask::getUploadUserId, uploadUserId).eq(ImportTask::getBizType, "FISH").orderByDesc(ImportTask::getCreatedAt));
ImportTask importTask = importTaskMapper.selectLastByUserId(uploadUserId);
return importTask;
}
}

View File

@ -18,6 +18,8 @@ import com.yfd.platform.env.mapper.SdEngInfoBHMapper;
import com.yfd.platform.env.mapper.SdHycdDicMapper;
import com.yfd.platform.env.mapper.SdHydrobaseMapper;
import com.yfd.platform.env.mapper.SdRvcdDicMapper;
import com.yfd.platform.system.domain.SysUser;
import com.yfd.platform.system.mapper.SysUserMapper;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -44,15 +46,64 @@ public class SysUserDataScopeServiceImpl extends ServiceImpl<SysUserDataScopeMap
@Resource
private SdEngInfoBHMapper engInfoBHMapper;
@Resource
private SysUserMapper sysUserMapper;
@Override
public Page<SysUserDataScope> queryPageList(Page<SysUserDataScope> page, String userId, String orgType, String orgId, Integer status) {
return this.page(page, this.lambdaQuery()
Page<SysUserDataScope> userDataScopePage = this.page(page, this.lambdaQuery()
.eq(userId != null, SysUserDataScope::getUserId, userId)
.eq(orgType != null && !orgType.isEmpty(), SysUserDataScope::getOrgType, orgType)
.eq(orgId != null && !orgId.isEmpty(), SysUserDataScope::getOrgId, orgId)
.eq(status != null, SysUserDataScope::getStatus, status)
.orderByDesc(SysUserDataScope::getCreatedAt)
.getWrapper());
fillUserNames(userDataScopePage.getRecords());
return userDataScopePage;
}
private void fillUserNames(List<SysUserDataScope> list) {
if (list == null || list.isEmpty()) {
return;
}
Set<String> userIds = new HashSet<>();
for (SysUserDataScope vo : list) {
if (StrUtil.isNotBlank(vo.getCreatedBy())) {
userIds.add(vo.getCreatedBy());
}
if (StrUtil.isNotBlank(vo.getCreatedBy())) {
userIds.add(vo.getCreatedBy());
}
if (StrUtil.isNotBlank(vo.getUpdatedBy())) {
userIds.add(vo.getUpdatedBy());
}
if (StrUtil.isNotBlank(vo.getUserId())) {
userIds.add(vo.getUserId());
}
}
if (userIds.isEmpty()) {
return;
}
Map<String, String> userNameMap = new HashMap<>();
List<SysUser> users = sysUserMapper.selectBatchIds(userIds);
for (SysUser user : users) {
userNameMap.put(user.getId(), user.getNickname());
}
for (SysUserDataScope vo : list) {
if (StrUtil.isNotBlank(vo.getCreatedBy())) {
vo.setCreatedByName(userNameMap.get(vo.getCreatedBy()));
}
if (StrUtil.isNotBlank(vo.getUpdatedBy())) {
vo.setUpdatedByName(userNameMap.get(vo.getUpdatedBy()));
}
if (StrUtil.isNotBlank(vo.getUserId())) {
vo.setUserId(userNameMap.get(vo.getUserId()));
}
}
}
@Override

View File

@ -242,7 +242,7 @@ public class SdEngInfoBH implements Serializable {
/**
* 工程等别 字典编码sd_enginfo_b_h.prgr 1= 2= 3= 4= 5=
*/
private Integer prgr;
private String prgr;
/**
* 电站-主要功能 1=发电 2=防洪 3=灌溉 4=供水 5=航运 6=旅游 7=环境 8=养殖 9=其他

View File

@ -75,6 +75,9 @@ login:
# 启动自动数据库初始化(仅 dev/server
app:
# ZIP导入临时目录配置
zip-import:
temp-dir: ${ZIP_IMPORT_TEMP_DIR:D:\zip_import_temp}
init:
enabled: false
schema: classpath:db-init/sql/min-schema.sql

View File

@ -1,6 +1,6 @@
spring:
profiles:
active: prod
active: devtw
jasypt:
encryptor:

View File

@ -39,7 +39,8 @@
<select id="selectRootList" resultMap="BaseResultMap">
SELECT * FROM SD_RVCD_DIC
WHERE PRVCD IS NULL OR PRVCD = '' OR PRVCD = '0'
WHERE GRD =3 AND
PRVCD IS NULL OR PRVCD = '' OR PRVCD = '0'
ORDER BY ORDER_INDEX ASC
</select>