Procházet zdrojové kódy

feat(physical): 添加裁判组织机构信息和职位关联功能

- 在 PhysicalJudge 实体类中新增 organization 字段
- 在 PhysicalJudgeBo 和 PhysicalJudgeVo 中新增 organization 和 positionId 字段
- 更新数据库映射文件 PhysicalJudgeMapper.xml,添加 organization 字段的 CRUD 操作
- 新增 PhysicalJudgePositionRelationMapper 数据访问接口及其实现
- 实现裁判与职位关联关系的插入、删除和查询功能
- 在裁判服务实现类中集成职位关联逻辑,支持新增和更新时维护关联关系
- 查询裁判详情时自动加载对应的职位信息
fugui001 před 2 týdny
rodič
revize
c495471f51

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/physical/domain/PhysicalJudge.java

@@ -43,4 +43,6 @@ public class PhysicalJudge extends BaseEntity {
     private Long workYears;
 
     private String judgeNumber;
+
+    private String organization;
 }

+ 4 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/physical/domain/bo/PhysicalJudgeBo.java

@@ -44,4 +44,8 @@ public class PhysicalJudgeBo extends BaseEntity {
 
     private String judgeNumber;
 
+    private String organization;
+
+    private Long positionId;
+
 }

+ 3 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/physical/domain/vo/PhysicalJudgeVo.java

@@ -49,5 +49,8 @@ public class PhysicalJudgeVo implements Serializable {
     @ExcelProperty(value = "工作年限")
     private Long workYears;
 
+    private String organization;
+
+    private Long positionId;
 
 }

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/physical/mapper/PhysicalJudgePositionRelationMapper.java

@@ -54,4 +54,11 @@ public interface PhysicalJudgePositionRelationMapper extends BaseMapperPlus<Phys
     @InterceptorIgnore(tenantLine = "true")
     List<PhysicalJudgePositionRelationVo> selectUseIngByJudge();
 
+    @InterceptorIgnore(tenantLine = "true")
+    int deleteJudgePositionRelationByJudgeId(@Param("judgeId") Long judgeId);
+
+
+    @InterceptorIgnore(tenantLine = "true")
+    PhysicalJudgePositionRelationVo selectJudgeInfoById(@Param("judgeId") Long judgeId);
+
 }

+ 26 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/physical/service/impl/PhysicalJudgeServiceImpl.java

@@ -16,11 +16,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.dromara.physical.domain.PhysicalJudge;
+import org.dromara.physical.domain.PhysicalJudgePositionRelation;
 import org.dromara.physical.domain.bo.PhysicalJudgeBo;
 import org.dromara.physical.domain.vo.PhysicalBlindLevelsImportVo;
 import org.dromara.physical.domain.vo.PhysicalJudgeImportVo;
+import org.dromara.physical.domain.vo.PhysicalJudgePositionRelationVo;
 import org.dromara.physical.domain.vo.PhysicalJudgeVo;
 import org.dromara.physical.mapper.PhysicalJudgeMapper;
+import org.dromara.physical.mapper.PhysicalJudgePositionRelationMapper;
 import org.dromara.physical.service.IPhysicalJudgeService;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -45,6 +48,8 @@ public class PhysicalJudgeServiceImpl implements IPhysicalJudgeService {
 
     private final PhysicalJudgeMapper baseMapper;
 
+    private final PhysicalJudgePositionRelationMapper physicalJudgePositionRelationMapper;
+
     /**
      * 查询裁判管理
      *
@@ -53,7 +58,12 @@ public class PhysicalJudgeServiceImpl implements IPhysicalJudgeService {
      */
     @Override
     public PhysicalJudgeVo queryById(Long id){
-        return baseMapper.selectPhysicalJudgeById(id);
+        PhysicalJudgeVo physicalJudgeVo=baseMapper.selectPhysicalJudgeById(id);
+        PhysicalJudgePositionRelationVo physicalJudgePositionRelationVo = physicalJudgePositionRelationMapper.selectJudgeInfoById(id);
+        if(physicalJudgePositionRelationVo!=null){
+            physicalJudgeVo.setPositionId(physicalJudgePositionRelationVo.getPositionId());
+        }
+        return physicalJudgeVo;
     }
 
     /**
@@ -107,6 +117,10 @@ public class PhysicalJudgeServiceImpl implements IPhysicalJudgeService {
         boolean flag = baseMapper.insertPhysicalJudge(add) > 0;
         if (flag) {
             bo.setId(add.getId());
+            PhysicalJudgePositionRelation physicalJudgePositionRelation=new PhysicalJudgePositionRelation();
+            physicalJudgePositionRelation.setJudgeId(add.getId());
+            physicalJudgePositionRelation.setPositionId(bo.getPositionId());
+            physicalJudgePositionRelationMapper.insertJudgePositionRelation(physicalJudgePositionRelation);
         }
         return flag;
     }
@@ -121,7 +135,17 @@ public class PhysicalJudgeServiceImpl implements IPhysicalJudgeService {
     public Boolean updateByBo(PhysicalJudgeBo bo) {
         PhysicalJudge update = MapstructUtils.convert(bo, PhysicalJudge.class);
         validEntityBeforeSave(update);
-        return baseMapper.updatePhysicalJudgeById(update) > 0;
+        int count = baseMapper.updatePhysicalJudgeById(update);
+        Boolean flag = false;
+        if(count>0){
+            physicalJudgePositionRelationMapper.deleteJudgePositionRelationByJudgeId(update.getId());
+            PhysicalJudgePositionRelation physicalJudgePositionRelation=new PhysicalJudgePositionRelation();
+            physicalJudgePositionRelation.setJudgeId(update.getId());
+            physicalJudgePositionRelation.setPositionId(bo.getPositionId());
+            physicalJudgePositionRelationMapper.insertJudgePositionRelation(physicalJudgePositionRelation);
+            flag=true;
+        }
+        return flag;
     }
 
     /**

+ 11 - 4
ruoyi-modules/ruoyi-system/src/main/resources/mapper/physical/PhysicalJudgeMapper.xml

@@ -14,7 +14,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             work_years,
             create_time,
             update_time,
-            judge_number
+            judge_number,
+            organization
         FROM physical_judge ${ew.customSqlSegment}
     </select>
 
@@ -26,7 +27,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             work_years,
             create_time,
             update_time,
-            judge_number
+            judge_number,
+            organization
         FROM physical_judge ${ew.customSqlSegment}
     </select>
 
@@ -39,7 +41,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             work_years,
             create_time,
             update_time,
-            judge_number
+            judge_number,
+            organization
         FROM physical_judge  WHERE id = #{id}
     </select>
 
@@ -50,6 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="peopleIconUrl != null">people_icon_url,</if>
         <if test="workYears != null">work_years,</if>
         <if test="judgeNumber != null">judge_number,</if>
+        <if test="organization != null">organization,</if>
         create_time,
         update_time
         ) VALUES (
@@ -57,6 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="peopleIconUrl != null">#{peopleIconUrl},</if>
         <if test="workYears != null">#{workYears},</if>
         <if test="judgeNumber != null">#{judgeNumber},</if>
+        <if test="organization != null">#{organization},</if>
         NOW(),
         NOW()
         )
@@ -70,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="peopleIconUrl != null">people_icon_url = #{peopleIconUrl},</if>
             <if test="workYears != null">work_years = #{workYears},</if>
             <if test="judgeNumber != null">judge_number = #{judgeNumber},</if>
+            <if test="organization != null">organization = #{organization},</if>
             update_time = NOW()
         </set>
         WHERE id = #{id}
@@ -94,7 +100,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             work_years,
             create_time,
             update_time,
-            judge_number
+            judge_number,
+            organization
         FROM physical_judge
     </select>
 </mapper>

+ 14 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/physical/PhysicalJudgePositionRelationMapper.xml

@@ -93,5 +93,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY pj.name
     </select>
 
+    <delete id="deleteJudgePositionRelationByJudgeId">
+        DELETE FROM physical_judge_position_relation where  judge_id = #{judgeId}
+    </delete>
 
+    <!-- 根据 ID 查询 -->
+    <select id="selectJudgeInfoById" parameterType="long" resultType="org.dromara.physical.domain.vo.PhysicalJudgePositionRelationVo">
+        SELECT
+            id,
+            judge_id,
+            position_id,
+            create_time,
+            update_time
+        FROM physical_judge_position_relation
+        WHERE judge_id = #{judgeId}  limit 1
+    </select>
 </mapper>