浏览代码

加入myself

wangliang 1 年之前
父节点
当前提交
ef5e814298

+ 12 - 4
sop-api/src/main/java/com/qmth/sop/server/api/TBQualityProblemApplyController.java

@@ -1,17 +1,20 @@
 package com.qmth.sop.server.api;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.sop.business.bean.params.FlowApproveParam;
 import com.qmth.sop.business.bean.result.TBQualityProblemApplyResult;
 import com.qmth.sop.business.entity.TBQualityProblemApply;
+import com.qmth.sop.business.service.SysUserService;
 import com.qmth.sop.business.service.TBQualityProblemApplyService;
 import com.qmth.sop.common.contant.SystemConstant;
-import com.qmth.sop.common.enums.*;
+import com.qmth.sop.common.enums.InfluenceDegreeEnum;
+import com.qmth.sop.common.enums.QualityProblemReasonEnum;
+import com.qmth.sop.common.enums.QualityProblemTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import io.swagger.annotations.*;
+import org.activiti.engine.TaskService;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
@@ -37,6 +40,12 @@ public class TBQualityProblemApplyController {
     @Resource
     TBQualityProblemApplyService tBQualityProblemApplyService;
 
+    @Resource
+    TaskService taskService;
+
+    @Resource
+    SysUserService sysUserService;
+
     @ApiOperation(value = "质量问题反馈表查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "质量问题反馈表查询结果", response = TBQualityProblemApplyResult.class)})
@@ -52,8 +61,7 @@ public class TBQualityProblemApplyController {
             @ApiParam(value = "提交时间结束", required = false) @RequestParam(required = false) Long endTime,
             @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
             @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
-        IPage<TBQualityProblemApplyResult> resultIPage = tBQualityProblemApplyService.query(new Page<>(pageNumber, pageSize), serviceId, userId, type, reason, degree, custom, problemNo, startTime, endTime);
-        return ResultUtil.ok(resultIPage);
+        return ResultUtil.ok(tBQualityProblemApplyService.query(new Page<>(pageNumber, pageSize), serviceId, userId, type, reason, degree, custom, problemNo, startTime, endTime));
     }
 
     @ApiOperation(value = "质量问题反馈表新增修改接口")

+ 1 - 0
sop-business/src/main/java/com/qmth/sop/business/activiti/service/impl/ActivitiServiceImpl.java

@@ -851,6 +851,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                     for (FlowFormWidgetResult f : flowFormWidgetResultList) {
                         if (Objects.nonNull(sysRole) && f.getRoleType() != sysRole.getType()) {
                             f.setReadable(true);
+                            f.setWritable(false);
                         } else {
                             if (f.getFormId().contains(SystemConstant.APPROVE_RADIO_REGION) ||
                                     f.getFormId().contains(SystemConstant.APPROVE_REMARK_REGION) ||

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/DingApplyUnDoneResult.java

@@ -47,6 +47,17 @@ public class DingApplyUnDoneResult extends WorkTaskResult implements Serializabl
     @ApiModelProperty(value = "供应商编码")
     String supplierCode;
 
+    @ApiModelProperty(value = "是否是自己审核")
+    boolean myself;
+
+    public boolean isMyself() {
+        return myself;
+    }
+
+    public void setMyself(boolean myself) {
+        this.myself = myself;
+    }
+
     public String getSupplierName() {
         return supplierName;
     }

+ 11 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/ProjectExchangeResult.java

@@ -45,6 +45,17 @@ public class ProjectExchangeResult extends WorkTaskResult implements Serializabl
     @ApiModelProperty(value = "审核人")
     String approveUsersName;
 
+    @ApiModelProperty(value = "是否是自己审核")
+    boolean myself;
+
+    public boolean isMyself() {
+        return myself;
+    }
+
+    public void setMyself(boolean myself) {
+        this.myself = myself;
+    }
+
     public Long getId() {
         return id;
     }

+ 11 - 1
sop-business/src/main/java/com/qmth/sop/business/bean/result/TBQualityProblemApplyResult.java

@@ -34,7 +34,6 @@ public class TBQualityProblemApplyResult extends TBQualityProblemApply implement
     @ApiModelProperty(value = "提交人")
     private String submitter;
 
-
     @ApiModelProperty(value = "提交时间")
     private Long submissionTime;
 
@@ -67,6 +66,17 @@ public class TBQualityProblemApplyResult extends TBQualityProblemApply implement
     @JsonSerialize(using = ToStringSerializer.class)
     private Long taskId;
 
+    @ApiModelProperty(value = "是否是自己审核")
+    boolean myself;
+
+    public boolean isMyself() {
+        return myself;
+    }
+
+    public void setMyself(boolean myself) {
+        this.myself = myself;
+    }
+
     public String getCustomTypeStr() {
         if (Objects.nonNull(customType)) {
             return customType.getTitle();

+ 12 - 1
sop-business/src/main/java/com/qmth/sop/business/mapper/TBQualityProblemApplyMapper.java

@@ -2,6 +2,7 @@ package com.qmth.sop.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.sop.business.bean.dto.DataPermissionDto;
 import com.qmth.sop.business.bean.result.TBQualityProblemApplyResult;
 import com.qmth.sop.business.entity.TBQualityProblemApply;
 import org.apache.ibatis.annotations.Param;
@@ -23,7 +24,17 @@ public interface TBQualityProblemApplyMapper extends BaseMapper<TBQualityProblem
      * 查询列表
      *
      * @param iPage
+     * @param serviceId
+     * @param userId
+     * @param type
+     * @param reason
+     * @param degree
+     * @param custom
+     * @param problemNo
+     * @param startTime
+     * @param endTime
+     * @param dpr
      * @return
      */
-    IPage<TBQualityProblemApplyResult> query(IPage<Map> iPage, @Param("serviceId") Long serviceId, @Param("userId") Long userId, @Param("type") String type, @Param("reason") String reason, @Param("degree") String degree, @Param("custom") String custom, @Param("problemNo") String problemNo, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+    IPage<TBQualityProblemApplyResult> query(IPage<Map> iPage, @Param("serviceId") Long serviceId, @Param("userId") Long userId, @Param("type") String type, @Param("reason") String reason, @Param("degree") String degree, @Param("custom") String custom, @Param("problemNo") String problemNo, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("dpr") DataPermissionDto dpr);
 }

+ 16 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -20,6 +20,7 @@ import com.qmth.sop.common.enums.FlowApprovePassEnum;
 import com.qmth.sop.common.enums.InOutTypeEnum;
 import com.qmth.sop.common.util.ServletUtil;
 import org.activiti.engine.TaskService;
+import org.activiti.engine.task.IdentityLink;
 import org.activiti.engine.task.Task;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -130,6 +131,21 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
                     }
                     d.setAttachmentPaths(stringJoiner.toString());
                 }
+                if (Objects.nonNull(d.getTaskId())) {
+                    Task task = taskService.createTaskQuery().taskId(String.valueOf(d.getTaskId())).singleResult();
+                    if (Objects.nonNull(task.getAssignee()) && task.getAssignee().equals(requestUser.getId().toString())) {
+                        d.setMyself(true);
+                    } else {
+                        List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(task.getId());
+                        if (!CollectionUtils.isEmpty(identityLinkList)) {
+                            for (IdentityLink i : identityLinkList) {
+                                if (i.getUserId().equals(requestUser.getId().toString())) {
+                                    d.setMyself(true);
+                                }
+                            }
+                        }
+                    }
+                }
             }
         }
         return dingApplyUnDoneResultIPage;

+ 20 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBProjectExchangeServiceImpl.java

@@ -19,6 +19,7 @@ import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.*;
 import com.qmth.sop.common.util.ServletUtil;
 import org.activiti.engine.TaskService;
+import org.activiti.engine.task.IdentityLink;
 import org.activiti.engine.task.Task;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -109,7 +110,25 @@ public class TBProjectExchangeServiceImpl extends ServiceImpl<TBProjectExchangeM
     public IPage<ProjectExchangeResult> list(IPage<Map> iPage, Long serviceId, Long createUserId, DelayWarnTypeEnum type, ProductTypeEnum customType, ProjectExchangeFlowStatusEnum flowStatus, String customName, String exchangeNo, Long startTime, Long endTime) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
-        return this.baseMapper.list(iPage, serviceId, createUserId, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(customType) ? customType.name() : null, Objects.nonNull(flowStatus) ? flowStatus.name() : null, customName, exchangeNo, startTime, endTime, dpr);
+        IPage<ProjectExchangeResult> list = this.baseMapper.list(iPage, serviceId, createUserId, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(customType) ? customType.name() : null, Objects.nonNull(flowStatus) ? flowStatus.name() : null, customName, exchangeNo, startTime, endTime, dpr);
+        for (ProjectExchangeResult p : list.getRecords()) {
+            if (Objects.nonNull(p.getTaskId())) {
+                Task task = taskService.createTaskQuery().taskId(String.valueOf(p.getTaskId())).singleResult();
+                if (Objects.nonNull(task.getAssignee()) && task.getAssignee().equals(requestUser.getId().toString())) {
+                    p.setMyself(true);
+                } else {
+                    List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(task.getId());
+                    if (!CollectionUtils.isEmpty(identityLinkList)) {
+                        for (IdentityLink i : identityLinkList) {
+                            if (i.getUserId().equals(requestUser.getId().toString())) {
+                                p.setMyself(true);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return list;
     }
 
     /**

+ 27 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBQualityProblemApplyServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.sop.business.activiti.service.ActivitiService;
+import com.qmth.sop.business.bean.dto.DataPermissionDto;
 import com.qmth.sop.business.bean.dto.UserDto;
 import com.qmth.sop.business.bean.params.FlowApproveParam;
 import com.qmth.sop.business.bean.result.FlowFormWidgetResult;
@@ -17,6 +18,7 @@ import com.qmth.sop.business.entity.TBQualityProblemApply;
 import com.qmth.sop.business.entity.TFCustomFlowEntity;
 import com.qmth.sop.business.mapper.TBQualityProblemApplyMapper;
 import com.qmth.sop.business.service.SysUserRoleService;
+import com.qmth.sop.business.service.SysUserService;
 import com.qmth.sop.business.service.TBQualityProblemApplyService;
 import com.qmth.sop.business.service.TFCustomFlowEntityService;
 import com.qmth.sop.common.contant.SystemConstant;
@@ -24,6 +26,7 @@ import com.qmth.sop.common.enums.*;
 import com.qmth.sop.common.util.GsonUtil;
 import com.qmth.sop.common.util.ServletUtil;
 import org.activiti.engine.TaskService;
+import org.activiti.engine.task.IdentityLink;
 import org.activiti.engine.task.Task;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -60,6 +63,9 @@ public class TBQualityProblemApplyServiceImpl extends ServiceImpl<TBQualityProbl
     @Resource
     SysUserRoleService sysUserRoleService;
 
+    @Resource
+    SysUserService sysUserService;
+
     /**
      * 查询列表
      *
@@ -68,7 +74,27 @@ public class TBQualityProblemApplyServiceImpl extends ServiceImpl<TBQualityProbl
      */
     @Override
     public IPage<TBQualityProblemApplyResult> query(IPage<Map> iPage, Long serviceId, Long userId, QualityProblemTypeEnum type, QualityProblemReasonEnum reason, InfluenceDegreeEnum degree, String custom, String problemNo, Long startTime, Long endTime) {
-        return this.baseMapper.query(iPage, serviceId, userId, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(reason) ? reason.name() : null, Objects.nonNull(degree) ? degree.name() : null, custom, problemNo, startTime, endTime);
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
+        DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        IPage<TBQualityProblemApplyResult> resultIPage = this.baseMapper.query(iPage, serviceId, userId, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(reason) ? reason.name() : null, Objects.nonNull(degree) ? degree.name() : null, custom, problemNo, startTime, endTime, dpr);
+        for (TBQualityProblemApplyResult p : resultIPage.getRecords()) {
+            if (Objects.nonNull(p.getTaskId())) {
+                Task task = taskService.createTaskQuery().taskId(String.valueOf(p.getTaskId())).singleResult();
+                if (Objects.nonNull(task.getAssignee()) && task.getAssignee().equals(requestUser.getId().toString())) {
+                    p.setMyself(true);
+                } else {
+                    List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(task.getId());
+                    if (!CollectionUtils.isEmpty(identityLinkList)) {
+                        for (IdentityLink i : identityLinkList) {
+                            if (i.getUserId().equals(requestUser.getId().toString())) {
+                                p.setMyself(true);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return resultIPage;
     }
 
     /**

+ 18 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBSopInfoServiceImpl.java

@@ -420,12 +420,30 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                     if (task.getAssignee().equals(sysUser.getId().toString())) {
                         m.put("taskId", task.getId());
                         match = true;
+                        m.put("myself", true);
                         break;
                     }
                 }
                 if (!match) {
                     m.put("taskId", taskStrs[0]);
+                    m.put("myself", false);
                 }
+            } else if (Objects.nonNull(taskIds)) {
+                Task task = taskService.createTaskQuery().taskId(taskIds).singleResult();
+                if (Objects.nonNull(task.getAssignee()) && task.getAssignee().equals(sysUser.getId().toString())) {
+                    m.put("myself", true);
+                } else {
+                    List<IdentityLink> identityLinkList = taskService.getIdentityLinksForTask(task.getId());
+                    if (!CollectionUtils.isEmpty(identityLinkList)) {
+                        for (IdentityLink i : identityLinkList) {
+                            if (i.getUserId().equals(sysUser.getId().toString())) {
+                                m.put("myself", true);
+                            }
+                        }
+                    }
+                }
+            } else {
+                m.put("myself", false);
             }
         }
         return list;

+ 24 - 4
sop-business/src/main/resources/mapper/TBQualityProblemApplyMapper.xml

@@ -30,6 +30,8 @@
         LEFT JOIN sys_user cu ON cu.id = fa.create_id
         left join ACT_RU_TASK art on art.PROC_INST_ID_ = fa.flow_id
         left join act_ru_identitylink ari on ari.TASK_ID_ = art.ID_
+        left join t_b_crm tbc on tbc.crm_no = fe.crm_no
+        left join t_b_service tbs on tbs.id = tbc.service_id
         <where>
             <if test="serviceId != null and serviceId != ''">
                 and a.service_id = #{serviceId}
@@ -63,10 +65,28 @@
                 and a.create_time <= #{endTime}
                 ]]>
             </if>
+            <if test="dpr != null and !dpr.hasAdmin and !dpr.hasPmo">
+                <choose>
+                    <when test="dpr.hasBusiness">
+                        AND tbs.service_lead_id = #{dpr.requestUserId}
+                    </when>
+                    <otherwise>
+                        <choose>
+                            <when test="dpr.hasRegionManager">
+                                AND tbc.lead_id = #{dpr.requestUserId}
+                            </when>
+                            <otherwise>
+                                <choose>
+                                    <when test="dpr.hasRegionCoordinator">
+                                        AND tbc.region_coordinator_id = #{dpr.requestUserId}
+                                    </when>
+                                </choose>
+                            </otherwise>
+                        </choose>
+                    </otherwise>
+                </choose>
+            </if>
         </where>
-
-
-        ORDER BY
-        a.create_time DESC
+        ORDER BY a.create_time DESC
     </select>
 </mapper>