Parcourir la source

完成检查计划的多表关联

luojun il y a 2 ans
Parent
commit
77e46c8eff

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java

@@ -68,7 +68,8 @@ public class CoreSafecheckPlanController extends BaseController {
     @Log(title = "常规安全检查计划", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody CoreSafecheckPlan coreSafecheckPlan) {
-        return toAjax(coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan));
+        coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
+        return success();
     }
 
     /**

+ 5 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/domain/CoreSafecheckPlan.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -56,13 +57,14 @@ public class CoreSafecheckPlan extends BaseEntity {
     private List<SysRole> roleList;
     @TableField(exist = false)
     private List<Long> roleIds;
-
+    @TableField(exist = false)
+    private String roleNames;
 
     /**
      * 受检机构
      */
     @TableField(exist = false)
-    private List<CoreSafecheckPlanToCheckOrg> checkOrgList;
+    private List<SysOrg> checkOrgList;
     @TableField(exist = false)
     private List<Long> checkOrgIds;
 
@@ -70,7 +72,7 @@ public class CoreSafecheckPlan extends BaseEntity {
      * 检查机构
      */
     @TableField(exist = false)
-    private List<CoreSafecheckPlanToExecOrg> execOrgList;
+    private List<SysOrg> execOrgList;
     @TableField(exist = false)
     private List<Long> execOrgIds;
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java

@@ -36,7 +36,7 @@ public interface ICoreSafecheckPlanService extends IService<CoreSafecheckPlan> {
      * @param coreSafecheckPlan 常规安全检查计划
      * @return 结果
      */
-    int insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan);
+    void insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan);
 
     /**
      * 修改常规安全检查计划

+ 26 - 20
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java

@@ -7,6 +7,7 @@ import com.xunmei.core.safetyCheck.domain.*;
 import com.xunmei.core.safetyCheck.mapper.*;
 import com.xunmei.core.safetyCheck.service.ICoreSafecheckPlanService;
 import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -101,17 +102,23 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
      * @return 结果
      */
     @Override
-    public int insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan) {
+    public void insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan) {
         //先处理检查计划
-        coreSafecheckPlan.setCreateTime(DateUtils.getNowDate());
         coreSafecheckPlan.setPlanOfOrgId(coreSafecheckPlan.getPlanCreateOrgId());
-        coreSafecheckPlanMapper.insert(coreSafecheckPlan);
+
+        if (coreSafecheckPlan.getId() == null) {
+            coreSafecheckPlan.setCreateTime(DateUtils.getNowDate());
+            coreSafecheckPlanMapper.insert(coreSafecheckPlan);
+        }else {
+            coreSafecheckPlan.setUpdateTime(DateUtils.getNowDate());
+            coreSafecheckPlanMapper.updateById(coreSafecheckPlan);
+        }
 
         //再处理角色关系
         if (coreSafecheckPlan.getRoleIds() != null) {
-            if (coreSafecheckPlan.getId() != null) {
+//            if (coreSafecheckPlan.getId() != null) {
                 coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(coreSafecheckPlan.getId());
-            }
+//            }
             for (Long id :
                     coreSafecheckPlan.getRoleIds()) {
                 coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(coreSafecheckPlan.getId(), id));
@@ -119,32 +126,32 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             }
         }
         //再处理检查机构关系
-        if (coreSafecheckPlan.getExecOrgIds() != null) {
-            if (coreSafecheckPlan.getId() != null) {
+        if (coreSafecheckPlan.getExecOrgList() != null) {
+//            if (coreSafecheckPlan.getId() != null) {
                 coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(coreSafecheckPlan.getId());
-            }
-            for (Long id :
-                    coreSafecheckPlan.getExecOrgIds()) {
-                coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(coreSafecheckPlan.getId(), id));
+//            }
+            for (SysOrg org :
+                    coreSafecheckPlan.getExecOrgList()) {
+                coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(coreSafecheckPlan.getId(), org.getId()));
 
             }
         }
         //再处理受检机构关系
-        if (coreSafecheckPlan.getCheckOrgIds() != null) {
-            if (coreSafecheckPlan.getId() != null) {
+        if (coreSafecheckPlan.getCheckOrgList() != null) {
+//            if (coreSafecheckPlan.getId() != null) {
                 coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(coreSafecheckPlan.getId());
-            }
-            for (Long id :
-                    coreSafecheckPlan.getCheckOrgIds()) {
-                coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(coreSafecheckPlan.getId(), id));
+//            }
+            for (SysOrg org :
+                    coreSafecheckPlan.getCheckOrgList()) {
+                coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(coreSafecheckPlan.getId(), org.getId()));
 
             }
         }
         //再处理检查要点关系
         if (coreSafecheckPlan.getRulePointList() != null) {
-            if (coreSafecheckPlan.getId() != null) {
+//            if (coreSafecheckPlan.getId() != null) {
                 coreSafecheckPlanToPointMapper.deleteCoreSafecheckPlanToPointByPlanId(coreSafecheckPlan.getId());
-            }
+//            }
             for (SafetyCheckRulePoint s :
                     coreSafecheckPlan.getRulePointList()) {
                 coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(coreSafecheckPlan.getId(), s.getId(),s.getPointScan()));
@@ -153,7 +160,6 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         }
 
 
-        return 1;
     }
 
     /**

+ 57 - 42
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafecheckPlanMapper.xml

@@ -21,6 +21,7 @@
         <result property="updateTime" column="update_time"/>
         <result property="modifiedBy" column="modified_by"/>
         <result property="sourceType" column="source_type"/>
+        <result property="roleNames" column="role_names"/>
 
         <result property="planCreateOrgId" column="plan_create_org_id"/>
         <result property="planOfOrgId" column="plan_of_org_id"/>
@@ -39,14 +40,14 @@
             <result column="role_id" property="id"/>
         </collection>
         <!-- 受检机构关系映射 -->
-        <collection property="checkOrgList" ofType="com.xunmei.core.safetyCheck.domain.CoreSafecheckPlanToCheckOrg">
-            <result column="check_org_plan_id" property="planId"/>
-            <result column="check_org_org_id" property="orgId"/>
+        <collection property="checkOrgList" ofType="com.xunmei.system.api.domain.SysOrg">
+            <result column="check_org_id" property="id"/>
+            <result column="check_org_name" property="name"/>
         </collection>
         <!-- 检查机构关系映射 -->
-        <collection property="execOrgList" ofType="com.xunmei.core.safetyCheck.domain.CoreSafecheckPlanToExecOrg">
-            <result column="exec_org_plan_id" property="planId"/>
-            <result column="exec_org_org_id" property="orgId"/>
+        <collection property="execOrgList" ofType="com.xunmei.system.api.domain.SysOrg">
+            <result column="exec_org_id" property="id"/>
+            <result column="exec_org_name" property="name"/>
         </collection>
         <!-- 检查要点关系映射 -->
         <collection property="rulePointList" ofType="com.xunmei.core.safetyCheck.domain.SafetyCheckRulePoint">
@@ -83,10 +84,10 @@
             <if test="planCycle != null ">
                 and plan_cycle = #{planCycle}
             </if>
-            <if test="execOrgType != null ">
+            <if test="execOrgType != null and execOrgType != ''">
                 and exec_org_type = #{execOrgType}
             </if>
-            <if test="checkOrgType != null ">
+            <if test="checkOrgType != null and checkOrgType != ''">
                 and check_org_type = #{checkOrgType}
             </if>
             <if test="planStatus != null ">
@@ -121,50 +122,64 @@
 
     <select id="selectCoreSafecheckPlanById" parameterType="Long"
             resultMap="CoreSafecheckPlanResult">
-        SELECT
-            c.*,
-            o1.NAME AS plan_create_org_name,
-            o2.NAME AS plan_of_org_name,
-            r.role_name,
-            r.id AS role_id,
-            eo.plan_id AS exec_org_plan_id,
-            eo.org_id AS exec_org_org_id,
-            co.plan_id AS check_org_plan_id,
-            co.org_id AS check_org_org_id ,
-            rp.id as rule_point_id,
-            rp.rule_id as rule_point_rule_id,
-            rp.item_id as rule_point_item_id,
-            rp.name as rule_point_name,
-            rp.area_id as rule_point_area_id
-
-
-        FROM
-            core_safecheck_plan c
-                LEFT JOIN sys_org o1 ON c.plan_create_org_id = o1.id
-                LEFT JOIN sys_org o2 ON c.plan_of_org_id = o2.id
-                LEFT JOIN core_safecheck_plan_to_role pr ON c.id = pr.plan_id
-                LEFT JOIN sys_role r ON r.id = pr.role_id
-                LEFT JOIN core_safecheck_plan_to_exec_org eo ON eo.plan_id = c.id
-                LEFT JOIN sys_org o3 ON eo.org_id = o3.id
-                LEFT JOIN core_safecheck_plan_to_check_org co ON co.plan_id = c.id
-                LEFT JOIN sys_org o4 ON co.org_id = o4.id
-                LEFT JOIN core_safecheck_plan_to_point pp ON pp.plan_id = c.id
-                LEFT JOIN core_safetycheck_rule_point rp ON rp.id = pp.point_id
+        SELECT c.*,
+               o1.NAME             AS plan_create_org_name,
+               o2.NAME             AS plan_of_org_name,
+               r.role_name,
+               r.id                AS role_id,
+               eo.plan_id          AS exec_org_plan_id,
+               eo.org_id           AS exec_org_org_id,
+               co.plan_id          AS check_org_plan_id,
+               co.org_id           AS check_org_org_id,
+               rp.id               as rule_point_id,
+               rp.rule_id          as rule_point_rule_id,
+               rp.item_id          as rule_point_item_id,
+               rp.name             as rule_point_name,
+               rp.area_id          as rule_point_area_id,
+               o3.id               as exec_org_id,
+               o3.name             as exec_org_name,
+               o4.id               as check_org_id,
+               o4.name             as check_org_name
+        FROM core_safecheck_plan c
+                 LEFT JOIN sys_org o1 ON c.plan_create_org_id = o1.id
+                 LEFT JOIN sys_org o2 ON c.plan_of_org_id = o2.id
+                 LEFT JOIN core_safecheck_plan_to_role pr ON c.id = pr.plan_id
+                 LEFT JOIN sys_role r ON r.id = pr.role_id
+                 LEFT JOIN core_safecheck_plan_to_exec_org eo ON eo.plan_id = c.id
+                 LEFT JOIN sys_org o3 ON eo.org_id = o3.id
+                 LEFT JOIN core_safecheck_plan_to_check_org co ON co.plan_id = c.id
+                 LEFT JOIN sys_org o4 ON co.org_id = o4.id
+                 LEFT JOIN core_safecheck_plan_to_point pp ON pp.plan_id = c.id
+                 LEFT JOIN core_safetycheck_rule_point rp ON rp.id = pp.point_id
         where c.id = #{id}
+
     </select>
     <select id="selectCoreSafecheckPlanPage" resultMap="CoreSafecheckPlanResult">
         SELECT
+        GROUP_CONCAT(DISTINCT role_name) as role_names,
+        tem.*
+        FROM
+        (
+        SELECT
         c.*,
         o1.NAME AS plan_create_org_name,
         o2.NAME AS plan_of_org_name,
         r.role_name,
-        r.id as role_id
+        r.id AS role_id,
+        o3.id AS check_org_id,
+        o3.NAME AS check_org_name,
+        o4.id AS exec_org_id,
+        o4.NAME AS exec_org_name
         FROM
         core_safecheck_plan c
         LEFT JOIN sys_org o1 ON c.plan_create_org_id = o1.id
         LEFT JOIN sys_org o2 ON c.plan_of_org_id = o2.id
         LEFT JOIN core_safecheck_plan_to_role pr ON c.id = pr.plan_id
         LEFT JOIN sys_role r ON r.id = pr.role_id
+        LEFT JOIN core_safecheck_plan_to_check_org co ON co.plan_id = c.id
+        LEFT JOIN sys_org o3 ON o3.id = co.org_id
+        LEFT JOIN core_safecheck_plan_to_exec_org eo ON eo.plan_id = c.id
+        LEFT JOIN sys_org o4 ON o4.id = eo.org_id
         where 1=1
         <if test="check.planName != null  and check.planName != ''">
             and c.plan_name like concat('%', #{check.planName}, '%')
@@ -172,20 +187,20 @@
         <if test="check.planCycle != null ">
             and c.plan_cycle = #{check.planCycle}
         </if>
-        <if test="check.execOrgType != null ">
+        <if test="check.execOrgType != null and check.execOrgType != ''">
             and c.exec_org_type = #{check.execOrgType}
         </if>
-        <if test="check.checkOrgType != null ">
+        <if test="check.checkOrgType != null and check.checkOrgType != ''">
             and c.check_org_type = #{check.checkOrgType}
         </if>
         <if test="check.planStatus != null ">
             and c.plan_status = #{check.planStatus}
         </if>
 
-        <if test="check.checkRole != null ">
+        <if test="check.checkRole != null and check.checkRole != ''">
             and r.id = #{check.checkRole}
         </if>
-
+        ) tem GROUP BY tem.id
     </select>
 
     <insert id="insertCoreSafecheckPlan" parameterType="com.xunmei.core.safetyCheck.domain.CoreSafecheckPlan"

+ 5 - 5
soc-modules/soc-modules-core/src/main/resources/mapper/safetycheck/CoreSafecheckPlanToPointMapper.xml

@@ -16,7 +16,7 @@
 
     <sql id="selectCoreSafecheckPlanToPointVo">
         select plan_id, item_id, point_scan, create_time, update_time, create_by, update_by
-        from core_safecheck_plan_to_item
+        from core_safecheck_plan_to_point
     </sql>
 
     <select id="selectCoreSafecheckPlanToPointList" parameterType="com.xunmei.core.safetyCheck.domain.CoreSafecheckPlanToPoint"
@@ -42,7 +42,7 @@
     </select>
 
     <insert id="insertCoreSafecheckPlanToPoint" parameterType="com.xunmei.core.safetyCheck.domain.CoreSafecheckPlanToPoint">
-        insert into core_safecheck_plan_to_item
+        insert into core_safecheck_plan_to_point
         <trim prefix="(" suffix=")" suffixOverrides=",">
                     <if test="planId != null">plan_id,
                     </if>
@@ -78,7 +78,7 @@
     </insert>
 
     <update id="updateCoreSafecheckPlanToPoint" parameterType="com.xunmei.core.safetyCheck.domain.CoreSafecheckPlanToPoint">
-        update core_safecheck_plan_to_item
+        update core_safecheck_plan_to_point
         <trim prefix="SET" suffixOverrides=",">
                     <if test="itemId != null">item_id =
                         #{itemId},
@@ -104,11 +104,11 @@
 
     <delete id="deleteCoreSafecheckPlanToPointByPlanId" parameterType="Long">
         delete
-        from core_safecheck_plan_to_item where plan_id = #{planId}
+        from core_safecheck_plan_to_point where plan_id = #{planId}
     </delete>
 
     <delete id="deleteCoreSafecheckPlanToPointByPlanIds" parameterType="String">
-        delete from core_safecheck_plan_to_item where plan_id in
+        delete from core_safecheck_plan_to_point where plan_id in
         <foreach item="planId" collection="array" open="(" separator="," close=")">
             #{planId}
         </foreach>