Kaynağa Gözat

作者:张哲
时间:2023/02/15
类型:开发
描述:里程碑(2)知识专辑点评模块开发

ZizgZh 2 yıl önce
ebeveyn
işleme
68814ae39a

+ 2 - 2
src/main/java/com/redxun/knowledge/album/controller/AlbumApproveController.java

@@ -39,8 +39,8 @@ public class AlbumApproveController extends BaseController<AlbumApprove> {
     @GetMapping("total")
     public JsonResult total(){
         JsonResult jsonResult = JsonResult.getSuccessResult("");
-        Integer total = albumApproveService.total();
-        return jsonResult.setData("");
+        Long total = albumApproveService.total();
+        return jsonResult.setData(total);
     }
 
 }

+ 9 - 4
src/main/java/com/redxun/knowledge/album/controller/AlbumInfoController.java

@@ -148,11 +148,16 @@ public class AlbumInfoController extends BaseController<AlbumInfo> {
 
     @ApiOperation("对知识专辑审核中的版本进行审核")
     @PostMapping("approve")
-    public JsonResult approve(@RequestBody AlbumApprovalRemark albumApprovalRemark){
+    public JsonResult approve(@RequestBody AlbumApprovalRemarkDto albumApprovalRemarkDto){
         JsonResult jsonResult = JsonResult.getSuccessResult("");
-        albumApprovalService.approve(albumApprovalRemark);
-        return jsonResult.setMessage(AlbumConst.APPROVAL_SUCCESS);
-
+        Integer result = albumApprovalService.approve(albumApprovalRemarkDto);
+        if (result == 1){
+            return jsonResult.setMessage(AlbumConst.APPROVAL_FAIL);
+        } else if (result == 2){
+            return jsonResult.setMessage(AlbumConst.APPROVAL_FAIL_AUTHORITY);
+        } else {
+            return jsonResult.setMessage(AlbumConst.APPROVAL_SUCCESS);
+        }
     }
 
     @ApiOperation("PC端根据知识专辑ID获取审批流程列表数据")

+ 34 - 14
src/main/java/com/redxun/knowledge/album/controller/AlbumYelpApproveController.java

@@ -2,12 +2,18 @@ package com.redxun.knowledge.album.controller;
 
 import com.redxun.common.annotation.ClassDefine;
 import com.redxun.common.base.db.BaseService;
+import com.redxun.common.base.entity.JsonResult;
+import com.redxun.knowledge.album.entity.consts.AlbumConst;
 import com.redxun.knowledge.album.entity.dao.AlbumYelpApprove;
+import com.redxun.knowledge.album.entity.dto.AlbumApprovalRemarkDto;
 import com.redxun.knowledge.album.service.AlbumYelpApproveServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -15,22 +21,36 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/api-knowledge/album/yelp/approve")
 @Api(tags = "业务--专辑点评审批表")
-@ClassDefine(title = "业务--专辑点评审批表",alias = "AlbumYelpApproveController",path = "/album/album/albumYelpApprove",packages = "album",packageName = "子系统名称")
+@ClassDefine(title = "业务--专辑点评审批表", alias = "AlbumYelpApproveController", path = "/album/album/albumYelpApprove", packages = "album", packageName = "子系统名称")
 public class AlbumYelpApproveController extends BaseController<AlbumYelpApprove> {
 
-@Autowired
-AlbumYelpApproveServiceImpl albumYelpApproveService;
-
-
-@Override
-public BaseService getBaseService() {
-return albumYelpApproveService;
-}
-
-@Override
-public String getComment() {
-return "业务--专辑点评审批表";
-}
+    @Autowired
+    AlbumYelpApproveServiceImpl albumYelpApproveService;
+
+
+    @Override
+    public BaseService getBaseService() {
+        return albumYelpApproveService;
+    }
+
+    @Override
+    public String getComment() {
+        return "业务--专辑点评审批表";
+    }
+
+    @ApiOperation("对知识专辑点评进行审核")
+    @PostMapping
+    public JsonResult approve(@RequestBody AlbumApprovalRemarkDto albumApprovalRemarkDto){
+        JsonResult jsonResult = JsonResult.getSuccessResult("");
+        Integer result = albumYelpApproveService.approve(albumApprovalRemarkDto);
+        if (result == 1){
+            return jsonResult.setMessage(AlbumConst.APPROVAL_FAIL);
+        } else if (result == 2){
+            return jsonResult.setMessage(AlbumConst.APPROVAL_FAIL_AUTHORITY);
+        } else {
+            return jsonResult.setMessage(AlbumConst.APPROVAL_SUCCESS);
+        }
+    }
 
 }
 

+ 23 - 12
src/main/java/com/redxun/knowledge/album/controller/AlbumYelpController.java

@@ -2,35 +2,46 @@ package com.redxun.knowledge.album.controller;
 
 import com.redxun.common.annotation.ClassDefine;
 import com.redxun.common.base.db.BaseService;
+import com.redxun.common.base.entity.JsonResult;
 import com.redxun.knowledge.album.entity.dao.AlbumYelp;
 import com.redxun.knowledge.album.service.AlbumYelpServiceImpl;
 import com.redxun.web.controller.BaseController;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 @Slf4j
 @RestController
-@RequestMapping("/album/album/albumYelp")
+@RequestMapping("/api-knowledge/album/yelp")
 @Api(tags = "业务--专辑点评表")
-@ClassDefine(title = "业务--专辑点评表",alias = "AlbumYelpController",path = "/album/album/albumYelp",packages = "album",packageName = "子系统名称")
+@ClassDefine(title = "业务--专辑点评表", alias = "AlbumYelpController", path = "/api-knowledge/album/yelp", packages = "album", packageName = "子系统名称")
 public class AlbumYelpController extends BaseController<AlbumYelp> {
 
-@Autowired
-AlbumYelpServiceImpl albumYelpService;
+    @Autowired
+    AlbumYelpServiceImpl albumYelpService;
 
 
-@Override
-public BaseService getBaseService() {
-return albumYelpService;
-}
+    @Override
+    public BaseService getBaseService() {
+        return albumYelpService;
+    }
 
-@Override
-public String getComment() {
-return "业务--专辑点评表";
-}
+    @Override
+    public String getComment() {
+        return "业务--专辑点评表";
+    }
+
+    @ApiOperation("获取当前登陆人待审核的点评数量")
+    @GetMapping("total")
+    public JsonResult total(){
+        JsonResult jsonResult = JsonResult.getSuccessResult("");
+        Long total = albumYelpService.total();
+        return jsonResult.setData(total);
+    }
 
 }
 

+ 5 - 1
src/main/java/com/redxun/knowledge/album/entity/consts/AlbumConst.java

@@ -17,7 +17,11 @@ public class AlbumConst {
 
     public static final String APPROVAL_SUCCESS = "审核成功!";
 
-    public static final String BATCH_APPROVAL_SUCCESS = "批量审核成功!";
+    public static final String APPROVAL_FAIL = "审核失败,存在已审核完成的记录!";
+
+    public static final String APPROVAL_FAIL_AUTHORITY = "审核失败,权限已变更,请从新提交!";
+
+    public static final String BATCH_APPROVAL_SUCCESS = "添加成功!";
 
     public static final String NO_TYPE = "类型错误";
 

+ 4 - 0
src/main/java/com/redxun/knowledge/album/entity/dao/AlbumYelpApprove.java

@@ -75,6 +75,10 @@ public class AlbumYelpApprove  extends BaseExtEntity<String> {
     //点评Id
     @TableField(value = "YELP_ID")
     private String yelpId;
+    @TableField(exist = false)
+    private AlbumInfo albumInfo;
+    @TableField(exist = false)
+    private AlbumYelp albumYelp;
 
     @Override
     public String getPkId() {

+ 1 - 1
src/main/java/com/redxun/knowledge/album/entity/dto/AlbumApprovalRemark.java → src/main/java/com/redxun/knowledge/album/entity/dto/AlbumApprovalRemarkDto.java

@@ -20,7 +20,7 @@ import java.util.List;
  */
 @ApiModel("审核结论Dto")
 @Data
-public class AlbumApprovalRemark implements Serializable {
+public class AlbumApprovalRemarkDto implements Serializable {
 
     @NotEmpty(message = "审核记录Id不能为空")
     @ApiModelProperty("审核记录Id")

+ 3 - 0
src/main/java/com/redxun/knowledge/album/entity/vo/AlbumApproveListVo.java

@@ -81,6 +81,9 @@ public class AlbumApproveListVo implements Serializable {
     @ApiModelProperty("节点审核人Id 前端不需要使用")
     private String approverId;
 
+    @ApiModelProperty("审核状态 前端不需要使用")
+    private Integer approvalState;
+
     @ApiModelProperty("收入知识量")
     private Integer knowledgeTotal;
 

+ 88 - 0
src/main/java/com/redxun/knowledge/album/entity/vo/AlbumYelpApproveListVo.java

@@ -0,0 +1,88 @@
+package com.redxun.knowledge.album.entity.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 文件名: AlbumYelpApproveListVo
+ * 作者: Zizg
+ * 时间: 2023/2/15
+ * 描述:
+ * 修改人:
+ * 修改时间:
+ * 修改内容:
+ */
+@ApiModel("点评审核列表")
+@Data
+public class AlbumYelpApproveListVo implements Serializable {
+
+    @ApiModelProperty("点评ID")
+    private String pkId;
+
+    @ApiModelProperty("评论内容")
+    private String content;
+
+    @ApiModelProperty("专辑名称")
+    private String albumName;
+
+    @ApiModelProperty("专辑所属分类")
+    private String categoryName;
+
+    @ApiModelProperty("创建人")
+    private String createName;
+
+    @ApiModelProperty("创建时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JSONField(
+            format = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss",
+            timezone = "GMT+8"
+    )
+    private Date createTime;
+
+    @ApiModelProperty("审核状态")
+    private String approvalStateName;
+
+    @ApiModelProperty("审核人名称")
+    private String previousApproverName;
+
+    @ApiModelProperty("审核时间")
+    @DateTimeFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JSONField(
+            format = "yyyy-MM-dd HH:mm:ss"
+    )
+    @JsonFormat(
+            pattern = "yyyy-MM-dd HH:mm:ss",
+            timezone = "GMT+8"
+    )
+    private Date previousApproverTime;
+
+    @ApiModelProperty("动作标记")
+    private List<String> actionFlag;
+
+    //@ApiModelProperty("审核表主键Id 提交审核时使用")
+    //private String approvalId;
+
+
+    @ApiModelProperty("节点审核人Id 前端不需要使用")
+    private String approverId;
+
+    @ApiModelProperty("审核状态 前端不需要使用")
+    private Integer approvalState;
+
+
+}

+ 51 - 40
src/main/java/com/redxun/knowledge/album/service/AlbumApproveServiceImpl.java

@@ -11,27 +11,22 @@ import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.StringUtils;
 import com.redxun.knowledge.album.entity.dao.*;
-import com.redxun.knowledge.album.entity.dto.AlbumApprovalRemark;
+import com.redxun.knowledge.album.entity.dto.AlbumApprovalRemarkDto;
 import com.redxun.knowledge.album.entity.enums.AlbumVersionApproveEnum;
 import com.redxun.knowledge.album.entity.enums.AlbumVersionEnum;
 import com.redxun.knowledge.album.entity.vo.AlbumApproveFlowVo;
 import com.redxun.knowledge.album.entity.vo.AlbumApproveListVo;
 import com.redxun.knowledge.album.entity.vo.AlbumApproveVo;
-import com.redxun.knowledge.album.entity.vo.AlbumCataloguePcVo;
 import com.redxun.knowledge.album.mapper.*;
 import com.redxun.knowledge.common.UserService;
-import com.redxun.knowledge.entity.vo.KnowledgeApprovalListVo;
+import com.redxun.knowledge.entity.dao.KnowledgeApprove;
 import com.redxun.knowledge.utils.PageListUtils;
-import org.apache.catalina.valves.AbstractAccessLogValve;
-import org.owasp.esapi.util.CollectionsUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
-import javax.xml.crypto.dsig.keyinfo.RetrievalMethod;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -59,6 +54,9 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
     @Autowired
     private UserService userService;
 
+    @Autowired
+    private AlbumApproveServiceImpl albumApproveService;
+
     @Override
     public BaseDao<AlbumApprove> getRepository() {
         return albumApproveMapper;
@@ -194,6 +192,7 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                 albumApproveListVo.setApproverId(value.get(i).getApproverId());
                 albumApproveListVo.setVersionId(value.get(i).getAlbumVersion().getPkId());
                 albumApproveListVo.setApprovalId(value.get(i).getPkId());
+                albumApproveListVo.setApprovalState(value.get(i).getAlbumVersion().getApprovalState());
                 Integer knowledgeTotal = albumInfoMapper.selectCountKnowledge(value.get(i).getAlbumInfo().getPkId(), value.get(i).getAlbumVersion().getPkId());
                 albumApproveListVo.setKnowledgeTotal(knowledgeTotal);
                 List<String> actionFlag = new ArrayList<>();
@@ -204,7 +203,8 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                 }
                 albumApproveListVo.setActionFlag(actionFlag);
                 // 如果是最终审核通过,直接放入记录
-                if (value.get(i).getAlbumVersion().getApprovalState() == 5) {
+                if (value.get(i).getAlbumVersion().getApprovalState() == 5 && value.get(i).getIsFinal() == 1) {
+                    albumApproveListVo.setApprovalId(value.get(i).getPkId());
                     //实际审核人姓名和实际审核人审核时间
                     albumApproveListVo.setPreviousApproverName(value.get(i).getActualApproverName());
                     albumApproveListVo.setPreviousApproverTime(value.get(i).getApprovalTime());
@@ -245,7 +245,8 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
             //过滤数据
            albumApproveListVos.forEach(albumApproveListVo -> {
                Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumApproveListVo.getApproverId());
-               if (userId.equals(albumApproveListVo.getApproverId()) || count > 0) {
+               if ((userId.equals(albumApproveListVo.getApproverId()) || count > 0) &&
+                       (albumApproveListVo.getApprovalState() == 1 || albumApproveListVo.getApprovalState() == 2)) {
                     albumApproveListVo1.add(albumApproveListVo);
                 }
             });
@@ -259,45 +260,55 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
      *
      * @return
      */
-    public Integer total() {
-        //获取当前登录人的userId和deptId
-        String userId = userService.queryLoginUser();
-        String deptId = userService.queryLoginUserDeptId();
-        //查询全部审核节点的审核人Id
-        List<AlbumApprovalNode> albumApprovalNodeList = albumApprovalNodeMapper.
-                selectList(null);
-        Set<String> approverIdSet = albumApprovalNodeList.parallelStream().
-                map(AlbumApprovalNode::getApproverId).collect(Collectors.toSet());
-        Integer total = 0;
-        approverIdSet.forEach(approverId -> {
-            //根据部门Id获取子部门信息
-            Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId,approverId);
-            //判断当前登录人是否有审核资格
-            if (approverId.equals(userId) || count > 0) {
-
-            }
-        });
+    public Long total() {
+        //构建查询条件
+        QueryFilter queryFilter = new QueryFilter();
+        Map<String, Object> params = new HashMap<>();
+        params.put("type","2");
+        queryFilter.setParams(params);
+        IPage page = albumApproveService.query(queryFilter);
+        long total = page.getTotal();
         return total;
     }
 
     /**
      * 对知识专辑审核中的版本进行审核(快速审核和批量审核)
-     * @param albumApprovalRemark
+     * @param albumApprovalRemarkDto
      */
     @Transactional(rollbackFor = Exception.class)
-    public void approve(AlbumApprovalRemark albumApprovalRemark) {
-        List<String> approvalIdList = albumApprovalRemark.getPkIds();
+    public Integer approve(AlbumApprovalRemarkDto albumApprovalRemarkDto) {
+        List<String> approvalIdList = albumApprovalRemarkDto.getPkIds();
         // 如果审批结论为null,置位空字符串
-        if (StringUtils.isEmpty(albumApprovalRemark.getRemark())){
-            albumApprovalRemark.setRemark("");
+        if (StringUtils.isEmpty(albumApprovalRemarkDto.getRemark())){
+            albumApprovalRemarkDto.setRemark("");
+        }
+        //判断是否审核过该记录且是否有权限
+        for (String approvalId : approvalIdList) {
+            AlbumApprove albumApprove = albumApproveMapper.selectById(approvalId);
+            if (albumApprove.getResult() != null) {
+                //已经审核过
+                return 1;
+            }
+            //获取当前登录人的userId和deptId
+            String userId = userService.queryLoginUser();
+            String deptId = userService.queryLoginUserDeptId();
+            Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumApprove.getApproverId());
+            if (!userId.equals(albumApprove.getApproverId())) {
+                //没有权限
+                if (count <= 0){
+                    return 2;
+                } else {
+                    break;
+                }
+
+            }
         }
-        // TODO: 2023/2/8  判断是否审核过且是否有资格审核
         approvalIdList.forEach(approvalId -> {
             //插入审核结论
             AlbumApprove albumApprove = new AlbumApprove();
             albumApprove.setPkId(approvalId);
-            albumApprove.setResult(albumApprovalRemark.getResult());
-            albumApprove.setRemark(albumApprovalRemark.getRemark());
+            albumApprove.setResult(albumApprovalRemarkDto.getResult());
+            albumApprove.setRemark(albumApprovalRemarkDto.getRemark());
             albumApprove.setActualApprover(userService.queryLoginUser());
             albumApprove.setActualApproverName(userService.queryLoginFullName());
             albumApprove.setApprovalTime(new Date());
@@ -308,7 +319,7 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                     selectOne(new QueryWrapper<AlbumApprove>().
                             eq("SORT", albumApproveById.getSort() + 1).eq("VERSION_ID",albumApproveById.getVersionId()));
             //如果审核节点不是终审节点且专辑审核未通过,修改专辑版本状态为节点驳回
-            if (albumApproveById.getIsFinal() == 0 && albumApprovalRemark.getResult() == 0){
+            if (albumApproveById.getIsFinal() == 0 && albumApprovalRemarkDto.getResult() == 0){
                 AlbumVersion albumVersion = new AlbumVersion();
                 albumVersion.setPkId(albumApproveById.getVersionId());
                 //专辑驳回
@@ -318,7 +329,7 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                 albumVersionMapper.updateById(albumVersion);
             }
             //如果审核节点是终审节点且专辑审核未通过,修改专辑版本状态为最终驳回
-            if (albumApproveById.getIsFinal() == 1 && albumApprovalRemark.getResult() == 0){
+            if (albumApproveById.getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 0){
                 AlbumVersion albumVersion = new AlbumVersion();
                 albumVersion.setPkId(albumApproveById.getVersionId());
                 //专辑驳回
@@ -328,7 +339,7 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                 albumVersionMapper.updateById(albumVersion);
             }
             //如果审核节点是终审节点且专辑审核通过,修改专辑版本状态为最终通过(即审核完成)
-            if (albumApproveById.getIsFinal() == 1 && albumApprovalRemark.getResult() == 1){
+            if (albumApproveById.getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 1){
                 AlbumVersion albumVersion = new AlbumVersion();
                 //更改其他专辑为未生效
                 albumVersion.setState(3);
@@ -341,14 +352,14 @@ public class AlbumApproveServiceImpl extends SuperServiceImpl<AlbumApproveMapper
                 albumVersionMapper.updateById(albumVersion);
             }
             // 如果当前节点的下个节点为终审节点通过且当前节点审核通过,修改状态为待最终审核
-            if(albumApproveByIdNext != null && albumApproveByIdNext.getIsFinal() == 1 && albumApprovalRemark.getResult() == 1){
+            if(albumApproveByIdNext != null && albumApproveByIdNext.getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 1){
                 AlbumVersion albumVersion = new AlbumVersion();
                 albumVersion.setPkId(albumApproveById.getVersionId());
                 albumVersion.setApprovalState(2);
                 albumVersionMapper.updateById(albumVersion);
             }
         });
-
+        return -1;
     }
 
     /**

+ 0 - 1
src/main/java/com/redxun/knowledge/album/service/AlbumInfoServiceImpl.java

@@ -672,7 +672,6 @@ public class AlbumInfoServiceImpl extends SuperServiceImpl<AlbumInfoMapper, Albu
      */
     private void createAlbumApprove(String albumId, String versionId) {
         //删除老版本审核流程
-        // TODO: 2023/2/12  需要修改
         albumApproveService.deleteByVersionId(versionId);
         //拉取专辑审核节点表
         List<AlbumApprovalNode> albumApprovalNodeList = albumApprovalNodeService.

+ 254 - 5
src/main/java/com/redxun/knowledge/album/service/AlbumYelpApproveServiceImpl.java

@@ -1,20 +1,41 @@
 package com.redxun.knowledge.album.service;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
+import com.redxun.common.base.db.PageHelper;
 import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.service.impl.SuperServiceImpl;
-import com.redxun.knowledge.album.entity.dao.AlbumYelpApprove;
-import com.redxun.knowledge.album.mapper.AlbumYelpApproveMapper;
+import com.redxun.common.tool.StringUtils;
+import com.redxun.common.utils.ContextUtil;
+import com.redxun.dto.user.OsUserDto;
+import com.redxun.knowledge.album.entity.dao.*;
+import com.redxun.knowledge.album.entity.dto.AlbumApprovalRemarkDto;
+import com.redxun.knowledge.album.entity.enums.AlbumVersionApproveEnum;
+import com.redxun.knowledge.album.entity.vo.AlbumApproveListVo;
+import com.redxun.knowledge.album.entity.vo.AlbumYelpApproveListVo;
+import com.redxun.knowledge.album.mapper.*;
+import com.redxun.knowledge.common.MessageService;
+import com.redxun.knowledge.common.UserService;
+import com.redxun.knowledge.utils.PageListUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
-* [业务--专辑点评审批表]业务服务类
-*/
+ * [业务--专辑点评审批表]业务服务类
+ */
 @Slf4j
 @Service
 public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpApproveMapper, AlbumYelpApprove> implements BaseService<AlbumYelpApprove> {
@@ -22,6 +43,24 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
     @Resource
     private AlbumYelpApproveMapper albumYelpApproveMapper;
 
+    @Autowired
+    private AlbumCategoryMapper albumCategoryMapper;
+
+    @Autowired
+    private AlbumApprovalNodeMapper albumApprovalNodeMapper;
+
+    @Autowired
+    private AlbumYelpMapper albumYelpMapper;
+
+    @Autowired
+    private AlbumInfoMapper albumInfoMapper;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private MessageService messageService;
+
     @Override
     public BaseDao<AlbumYelpApprove> getRepository() {
         return albumYelpApproveMapper;
@@ -29,6 +68,7 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
 
     /**
      * 根据专辑Id删除点评审核流程
+     *
      * @param ids
      */
     public void deleteByAlbumId(String ids) {
@@ -40,6 +80,215 @@ public class AlbumYelpApproveServiceImpl extends SuperServiceImpl<AlbumYelpAppro
      */
     @Override
     public IPage query(QueryFilter queryFilter) {
-        return null;
+        Map<String, Object> params = PageHelper.constructParams(queryFilter);
+        String type = (String) queryFilter.getParams().get("type");
+        //获取全部数据
+        IPage page = albumYelpApproveMapper.findAllAlbumYelpApprove(queryFilter.getPage(), queryFilter.getParams(), params);
+        List<AlbumYelpApprove> albumYelpApproveList = page.getRecords();
+        //根据专辑Id进行数据分组
+        Map<String, List<AlbumYelpApprove>> albumApproveMap = albumYelpApproveList.stream().
+                collect(Collectors.groupingBy(AlbumYelpApprove::getYelpId));
+        // 返回结果集
+        List<AlbumYelpApproveListVo> albumApproveListVos = new ArrayList<>();
+        // 遍历每组的数据
+        Set<Map.Entry<String, List<AlbumYelpApprove>>> entries = albumApproveMap.entrySet();
+        for (Map.Entry<String, List<AlbumYelpApprove>> entry : entries) {
+            List<AlbumYelpApprove> value = entry.getValue();
+            for (int i = 0; i < value.size(); i++) {
+                //给结果集赋值
+                AlbumYelpApproveListVo albumApproveListVo = new AlbumYelpApproveListVo();
+                albumApproveListVo.setPkId(value.get(i).getYelpId());
+                albumApproveListVo.setContent(value.get(i).getAlbumYelp().getContent());
+                albumApproveListVo.setAlbumName(value.get(i).getAlbumInfo().getName());
+                String categoryId = value.get(i).getAlbumInfo().getCategoryId();
+                AlbumCategory albumCategory = albumCategoryMapper.selectById(categoryId);
+                if (albumCategory.getGrade() == 1) {
+                    albumApproveListVo.setCategoryName(albumCategory.getName());
+                } else {
+                    AlbumCategory albumCategoryParent = albumCategoryMapper.
+                            selectOne(new LambdaQueryWrapper<AlbumCategory>().eq(AlbumCategory::getPkId, albumCategory.getParent()));
+                    albumApproveListVo.setCategoryName(albumCategoryParent.getName() + "|" + albumCategory.getName());
+                }
+                albumApproveListVo.setCreateName(userService.queryOsUserDto(value.get(i).getCreateBy()).getFullName());
+                albumApproveListVo.setCreateTime(value.get(i).getCreateTime());
+                albumApproveListVo.setApprovalStateName(AlbumVersionApproveEnum.getMessage(value.get(i).getAlbumYelp().getApprovalState()));
+                //用于权限判断
+                albumApproveListVo.setApproverId(value.get(i).getApproverId());
+                albumApproveListVo.setApprovalState(value.get(i).getAlbumYelp().getApprovalState());
+                // albumApproveListVo.setApprovalId(value.get(i).getPkId());
+                List<String> actionFlag = new ArrayList<>();
+                if (value.get(i).getAlbumYelp().getApprovalState() == 1 || value.get(i).getAlbumYelp().getApprovalState() == 2) {
+                    actionFlag.add("approve");
+                } else {
+                    actionFlag.add("view");
+                }
+                albumApproveListVo.setActionFlag(actionFlag);
+                // 如果是最终审核通过,直接放入记录
+                if (value.get(i).getAlbumYelp().getApprovalState() == 5 && value.get(i).getIsFinal() == 1) {
+                    albumApproveListVo.setApproverId(value.get(i).getApproverId());
+                    //实际审核人姓名和实际审核人审核时间
+                    albumApproveListVo.setPreviousApproverName(value.get(i).getActualApproverName());
+                    albumApproveListVo.setPreviousApproverTime(value.get(i).getApprovalTime());
+                    albumApproveListVos.add(albumApproveListVo);
+                    break;
+                }
+                // 判断审批结果是否为null(如果审批结果没有null,证明审批已结束;如果等于0,证明审批没通过)
+                if (value.get(i).getResult() == null || value.get(i).getResult() == 0) {
+                    if (i != 0) {
+                        // 如果不是第一条数据,取前一条数据的实际审核人姓名
+                        String actualApproverName = value.get(i - 1).getActualApproverName();
+                        albumApproveListVo.setPreviousApproverName(actualApproverName);
+                        // 如果不是第一条数据,取前一条数据的审批时间
+                        Date approvalTime = value.get(i - 1).getApprovalTime();
+                        albumApproveListVo.setPreviousApproverTime(approvalTime);
+                    } else {
+                        String actualApproverName = value.get(i).getActualApproverName();
+                        albumApproveListVo.setPreviousApproverName(actualApproverName);
+                        Date approvalTime = value.get(i).getApprovalTime();
+                        albumApproveListVo.setPreviousApproverTime(approvalTime);
+                    }
+                    // 把该记录加到结果集中
+                    albumApproveListVos.add(albumApproveListVo);
+                    break;
+                }
+            }
+        }
+        if ("1".equals(type)) {
+            Page pageResult = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), albumApproveListVos);
+            return pageResult;
+        } else {
+            //获取当前登录人的userId和deptId
+            String userId = userService.queryLoginUser();
+            String deptId = userService.queryLoginUserDeptId();
+
+            List<AlbumYelpApproveListVo> albumApproveListVoUser = new ArrayList<>();
+            //根据部门Id获取子部门信息
+            //过滤数据
+            albumApproveListVos.forEach(albumApproveListVo -> {
+                Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumApproveListVo.getApproverId());
+                if ((userId.equals(albumApproveListVo.getApproverId()) || count > 0) &&
+                        (albumApproveListVo.getApprovalState() == 1 || albumApproveListVo.getApprovalState() == 2)) {
+                    albumApproveListVoUser.add(albumApproveListVo);
+                }
+            });
+            Page pageResult = PageListUtils.getPages(queryFilter.getPage().getCurrent(), queryFilter.getPage().getSize(), albumApproveListVoUser);
+            return pageResult;
+        }
+    }
+
+    /**
+     * 对知识专辑点评进行审核(快速审核和批量审核)
+     *
+     * @param albumApprovalRemarkDto
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Integer approve(AlbumApprovalRemarkDto albumApprovalRemarkDto) {
+        List<String> yelpIdList = albumApprovalRemarkDto.getPkIds();
+        // 如果审批结论为null,置位空字符串
+        if (StringUtils.isEmpty(albumApprovalRemarkDto.getRemark())) {
+            albumApprovalRemarkDto.setRemark("");
+        }
+        //判断是否审核过该记录且是否有权限
+        for (String yelpId : yelpIdList) {
+            List<AlbumYelpApprove> albumYelpApproveList = albumYelpApproveMapper.selectList(new LambdaQueryWrapper<AlbumYelpApprove>().
+                    eq(AlbumYelpApprove::getYelpId, yelpId).
+                    isNull(AlbumYelpApprove::getResult).
+                    orderByAsc(AlbumYelpApprove::getSort));
+            if (albumYelpApproveList.get(0).getResult() != null) {
+                //已经审核过
+                return 1;
+            }
+            //获取当前登录人的userId和deptId
+            String userId = userService.queryLoginUser();
+            String deptId = userService.queryLoginUserDeptId();
+            Integer count = albumApprovalNodeMapper.selectAllByDeptId(deptId, albumYelpApproveList.get(0).getApproverId());
+            if (!userId.equals(albumYelpApproveList.get(0).getApproverId())) {
+                if(count <= 0){
+                    //没有权限
+                    return 2;
+                } else {
+                    break;
+                }
+            }
+        }
+        //获取需要审核的审核记录
+        yelpIdList.forEach(yelpId -> {
+            List<AlbumYelpApprove> albumYelpApproveList = albumYelpApproveMapper.selectList(new LambdaQueryWrapper<AlbumYelpApprove>().
+                    eq(AlbumYelpApprove::getYelpId, yelpId).
+                    isNull(AlbumYelpApprove::getResult).
+                    orderByAsc(AlbumYelpApprove::getSort));
+            //更改点评审核表中信息
+            AlbumYelpApprove albumYelpApprove = new AlbumYelpApprove();
+            albumYelpApprove.setPkId(albumYelpApproveList.get(0).getPkId());
+            albumYelpApprove.setResult(albumApprovalRemarkDto.getResult());
+            albumYelpApprove.setRemark(albumApprovalRemarkDto.getRemark());
+            albumYelpApprove.setActualApprover(userService.queryLoginUser());
+            albumYelpApprove.setActualApproverName(userService.queryLoginFullName());
+            albumYelpApprove.setApprovalTime(new Date());
+            albumYelpApproveMapper.updateById(albumYelpApprove);
+            //如果审核节点不是终审节点且专辑审核未通过,修改点评状态为节点驳回
+            if (albumYelpApproveList.get(0).getIsFinal() == 0 && albumApprovalRemarkDto.getResult() == 0) {
+                AlbumYelp albumYelp = new AlbumYelp();
+                albumYelp.setPkId(yelpId);
+                albumYelp.setState(2);
+                albumYelp.setApprovalState(3);
+                albumYelpMapper.updateById(albumYelp);
+                //发送站内信
+                AlbumInfo albumInfo = albumInfoMapper.selectById(albumYelpApproveList.get(0).getAlbumId());
+                AlbumYelp albumYelpById = albumYelpMapper.selectById(albumYelpApproveList.get(0).getYelpId());
+                sendMessage(albumYelpApproveList.get(0).getCreateBy(),albumInfo.getName(),albumYelpById.getContent(),albumApprovalRemarkDto.getRemark());
+            }
+            //如果审核节点是终审节点且专辑审核未通过,修改点评状态为最终驳回
+            if (albumYelpApproveList.get(0).getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 0) {
+                AlbumYelp albumYelp = new AlbumYelp();
+                albumYelp.setPkId(yelpId);
+                albumYelp.setState(2);
+                albumYelp.setApprovalState(4);
+                albumYelpMapper.updateById(albumYelp);
+                //发送站内信
+                AlbumInfo albumInfo = albumInfoMapper.selectById(albumYelpApproveList.get(0).getAlbumId());
+                AlbumYelp albumYelpById = albumYelpMapper.selectById(albumYelpApproveList.get(0).getYelpId());
+                sendMessage(albumYelpApproveList.get(0).getCreateBy(),albumInfo.getName(),albumYelpById.getContent(),albumApprovalRemarkDto.getRemark());
+            }
+            //如果审核节点是终审节点且专辑审核通过,修改点评状态为最终通过(即审核完成)
+            if (albumYelpApproveList.get(0).getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 1){
+                AlbumYelp albumYelp = new AlbumYelp();
+                albumYelp.setPkId(yelpId);
+                albumYelp.setState(1);
+                albumYelp.setApprovalState(5);
+                albumYelpMapper.updateById(albumYelp);
+            }
+            // 如果当前节点的下个节点为终审节点通过且当前节点审核通过,修改状态为待最终审核
+            if (albumYelpApproveList.size() > 1){
+                AlbumYelpApprove albumYelpApproveNext = albumYelpApproveList.get(1);
+                if(albumYelpApproveNext != null && albumYelpApproveNext.getIsFinal() == 1 && albumApprovalRemarkDto.getResult() == 1){
+                    AlbumYelp albumYelp = new AlbumYelp();
+                    albumYelp.setPkId(yelpId);
+                    albumYelp.setApprovalState(2);
+                    albumYelpMapper.updateById(albumYelp);
+                }
+            }
+        });
+        return -1;
+    }
+
+    /**
+     * 给点评创建人发送站内信和企业微信消息(知识被驳回时,或者最终节点审核通过时)(flag为true,知识通过;为false,知识不通过)
+     *
+     * @param createBy,remark,flag
+     */
+    private void sendMessage(String createBy, String albumName, String yelpContent, String remark) {
+        List<OsUserDto> osUserDtoList = new ArrayList<>();
+        //查询用户信息
+        OsUserDto osUserDto = userService.queryOsUserDto(createBy);
+        osUserDtoList.add(osUserDto);
+        // 点评不通过
+        messageService.sendInnerMsg("您提交的申请已被驳回!",
+                "提交内容:" + albumName + ":" + yelpContent + "<br>" +
+                        "驳回原因:" + remark + "<br>" +
+                        "审核人:" + ContextUtil.getCurrentUser().getFullName() + "<br>" +
+                        "审批时间:" + DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN), osUserDtoList);
+
+
     }
 }

+ 22 - 1
src/main/java/com/redxun/knowledge/album/service/AlbumYelpServiceImpl.java

@@ -1,8 +1,10 @@
 package com.redxun.knowledge.album.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
+import com.redxun.common.base.search.QueryFilter;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.common.tool.IdGenerator;
 import com.redxun.knowledge.album.entity.consts.AlbumConst;
@@ -13,9 +15,12 @@ import com.redxun.knowledge.common.UserService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
@@ -57,6 +62,7 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
      * @param yelpDto
      * @return
      */
+    @Transactional(rollbackFor = Exception.class)
     public String yelp(YelpDto yelpDto) {
         AlbumYelp albumYelp = new AlbumYelp();
         Integer type = yelpDto.getType();
@@ -88,16 +94,31 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
             AlbumYelpApprove albumYelpApprove = new AlbumYelpApprove();
             albumYelpApprove.setPkId(IdGenerator.getIdStr());
             albumYelpApprove.setAlbumId(albumYelp.getAlbumId());
-
             albumYelpApprove.setApproverId(albumYelpApprovalNode.getApproverId());
             albumYelpApprove.setApproverName(albumYelpApprovalNode.getApproverName());
             albumYelpApprove.setSort(sort.getAndIncrement());
             albumYelpApprove.setIsFinal(albumYelpApprovalNode.getIsFinal());
             albumYelpApprove.setUpdateBy(userService.queryLoginUser());
             albumYelpApprove.setName(albumYelpApprovalNode.getName());
+            albumYelpApprove.setYelpId(albumYelp.getPkId());
             return albumYelpApprove;
         }).collect(Collectors.toList());
         //批量添加
         albumYelpApproveService.saveBatch(albumYelpApproveList);
     }
+
+    /**
+     * 获取当前登陆人审核的点评数量
+     * @return
+     */
+    public Long total() {
+        //构建查询条件
+        QueryFilter queryFilter = new QueryFilter();
+        Map<String, Object> params = new HashMap<>();
+        params.put("type","2");
+        queryFilter.setParams(params);
+        IPage page = albumYelpApproveService.query(queryFilter);
+        long total = page.getTotal();
+        return total;
+    }
 }

+ 5 - 0
src/main/java/com/redxun/knowledge/map/service/MapRouteServiceImpl.java

@@ -8,6 +8,7 @@ import com.redxun.common.base.db.BaseDao;
 import com.redxun.common.base.db.BaseService;
 import com.redxun.common.service.impl.SuperServiceImpl;
 import com.redxun.knowledge.common.UserService;
+import com.redxun.knowledge.entity.dao.Knowledge;
 import com.redxun.knowledge.map.entity.dao.Map;
 import com.redxun.knowledge.map.entity.dao.MapContent;
 import com.redxun.knowledge.map.entity.dao.MapGroupPurviewUser;
@@ -77,6 +78,10 @@ public class MapRouteServiceImpl extends SuperServiceImpl<MapRouteMapper, MapRou
             List<MapContentVo> result = mapContentList.stream().limit(tops).map(mapContent -> {
                 MapContentVo mapContentVo = new MapContentVo();
                 BeanUtils.copyProperties(mapContent, mapContentVo);
+                Knowledge knowledge = knowledgeMapper.selectById(mapContent.getKnowledgeId());
+                if (knowledge != null){
+                    mapContentVo.setTitles(knowledge.getTitles());
+                }
                 Integer count = mapService.updateState(userId, mapContent.getMapId(), mapContent.getRouteId(), mapContent.getPkId());
                 if (count > 0) {
                     mapContentVo.setState(1);

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -2,7 +2,7 @@ server:
   port: 7206
 spring:
   application:
-    name: jpaas-knowledge
+    name: jpaas-knowledges
   profiles:
     active: dev
   aop:

+ 72 - 6
src/main/resources/mapper/knowledge/album/AlbumYelpApproveMapper.xml

@@ -29,7 +29,7 @@
     <sql id="COLUMNS">
         aya.PK_ID,aya.ALBUM_ID,aya.RESULT,aya.REMARK,aya.APPROVER_ID,aya.APPROVER_NAME,aya.ACTUAL_APPROVER,aya.ACTUAL_APPROVER_NAME,
         aya.APPROVAL_TIME,aya.SORT,aya.IS_FINAL,aya.IS_DEL,aya.COMPANY_ID_,aya.CREATE_DEP_ID_,aya.TENANT_ID_,aya.CREATE_BY_,aya.CREATE_TIME_,
-        aya.UPDATE_BY_,aya.UPDATE_TIME_
+        aya.UPDATE_BY_,aya.UPDATE_TIME_,aya.NAME,aya.YELP_ID
     </sql>
 
 
@@ -56,12 +56,78 @@
         where ALBUM_ID = #{albumId}
     </delete>
 
-    <select id="findAllAlbumYelpApprove" resultType="com.redxun.knowledge.album.entity.dao.AlbumYelpApprove">
-        select
-        <include refid="COLUMNS"/>
+    <resultMap id="findAllAlbumYelpApprove" type="com.redxun.knowledge.album.entity.dao.AlbumYelpApprove" autoMapping="true">
+        <id column="approverId" property="pkId"/>
+        <result column="approveNodeName" property="name"/>
+        <association property="albumYelp" javaType="com.redxun.knowledge.album.entity.dao.AlbumYelp" autoMapping="true">
+            <id column="yelpId" property="pkId"/>
+        </association>
+        <association property="albumInfo" javaType="com.redxun.knowledge.album.entity.dao.AlbumInfo" autoMapping="true">
+            <id column="albumId" property="pkId"/>
+            <result column="albumName" property="name"/>
+        </association>
+    </resultMap>
+
+    <select id="findAllAlbumYelpApprove" resultMap="findAllAlbumYelpApprove">
+        select aya.PK_ID as approverId,
+               aya.ALBUM_ID,
+               aya.RESULT,
+               aya.REMARK,
+               aya.APPROVER_ID,
+               aya.APPROVER_NAME,
+               aya.ACTUAL_APPROVER,
+               aya.ACTUAL_APPROVER_NAME,
+               aya.APPROVAL_TIME,
+               aya.SORT,
+               aya.IS_FINAL,
+               aya.IS_DEL,
+               aya.COMPANY_ID_,
+               aya.CREATE_DEP_ID_,
+               aya.TENANT_ID_,
+               aya.CREATE_BY_,
+               aya.CREATE_TIME_,
+               aya.UPDATE_BY_,
+               aya.UPDATE_TIME_,
+               aya.NAME as approveNodeName,
+               aya.YELP_ID,
+               ay.PK_ID as yelpId,
+               ay.CONTENT,
+               ay.APPROVAL_STATE,
+               ai.PK_ID as albumId,
+               ai.NAME as albumName,
+               ai.CATEGORY_ID
         from KM_ALBUM_YELP_APPROVE aya
-        join KM_ALBUM_YELP ay
-        on
+                 join KM_ALBUM_YELP ay on aya.YELP_ID = ay.PK_ID
+                 join KM_ALBUM_INFO ai on aya.ALBUM_ID = ai.PK_ID and ai.PK_ID = ay.ALBUM_ID
+        <if test="@rx.Ognl@isNotEmpty(params.createName)">
+            JOIN LEARNING_USER_DEV.OS_USER os
+            ON aya.CREATE_BY_ = os.USER_ID_
+        </if>
+        <where>
+            <if test="@rx.Ognl@isNotEmpty(params.categoryId)">
+                ai.CATEGORY_ID IN (
+                SELECT PK_ID FROM KM_ALBUM_CATEGORY c WHERE c.IS_DEL = 0
+                START WITH c.PK_ID = #{params.categoryId} CONNECT BY PRIOR c.PK_ID = c.PARENT and c.IS_DEL = 0
+                )
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.name)">
+                and ai.NAME LIKE '%' || #{params.name} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.createName)">
+                and os.FULLNAME_ LIKE '%' || #{params.createName} || '%'
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.approvalState)">
+                and ay.APPROVAL_STATE = #{params.approvalState}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.createTimeStart)">
+                and TO_CHAR(aya.CREATE_TIME_,'yyyy-mm-dd') &gt;= #{params.createTimeStart}
+            </if>
+            <if test="@rx.Ognl@isNotEmpty(params.createTimeEnd)">
+                and TO_CHAR(aya.CREATE_TIME_,'yyyy-mm-dd') &lt;= #{params.createTimeEnd}
+            </if>
+            and aya.IS_DEL = 0 and ay.IS_DEL = 0 and ai.IS_DEL = 0
+        </where>
+        order by aya.SORT,aya.CREATE_TIME_ desc
     </select>
 
 </mapper>