From b972df74be97b3ba696d997ca19b7a39e14d1584 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E4=B8=9C=E6=81=92?= <1747763533@qq.com> Date: Tue, 3 Mar 2026 10:01:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E4=BC=8D=E5=A4=8D=E5=AD=A6-=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=8E=A5=E5=8F=A3=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- srs-admin/src/main/resources/application.yml | 4 +- .../com/srs/routine/domain/SysDisMate.java | 52 ++++++++--- .../srs/routine/mapper/SysDisMateMapper.java | 3 + .../routine/service/ISysDisMateService.java | 1 + .../service/impl/SysDisBasicServiceImpl.java | 89 ++++++++++++++++++- .../mapper/routine/SysDisBasicMapper.xml | 4 + .../mapper/routine/SysDisMateMapper.xml | 47 +++++++++- 7 files changed, 186 insertions(+), 14 deletions(-) diff --git a/srs-admin/src/main/resources/application.yml b/srs-admin/src/main/resources/application.yml index bdf5918..80de8b7 100644 --- a/srs-admin/src/main/resources/application.yml +++ b/srs-admin/src/main/resources/application.yml @@ -64,8 +64,8 @@ spring: # 国际化资源文件路径 basename: i18n/messages profiles: - active: druid #正式环境 -# active: dev #测试环境 +# active: druid #正式环境 + active: dev #测试环境 # 文件上传 servlet: multipart: diff --git a/srs-routine/src/main/java/com/srs/routine/domain/SysDisMate.java b/srs-routine/src/main/java/com/srs/routine/domain/SysDisMate.java index 570fe78..02b2e76 100644 --- a/srs-routine/src/main/java/com/srs/routine/domain/SysDisMate.java +++ b/srs-routine/src/main/java/com/srs/routine/domain/SysDisMate.java @@ -13,7 +13,7 @@ import com.srs.common.core.domain.BaseEntity; * 退伍复学材料对象 sys_dis_mate * * @author srs - * @date 2025-11-12 + * @date 2026-03-01 */ @Data @EqualsAndHashCode(callSuper = true) @@ -89,11 +89,11 @@ private static final long serialVersionUID=1L; private String newgrade; /** - * 新专业 + * 新班级 */ - @ApiModelProperty("新专业") + @ApiModelProperty("新班级") @TableField("newmajor") - @Excel(name = "新专业") + @Excel(name = "新班级") private String newmajor; /** @@ -121,20 +121,52 @@ private static final long serialVersionUID=1L; private String material; /** - * 保留字段1 + * 学院ID */ - @ApiModelProperty("保留字段1") + @ApiModelProperty("学院ID") @TableField("data1") - @Excel(name = "保留字段1") + @Excel(name = "学院ID") private String data1; /** - * 保留字段2 + * 专业ID */ - @ApiModelProperty("保留字段2") + @ApiModelProperty("专业ID") @TableField("data2") - @Excel(name = "保留字段2") + @Excel(name = "专业ID") private String data2; + /** + * 最终专业1 + */ + @ApiModelProperty("最终专业1") + @TableField("finaldata1") + @Excel(name = "最终专业1") + private String finaldata1; + + /** + * 最终专业1 + */ + @ApiModelProperty("最终专业1") + @TableField("finaldata2") + @Excel(name = "最终专业1") + private String finaldata2; + + /** + * 最终年级 + */ + @ApiModelProperty("最终年级") + @TableField("finalmajor") + @Excel(name = "最终年级") + private String finalmajor; + + /** + * 保留字段 + */ + @ApiModelProperty("保留字段") + @TableField("finallabel") + @Excel(name = "保留字段") + private String finallabel; + } diff --git a/srs-routine/src/main/java/com/srs/routine/mapper/SysDisMateMapper.java b/srs-routine/src/main/java/com/srs/routine/mapper/SysDisMateMapper.java index 990edbb..343e565 100644 --- a/srs-routine/src/main/java/com/srs/routine/mapper/SysDisMateMapper.java +++ b/srs-routine/src/main/java/com/srs/routine/mapper/SysDisMateMapper.java @@ -44,6 +44,9 @@ public interface SysDisMateMapper extends BaseMapper { */ int updateSysDisMate(SysDisMate sysDisMate); + // 新增:按学号更新子表 + int updateSysDisMateByStId(SysDisMate sysDisMate); + /** * 删除退伍复学材料 * diff --git a/srs-routine/src/main/java/com/srs/routine/service/ISysDisMateService.java b/srs-routine/src/main/java/com/srs/routine/service/ISysDisMateService.java index 9f90f54..2f3d9d8 100644 --- a/srs-routine/src/main/java/com/srs/routine/service/ISysDisMateService.java +++ b/srs-routine/src/main/java/com/srs/routine/service/ISysDisMateService.java @@ -44,6 +44,7 @@ public interface ISysDisMateService extends IService { */ int updateSysDisMate(SysDisMate sysDisMate); + /** * 批量删除退伍复学材料 * diff --git a/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java b/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java index 8ca202f..92ed5d9 100644 --- a/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java +++ b/srs-routine/src/main/java/com/srs/routine/service/impl/SysDisBasicServiceImpl.java @@ -5,14 +5,20 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.srs.common.core.domain.AjaxResult; import com.srs.common.doman.dto.ProcessResultDto; import com.srs.common.doman.vo.TeacherVo; import com.srs.common.exception.ServiceException; import com.srs.common.utils.SecurityUtils; import com.srs.flowable.service.IFlowDefinitionService; +import com.srs.routine.domain.SysDisMate; import com.srs.routine.mapper.RtEnlistmentReserveMapper; import com.srs.routine.mapper.RtStuLeaveApplicationMapper; +import com.srs.routine.mapper.SysDisMateMapper; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.IdentityService; import org.flowable.engine.RuntimeService; @@ -26,6 +32,7 @@ import org.springframework.stereotype.Service; import com.srs.routine.mapper.SysDisBasicMapper; import com.srs.routine.domain.SysDisBasic; import com.srs.routine.service.ISysDisBasicService; +import org.springframework.transaction.annotation.Transactional; /** * 退伍复学申请Service业务层处理 @@ -39,6 +46,9 @@ public class SysDisBasicServiceImpl extends ServiceImpl maList = sysDisBasic.getMaList(); + logger.info("开始执行子表更新,maList大小: {}", maList != null ? maList.size() : 0); + + if (maList != null && !maList.isEmpty()) { + for (SysDisMate mate : maList) { + logger.info("正在更新子表记录,子表ID: {}, finaldata1: {}", mate.getId(), mate.getFinaldata1()); + + int updateResult = 0; + // 优先使用子表主键id更新(自定义SQL,避免update_time) + if (mate.getId() != null) { + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(SysDisMate.class); + updateWrapper.eq(SysDisMate::getId, mate.getId()) + .set(mate.getStId() != null, SysDisMate::getStId, mate.getStId()) + .set(mate.getStName() != null, SysDisMate::getStName, mate.getStName()) + .set(mate.getCollege() != null, SysDisMate::getCollege, mate.getCollege()) + .set(mate.getOldgrade() != null, SysDisMate::getOldgrade, mate.getOldgrade()) + .set(mate.getOldmajor() != null, SysDisMate::getOldmajor, mate.getOldmajor()) + .set(mate.getNewgrade() != null, SysDisMate::getNewgrade, mate.getNewgrade()) + .set(mate.getNewmajor() != null, SysDisMate::getNewmajor, mate.getNewmajor()) + .set(mate.getFinaldata1() != null, SysDisMate::getFinaldata1, mate.getFinaldata1()) + .set(mate.getFinaldata2() != null, SysDisMate::getFinaldata2, mate.getFinaldata2()) + .set(mate.getFinalmajor() != null, SysDisMate::getFinalmajor, mate.getFinalmajor()) + .set(mate.getFinallabel() != null, SysDisMate::getFinallabel, mate.getFinallabel()); + + updateResult = sysDisMateMapper.update(null, updateWrapper); + logger.info("通过子表ID自定义更新,影响行数: {}", updateResult); + } + // 兼容:无id时按st_id更新(同样自定义SQL) + else if (mate.getStId() != null && !mate.getStId().isEmpty()) { + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(SysDisMate.class); + updateWrapper.eq(SysDisMate::getStId, mate.getStId()) + .set(mate.getStName() != null, SysDisMate::getStName, mate.getStName()) + .set(mate.getCollege() != null, SysDisMate::getCollege, mate.getCollege()) + .set(mate.getOldgrade() != null, SysDisMate::getOldgrade, mate.getOldgrade()) + .set(mate.getOldmajor() != null, SysDisMate::getOldmajor, mate.getOldmajor()) + .set(mate.getNewgrade() != null, SysDisMate::getNewgrade, mate.getNewgrade()) + .set(mate.getNewmajor() != null, SysDisMate::getNewmajor, mate.getNewmajor()) + .set(mate.getFinaldata1() != null, SysDisMate::getFinaldata1, mate.getFinaldata1()) + .set(mate.getFinaldata2() != null, SysDisMate::getFinaldata2, mate.getFinaldata2()) + .set(mate.getFinalmajor() != null, SysDisMate::getFinalmajor, mate.getFinalmajor()) + .set(mate.getFinallabel() != null, SysDisMate::getFinallabel, mate.getFinallabel()); + + updateResult = sysDisMateMapper.update(null, updateWrapper); + logger.info("通过st_id自定义更新,影响行数: {}", updateResult); + } + // 无更新条件时提示 + else { + logger.warn("子表记录缺少id和stId,无法更新"); + continue; + } + + // 校验更新结果,失败时打印错误日志 + if (updateResult <= 0) { + logger.error("子表更新失败,子表ID: {}, stId: {}", mate.getId(), mate.getStId()); + // 可选:抛出异常让事务回滚(根据业务需求决定是否开启) + // throw new RuntimeException("子表更新失败,影响行数为0"); + } + } + } else { + logger.warn("子表数据为空,跳过子表更新"); + } + + // ========== 3. 原有返回值不变 ========== + return mainTableUpdateCount; } /** diff --git a/srs-routine/src/main/resources/mapper/routine/SysDisBasicMapper.xml b/srs-routine/src/main/resources/mapper/routine/SysDisBasicMapper.xml index 84649a4..66d1617 100644 --- a/srs-routine/src/main/resources/mapper/routine/SysDisBasicMapper.xml +++ b/srs-routine/src/main/resources/mapper/routine/SysDisBasicMapper.xml @@ -72,6 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + diff --git a/srs-routine/src/main/resources/mapper/routine/SysDisMateMapper.xml b/srs-routine/src/main/resources/mapper/routine/SysDisMateMapper.xml index 4d63b2e..770ef55 100644 --- a/srs-routine/src/main/resources/mapper/routine/SysDisMateMapper.xml +++ b/srs-routine/src/main/resources/mapper/routine/SysDisMateMapper.xml @@ -19,10 +19,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + - select id, st_id, st_name, times, college, oldgrade, oldmajor, newgrade, newmajor, proof, idcard, material, data1, data2 from sys_dis_mate + select id, st_id, st_name, times, college, oldgrade, oldmajor, newgrade, newmajor, proof, idcard, material, data1, data2, finaldata1, finaldata2, finalmajor, finallabel from sys_dis_mate @@ -65,6 +73,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material, data1, data2, + finaldata1, + finaldata2, + finalmajor, + finallabel, #{stId}, @@ -80,6 +92,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{material}, #{data1}, #{data2}, + #{finaldata1}, + #{finaldata2}, + #{finalmajor}, + #{finallabel}, @@ -99,10 +115,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material = #{material}, data1 = #{data1}, data2 = #{data2}, + finaldata1 = #{finaldata1}, + finaldata2 = #{finaldata2}, + finalmajor = #{finalmajor}, + finallabel = #{finallabel}, where id = #{id} + + + update sys_dis_mate + + st_name = #{stName}, + times = #{times}, + college = #{college}, + oldgrade = #{oldgrade}, + oldmajor = #{oldmajor}, + newgrade = #{newgrade}, + newmajor = #{newmajor}, + proof = #{proof}, + idcard = #{idcard}, + material = #{material}, + data1 = #{data1}, + data2 = #{data2}, + + finaldata1 = #{finaldata1}, + finaldata2 = #{finaldata2}, + finalmajor = #{finalmajor}, + finallabel = #{finallabel}, + + where st_id = #{stId} + + delete from sys_dis_mate where id = #{id}