From 87d56f38263bbc1630309f80ffab7a5eb8d8f0a4 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Fri, 07 Nov 2025 10:34:47 +0800
Subject: [PATCH] 修改

---
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewUserMapper.java          |   22 +++
 multi-system/src/main/java/com/gkhy/exam/system/service/ItemReviewService.java            |    7 +
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/app/AppItemReviewController.java |   45 ++++++
 multi-system/src/main/resources/mapper/system/ItemReviewUserMapper.xml                    |   68 +++++++++
 multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReview.java                    |   76 ++++++++++
 multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewMapper.java              |    2 
 multi-system/src/main/resources/mapper/system/ItemReviewMapper.xml                        |   16 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/vo/ItemReviewUserVo.java           |   16 ++
 multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java       |   11 +
 multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReviewUser.java                |   75 ++++++++++
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ItemReviewServiceImpl.java   |   82 +++++++++++
 11 files changed, 412 insertions(+), 8 deletions(-)

diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/app/AppItemReviewController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/app/AppItemReviewController.java
new file mode 100644
index 0000000..acafdc9
--- /dev/null
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/app/AppItemReviewController.java
@@ -0,0 +1,45 @@
+package com.gkhy.exam.admin.controller.app;
+
+import com.gkhy.exam.common.api.CommonResult;
+import com.gkhy.exam.system.domain.ItemReviewUser;
+import com.gkhy.exam.system.service.ItemReviewService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "APP项目审批前端控制器")
+@RestController
+@RequestMapping("/app/item/review")
+public class AppItemReviewController {
+
+    @Autowired
+    private ItemReviewService itemReviewService;
+
+
+
+    /**
+     * 待审批
+     * @param userId
+     * @return
+     */
+    @ApiOperation(value = "待审批列表")
+    @GetMapping("/approvalList")
+    public CommonResult approvalList(@RequestParam("userId") Integer userId){
+        return itemReviewService.approvalList(userId);
+    }
+
+
+    /**
+     * 审批
+     * @param itemReviewUser
+     * @return
+     */
+    @ApiOperation(value = "审批")
+    @PostMapping("/approval")
+    public CommonResult approval(@RequestBody ItemReviewUser itemReviewUser){
+        return itemReviewService.approval(itemReviewUser);
+    }
+
+
+}
diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java
index 30d34fd..8c532ea 100644
--- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java
+++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/QualityController.java
@@ -506,5 +506,16 @@
         return itemReviewService.deletedItem(itemReviewId);
     }
 
+    /**
+     * 发送
+     * @param itemReviewId
+     * @return
+     */
+    @ApiOperation(value = "发送")
+    @GetMapping("/review/send")
+    public CommonResult sendItemReview(@RequestParam("itemReviewId") Integer itemReviewId){
+        return itemReviewService.sendItem(itemReviewId);
+    }
+
 
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReview.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReview.java
index 88c6a2e..47bcd42 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReview.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReview.java
@@ -4,12 +4,14 @@
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Data
 @TableName("item_review")
@@ -32,17 +34,73 @@
     @TableField(exist = false)
     private String itemName;
 
-    @ApiModelProperty(value = "项目id")
-    @TableField("num")
-    private String num;
+    @ApiModelProperty(value = "设计和开发阶段")
+    @TableField("stage")
+    private String stage;
 
-    @ApiModelProperty(value = "项目id")
+    @ApiModelProperty(value = "文件名称(线下)")
     @TableField("file_name")
     private String fileName;
 
-    @ApiModelProperty(value = "项目id")
+    @ApiModelProperty(value = "文件名称(线下)")
     @TableField("file_path")
     private String filePath;
+
+    @ApiModelProperty(value = "类型 1线上  2线下")
+    @TableField("type")
+    private Integer type;
+
+    @ApiModelProperty(value = "项目代码(线上)")
+    @TableField("project_code")
+    private String projectCode;
+
+    @ApiModelProperty(value = "项目编号(线上)")
+    @TableField("project_num")
+    private String projectNum;
+
+    @ApiModelProperty(value = "评审级别(线上)")
+    @TableField("review_level")
+    private String reviewLevel;
+
+//    @ApiModelProperty(value = "评审依据(线上)")
+//    @TableField("review_basis")
+//    private String reviewBasis;
+
+    @ApiModelProperty(value = "评审内容(线上)")
+    @TableField("review_content")
+    private String reviewContent;
+
+//    @ApiModelProperty(value = "评审意见(线上)")
+//    @TableField("review_opinion")
+//    private String reviewOpinion;
+
+//    @ApiModelProperty(value = "评审组长(线上)")
+//    @TableField("group_id")
+//    private Integer groupId;
+//
+//    @TableField(exist = false)
+//    private String groupName;
+//
+//    @ApiModelProperty(value = "组长评审时间(线上)")
+//    @TableField("group_time")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    private LocalDateTime groupTime;
+//
+//    @ApiModelProperty(value = "评审领导(线上)")
+//    @TableField("leader_id")
+//    private Integer leaderId;
+//
+//    @TableField(exist = false)
+//    private String leaderName;
+//
+//    @ApiModelProperty(value = "领导评审时间(线上)")
+//    @TableField("leader_time")
+//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+//    private LocalDateTime leaderTime;
+
+    @ApiModelProperty(value = "评审依据文件(线上)")
+    @TableField("product_item_ids")
+    private String productItemIds;
 
     @TableField("del_flag")
     private Integer delFlag;
@@ -59,6 +117,14 @@
     @TableField("update_time")
     private LocalDateTime updateTime;
 
+    @ApiModelProperty(value = "1待发送  2已发送")
+    @TableField("status")
+    private Integer status;
 
+    @TableField(exist = false)
+    private List<ProductItem> productItems;
+
+    @TableField(exist = false)
+    private List<ItemReviewUser> reviewUsers;
 
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReviewUser.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReviewUser.java
new file mode 100644
index 0000000..ff3cabc
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/ItemReviewUser.java
@@ -0,0 +1,75 @@
+package com.gkhy.exam.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName("item_review_user")
+@ApiModel(value = "ItemReviewUser", description = "项目评审人员")
+public class ItemReviewUser implements Serializable {
+
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "主表id")
+    @TableField("review_id")
+    private Integer reviewId;
+
+    @ApiModelProperty(value = "评审组")
+    @TableField("review_type")
+    private String reviewType;
+
+    @ApiModelProperty(value = "人员id")
+    @TableField("review_user_id")
+    private Integer reviewUserId;
+
+    @TableField(exist = false)
+    private String reviewUserName;
+
+    @ApiModelProperty(value = "人员部门")
+    @TableField("user_dept")
+    private String userDept;
+
+    @ApiModelProperty(value = "人员职务")
+    @TableField("user_duty")
+    private String userDuty;
+
+    @ApiModelProperty(value = "评审意见(线上) 1同意  2不同意")
+    @TableField("review_opinion")
+    private Integer reviewOpinion;
+
+    @ApiModelProperty(value = "评审时间")
+    @TableField("review_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime reviewTime;
+
+    @ApiModelProperty(value = "人员签名")
+    @TableField("sign")
+    private String sign;
+
+    @TableField("del_flag")
+    private Integer delFlag;
+
+    @ApiModelProperty(value = "状态1待发送  2待审批  3已审批")
+    @TableField("status")
+    private Integer status;
+
+
+
+
+
+
+
+
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/ItemReviewUserVo.java b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/ItemReviewUserVo.java
new file mode 100644
index 0000000..0cfb5a3
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/domain/vo/ItemReviewUserVo.java
@@ -0,0 +1,16 @@
+package com.gkhy.exam.system.domain.vo;
+
+import com.gkhy.exam.system.domain.ItemReviewUser;
+import com.gkhy.exam.system.domain.ProductItem;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ItemReviewUserVo extends ItemReviewUser {
+    private String itemName;
+    private String stage;
+    private String reviewContent;
+    private String productItemIds;
+    private List<ProductItem> productItems;
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewMapper.java
index a22f8d7..1bbf9b2 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewMapper.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gkhy.exam.system.domain.ItemReview;
+import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
 import java.util.List;
@@ -9,4 +10,5 @@
 @Mapper
 public interface ItemReviewMapper extends BaseMapper<ItemReview> {
     List<ItemReview> selectReviewList(ItemReview itemReview);
+
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewUserMapper.java b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewUserMapper.java
new file mode 100644
index 0000000..5412509
--- /dev/null
+++ b/multi-system/src/main/java/com/gkhy/exam/system/mapper/ItemReviewUserMapper.java
@@ -0,0 +1,22 @@
+package com.gkhy.exam.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.exam.system.domain.ItemReviewUser;
+import com.gkhy.exam.system.domain.vo.ItemReviewUserVo;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface ItemReviewUserMapper extends BaseMapper<ItemReviewUser> {
+    List<ItemReviewUser> selectByReviewId(@Param("id") Integer id);
+
+    void insertBatchs(@Param("reviewUsers") List<ItemReviewUser> reviewUsers);
+
+    void deleteByReviewId(@Param("id") Integer id);
+
+    int updateByReviewId(@Param("itemReviewId") Integer itemReviewId);
+
+    List<ItemReviewUserVo> selectByUserId(@Param("userId") Integer userId);
+}
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/ItemReviewService.java b/multi-system/src/main/java/com/gkhy/exam/system/service/ItemReviewService.java
index b98c191..c18b07e 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/ItemReviewService.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/ItemReviewService.java
@@ -4,6 +4,7 @@
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.api.CommonResult;
 import com.gkhy.exam.system.domain.ItemReview;
+import com.gkhy.exam.system.domain.ItemReviewUser;
 
 public interface ItemReviewService extends IService<ItemReview> {
     CommonPage selectItemList(ItemReview itemReview);
@@ -13,4 +14,10 @@
     CommonResult updateItem(ItemReview item);
 
     CommonResult deletedItem(Integer itemReviewId);
+
+    CommonResult sendItem(Integer itemReviewId);
+
+    CommonResult approvalList(Integer userId);
+
+    CommonResult approval(ItemReviewUser itemReviewUser);
 }
diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ItemReviewServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ItemReviewServiceImpl.java
index 9693c37..88d4753 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ItemReviewServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ItemReviewServiceImpl.java
@@ -5,20 +5,37 @@
 import com.gkhy.exam.common.api.CommonResult;
 import com.gkhy.exam.common.utils.PageUtils;
 import com.gkhy.exam.common.utils.SecurityUtils;
+import com.gkhy.exam.common.utils.StringUtils;
 import com.gkhy.exam.system.domain.ItemReview;
+import com.gkhy.exam.system.domain.ItemReviewUser;
+import com.gkhy.exam.system.domain.ProductItem;
+import com.gkhy.exam.system.domain.vo.ItemReviewUserVo;
 import com.gkhy.exam.system.mapper.ItemReviewMapper;
+import com.gkhy.exam.system.mapper.ItemReviewUserMapper;
+import com.gkhy.exam.system.mapper.ProductItemMapper;
 import com.gkhy.exam.system.service.ItemReviewService;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class ItemReviewServiceImpl extends ServiceImpl<ItemReviewMapper, ItemReview> implements ItemReviewService {
 
     @Autowired
     private ItemReviewMapper itemReviewMapper;
+
+    @Autowired
+    private ItemReviewUserMapper itemReviewUserMapper;
+
+    @Autowired
+    private ProductItemMapper productItemMapper;
+
 
     @Override
     public CommonPage selectItemList(ItemReview itemReview) {
@@ -29,9 +46,19 @@
         }
         PageUtils.startPage();
         List<ItemReview> itemReviews = itemReviewMapper.selectReviewList(itemReview);
+        for (ItemReview review : itemReviews) {
+            if (review.getType()==1){
+                List<ItemReviewUser> itemReviewUsers = itemReviewUserMapper.selectByReviewId(review.getId());
+                review.setReviewUsers(itemReviewUsers);
+            }
+            List<String> list = Arrays.asList(review.getProductItemIds().split(","));
+            List<ProductItem> productItems = productItemMapper.selectBatchIds(list);
+            review.setProductItems(productItems);
+        }
         return CommonPage.restPage(itemReviews);
     }
 
+    @Transactional
     @Override
     public CommonResult insertItem(ItemReview item) {
         item.setCreateBy(SecurityUtils.getUsername());
@@ -39,7 +66,17 @@
         if (item.getCompanyId()==null){
             item.setCompanyId(SecurityUtils.getCompanyId());
         }
+        if (item.getType()==1){
+            item.setStatus(1);
+        }
         int insert = itemReviewMapper.insert(item);
+        if (insert>0 && item.getType()==1){
+            List<ItemReviewUser> reviewUsers = item.getReviewUsers();
+            for (ItemReviewUser reviewUser : reviewUsers) {
+                reviewUser.setReviewId(item.getId());
+            }
+            itemReviewUserMapper.insertBatchs(reviewUsers);
+        }
         return CommonResult.success();
     }
 
@@ -48,11 +85,25 @@
         item.setUpdateBy(SecurityUtils.getUsername());
         item.setUpdateTime(LocalDateTime.now());
         int update = itemReviewMapper.updateById(item);
+        if (update>0 && item.getType()==1){
+            itemReviewUserMapper.deleteByReviewId(item.getId());
+            List<ItemReviewUser> reviewUsers = item.getReviewUsers();
+            for (ItemReviewUser reviewUser : reviewUsers) {
+                reviewUser.setReviewId(item.getId());
+            }
+            itemReviewUserMapper.insertBatchs(reviewUsers);
+        }
         return CommonResult.success();
     }
 
     @Override
     public CommonResult deletedItem(Integer itemReviewId) {
+        ItemReview itemReview1 = itemReviewMapper.selectById(itemReviewId);
+        if (itemReview1.getStatus()==2){
+            if (!SecurityUtils.adminUser()){
+                return CommonResult.failed("已发送,非管理员不可删除");
+            }
+        }
         ItemReview itemReview = new ItemReview();
         itemReview.setId(itemReviewId);
         itemReview.setUpdateTime(LocalDateTime.now());
@@ -61,4 +112,35 @@
         itemReviewMapper.updateById(itemReview);
         return CommonResult.success();
     }
+
+    @Override
+    public CommonResult sendItem(Integer itemReviewId) {
+        ItemReview itemReview = new ItemReview();
+        itemReview.setStatus(2);
+        itemReview.setId(itemReviewId);
+        int update1 = itemReviewMapper.updateById(itemReview);
+        int update = itemReviewUserMapper.updateByReviewId(itemReviewId);
+        return CommonResult.success();
+    }
+
+    @Override
+    public CommonResult approvalList(Integer userId) {
+        List<ItemReviewUserVo> itemReviewUserVos = itemReviewUserMapper.selectByUserId(userId);
+        for (ItemReviewUserVo itemReviewUserVo : itemReviewUserVos) {
+            List<String> list = Arrays.asList(itemReviewUserVo.getProductItemIds().split(","));
+            List<ProductItem> productItems = productItemMapper.selectBatchIds(list);
+            itemReviewUserVo.setProductItems(productItems);
+        }
+        return CommonResult.success(itemReviewUserVos);
+    }
+
+    @Override
+    public CommonResult approval(ItemReviewUser itemReviewUser) {
+        if (!StringUtils.isEmpty(itemReviewUser.getSign())){
+            itemReviewUser.setStatus(3);
+            itemReviewUser.setReviewTime(LocalDateTime.now());
+        }
+        int update = itemReviewUserMapper.updateById(itemReviewUser);
+        return CommonResult.success();
+    }
 }
diff --git a/multi-system/src/main/resources/mapper/system/ItemReviewMapper.xml b/multi-system/src/main/resources/mapper/system/ItemReviewMapper.xml
index 9bcbe2f..f0a14a6 100644
--- a/multi-system/src/main/resources/mapper/system/ItemReviewMapper.xml
+++ b/multi-system/src/main/resources/mapper/system/ItemReviewMapper.xml
@@ -8,17 +8,24 @@
             ir.`company_id`,
             ir.`item_id`,
             i.`item_name`,
-            ir.`num`,
+            ir.`type`,
+            ir.`stage`,
             ir.`file_name`,
             ir.`file_path`,
+            ir.`project_code`,
+            ir.`project_num`,
+            ir.`review_level`,
+            ir.`review_content`,
+            ir.`product_item_ids`,
             ir.`del_flag`,
             ir.`create_by`,
             ir.`create_time`,
             ir.`update_by`,
-            ir.`update_time`
+            ir.`update_time`,
+            ir.`status`
         FROM
             `item_review` ir
-                LEFT JOIN item i ON ir.item_id = i.id
+            LEFT JOIN item i ON ir.item_id = i.id
         WHERE
             ir.del_flag = 0
         <if test="companyId!=null">
@@ -27,6 +34,9 @@
         <if test="itemName!=null">
             and i.item_name like concat('%',#{itemName},'%')
         </if>
+        <if test="type!=null">
+            and ir.type = #{type}
+        </if>
         ORDER BY
             ir.create_time DESC
     </select>
diff --git a/multi-system/src/main/resources/mapper/system/ItemReviewUserMapper.xml b/multi-system/src/main/resources/mapper/system/ItemReviewUserMapper.xml
new file mode 100644
index 0000000..bf46016
--- /dev/null
+++ b/multi-system/src/main/resources/mapper/system/ItemReviewUserMapper.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gkhy.exam.system.mapper.ItemReviewUserMapper">
+    <insert id="insertBatchs">
+        INSERT INTO `item_review_user` ( `review_id`, `review_type`, `review_user_id`, `user_dept`, `user_duty` )
+        VALUES
+            <foreach collection="reviewUsers" separator="," item="item">
+                (
+                #{item.reviewId},
+                #{item.reviewType},
+                #{item.reviewUserId},
+                #{item.userDept},
+                #{item.userDuty}
+                )
+            </foreach>
+    </insert>
+    <update id="updateByReviewId">
+        update item_review_user set status = 2 where review_id = #{itemReviewId} and status = 1
+    </update>
+    <delete id="deleteByReviewId">
+        delete from item_review_user where review_id = #{id}
+    </delete>
+
+    <select id="selectByReviewId" resultType="com.gkhy.exam.system.domain.ItemReviewUser">
+        SELECT
+            iru.`id`,
+            iru.`review_id`,
+            iru.`review_type`,
+            iru.`review_user_id`,
+            es.`name` as review_user_name,
+            iru.`user_dept`,
+            iru.`user_duty`,
+            iru.`sign`,
+            iru.`del_flag`,
+            iru.`status`
+        FROM
+            `item_review_user` iru
+        left join ex_student es on iru.review_user_id = es.id
+        WHERE
+            iru.del_flag = 0
+            AND iru.review_id =#{id}
+    </select>
+    <select id="selectByUserId" resultType="com.gkhy.exam.system.domain.vo.ItemReviewUserVo">
+        SELECT
+            iru.`id`,
+            iru.`review_id`,
+            iru.`review_type`,
+            iru.`review_user_id`,
+            iru.`user_dept`,
+            iru.`user_duty`,
+            iru.`sign`,
+            iru.`del_flag`,
+            iru.`status`,
+            ir.`stage`,
+            ir.`review_content`,
+            ir.`product_item_ids`,
+            i.item_name
+        FROM
+            `item_review_user` iru
+                LEFT JOIN item_review ir on iru.review_id = ir.id
+                LEFT JOIN item i on ir.item_id = i.id
+        WHERE
+            iru.del_flag = 0 and ir.del_flag = 0
+          AND iru.review_user_id = #{userId}
+          AND iru.STATUS = 2 and ir.status = 2
+
+    </select>
+</mapper>

--
Gitblit v1.9.2