瀏覽代碼

新增考勤异常审核未审核已审核列表

wangliang 1 年之前
父節點
當前提交
6e6016a3ef

+ 138 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/DingApplyDoneResult.java

@@ -0,0 +1,138 @@
+package com.qmth.sop.business.bean.result;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.qmth.sop.common.enums.FlowApproveOperationEnum;
+import com.qmth.sop.common.enums.InOutTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @Description: 异常已审核result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/8/10
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class DingApplyDoneResult extends WorkTaskResult implements Serializable {
+
+    @ApiModelProperty(value = "异常审核类型")
+    InOutTypeEnum dingExceptionType;
+
+    @ApiModelProperty(value = "异常审核类型str")
+    String dingExceptionTypeStr;
+
+    @ApiModelProperty(value = "异常日期")
+    Long exceptionTime;
+
+    @ApiModelProperty(value = "补卡时间")
+    Long applyTime;
+
+    @ApiModelProperty(value = "理由")
+    String reason;
+
+    @ApiModelProperty(value = "附件/截图")
+    String attachmentPaths;
+
+    @ApiModelProperty(value = "申请时间")
+    Long createTime;
+
+    @ApiModelProperty(value = "审核结果")
+    FlowApproveOperationEnum approveOperation;
+
+    @ApiModelProperty(value = "审核结果Str")
+    String approveOperationStr;
+
+    @ApiModelProperty(value = "审核人")
+    String approveUsersName;
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public InOutTypeEnum getDingExceptionType() {
+        return dingExceptionType;
+    }
+
+    public void setDingExceptionType(InOutTypeEnum dingExceptionType) {
+        this.dingExceptionType = dingExceptionType;
+    }
+
+    public String getDingExceptionTypeStr() {
+        if (Objects.nonNull(dingExceptionType)) {
+            return dingExceptionType.getTitle();
+        } else {
+            return dingExceptionTypeStr;
+        }
+    }
+
+    public void setDingExceptionTypeStr(String dingExceptionTypeStr) {
+        this.dingExceptionTypeStr = dingExceptionTypeStr;
+    }
+
+    public Long getExceptionTime() {
+        return exceptionTime;
+    }
+
+    public void setExceptionTime(Long exceptionTime) {
+        this.exceptionTime = exceptionTime;
+    }
+
+    public Long getApplyTime() {
+        return applyTime;
+    }
+
+    public void setApplyTime(Long applyTime) {
+        this.applyTime = applyTime;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public String getAttachmentPaths() {
+        return attachmentPaths;
+    }
+
+    public void setAttachmentPaths(String attachmentPaths) {
+        this.attachmentPaths = attachmentPaths;
+    }
+
+    public FlowApproveOperationEnum getApproveOperation() {
+        return approveOperation;
+    }
+
+    public void setApproveOperation(FlowApproveOperationEnum approveOperation) {
+        this.approveOperation = approveOperation;
+    }
+
+    public String getApproveOperationStr() {
+        if (Objects.nonNull(approveOperation)) {
+            return approveOperation.getTitle();
+        } else {
+            return approveOperationStr;
+        }
+    }
+
+    public void setApproveOperationStr(String approveOperationStr) {
+        this.approveOperationStr = approveOperationStr;
+    }
+
+    public String getApproveUsersName() {
+        return approveUsersName;
+    }
+
+    public void setApproveUsersName(String approveUsersName) {
+        this.approveUsersName = approveUsersName;
+    }
+}

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

@@ -0,0 +1,111 @@
+package com.qmth.sop.business.bean.result;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.qmth.sop.common.enums.InOutTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @Description: 异常待审核result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/8/10
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class DingApplyUnDoneResult extends WorkTaskResult implements Serializable {
+
+    @ApiModelProperty(value = "异常审核类型")
+    InOutTypeEnum dingExceptionType;
+
+    @ApiModelProperty(value = "异常审核类型str")
+    String dingExceptionTypeStr;
+
+    @ApiModelProperty(value = "异常日期")
+    Long exceptionTime;
+
+    @ApiModelProperty(value = "补卡时间")
+    Long applyTime;
+
+    @ApiModelProperty(value = "理由")
+    String reason;
+
+    @ApiModelProperty(value = "附件/截图")
+    String attachmentPaths;
+
+    @ApiModelProperty(value = "当前审核人")
+    String approveUserName;
+
+    @ApiModelProperty(value = "申请时间")
+    Long createTime;
+
+    public InOutTypeEnum getDingExceptionType() {
+        return dingExceptionType;
+    }
+
+    public void setDingExceptionType(InOutTypeEnum dingExceptionType) {
+        this.dingExceptionType = dingExceptionType;
+    }
+
+    public String getDingExceptionTypeStr() {
+        if (Objects.nonNull(dingExceptionType)) {
+            return dingExceptionType.getTitle();
+        } else {
+            return dingExceptionTypeStr;
+        }
+    }
+
+    public void setDingExceptionTypeStr(String dingExceptionTypeStr) {
+        this.dingExceptionTypeStr = dingExceptionTypeStr;
+    }
+
+    public Long getExceptionTime() {
+        return exceptionTime;
+    }
+
+    public void setExceptionTime(Long exceptionTime) {
+        this.exceptionTime = exceptionTime;
+    }
+
+    public Long getApplyTime() {
+        return applyTime;
+    }
+
+    public void setApplyTime(Long applyTime) {
+        this.applyTime = applyTime;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public String getAttachmentPaths() {
+        return attachmentPaths;
+    }
+
+    public void setAttachmentPaths(String attachmentPaths) {
+        this.attachmentPaths = attachmentPaths;
+    }
+
+    public String getApproveUserName() {
+        return approveUserName;
+    }
+
+    public void setApproveUserName(String approveUserName) {
+        this.approveUserName = approveUserName;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+}

+ 7 - 4
sop-business/src/main/java/com/qmth/sop/business/mapper/TBDingApplyMapper.java

@@ -2,9 +2,12 @@ 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.result.DingApplyDoneResult;
+import com.qmth.sop.business.bean.result.DingApplyUnDoneResult;
 import com.qmth.sop.business.entity.TBDingApply;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -21,7 +24,7 @@ public interface TBDingApplyMapper extends BaseMapper<TBDingApply> {
      * 异常待审核接口
      *
      * @param iPage
-     * @param userId
+     * @param userIdList
      * @param serviceId
      * @param name
      * @param supplierId
@@ -32,13 +35,13 @@ public interface TBDingApplyMapper extends BaseMapper<TBDingApply> {
      * @param applyEndTime
      * @return
      */
-    IPage<Map> flowTaskUnDoneList(IPage<Map> iPage, @Param("userId") Long userId, @Param("serviceId") Long serviceId, @Param("name") String name, @Param("supplierId") Long supplierId, @Param("customName") String customName, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("applyStartTime") Long applyStartTime, @Param("applyEndTime") Long applyEndTime);
+    IPage<DingApplyUnDoneResult> flowTaskUnDoneList(IPage<Map> iPage, @Param("userIdList") List<String> userIdList, @Param("serviceId") Long serviceId, @Param("name") String name, @Param("supplierId") Long supplierId, @Param("customName") String customName, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("applyStartTime") Long applyStartTime, @Param("applyEndTime") Long applyEndTime);
 
     /**
      * 异常已审核接口
      *
      * @param iPage
-     * @param userId
+     * @param userIdList
      * @param serviceId
      * @param name
      * @param supplierId
@@ -49,5 +52,5 @@ public interface TBDingApplyMapper extends BaseMapper<TBDingApply> {
      * @param applyEndTime
      * @return
      */
-    IPage<Map> flowTaskDoneList(IPage<Map> iPage, @Param("userId") Long userId, @Param("serviceId") Long serviceId, @Param("name") String name, @Param("supplierId") Long supplierId, @Param("customName") String customName, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("applyStartTime") Long applyStartTime, @Param("applyEndTime") Long applyEndTime);
+    IPage<DingApplyDoneResult> flowTaskDoneList(IPage<Map> iPage, @Param("userIdList") List<String> userIdList, @Param("serviceId") Long serviceId, @Param("name") String name, @Param("supplierId") Long supplierId, @Param("customName") String customName, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("applyStartTime") Long applyStartTime, @Param("applyEndTime") Long applyEndTime);
 }

+ 4 - 2
sop-business/src/main/java/com/qmth/sop/business/service/TBDingApplyService.java

@@ -2,6 +2,8 @@ package com.qmth.sop.business.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.sop.business.bean.result.DingApplyDoneResult;
+import com.qmth.sop.business.bean.result.DingApplyUnDoneResult;
 import com.qmth.sop.business.entity.TBDingApply;
 
 import java.util.Map;
@@ -39,7 +41,7 @@ public interface TBDingApplyService extends IService<TBDingApply> {
      * @param applyEndTime
      * @return
      */
-    IPage<Map> flowTaskUnDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime);
+    IPage<DingApplyUnDoneResult> flowTaskUnDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime);
 
     /**
      * 异常已审核接口
@@ -55,5 +57,5 @@ public interface TBDingApplyService extends IService<TBDingApply> {
      * @param applyEndTime
      * @return
      */
-    IPage<Map> flowTaskDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime);
+    IPage<DingApplyDoneResult> flowTaskDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime);
 }

+ 6 - 4
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -4,6 +4,8 @@ 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.params.FlowApproveParam;
+import com.qmth.sop.business.bean.result.DingApplyDoneResult;
+import com.qmth.sop.business.bean.result.DingApplyUnDoneResult;
 import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBDing;
 import com.qmth.sop.business.entity.TBDingApply;
@@ -82,9 +84,9 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
      * @return
      */
     @Override
-    public IPage<Map> flowTaskUnDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime) {
+    public IPage<DingApplyUnDoneResult> flowTaskUnDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return this.baseMapper.flowTaskUnDoneList(iPage, sysUser.getId(), serviceId, name, supplierId, customName, startTime, endTime, applyStartTime, applyEndTime);
+        return this.baseMapper.flowTaskUnDoneList(iPage, Arrays.asList(sysUser.getId().toString()), serviceId, name, supplierId, customName, startTime, endTime, applyStartTime, applyEndTime);
     }
 
     /**
@@ -102,8 +104,8 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
      * @return
      */
     @Override
-    public IPage<Map> flowTaskDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime) {
+    public IPage<DingApplyDoneResult> flowTaskDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return this.baseMapper.flowTaskDoneList(iPage, sysUser.getId(), serviceId, name, supplierId, customName, startTime, endTime, applyStartTime, applyEndTime);
+        return this.baseMapper.flowTaskDoneList(iPage, Arrays.asList(sysUser.getId().toString()), serviceId, name, supplierId, customName, startTime, endTime, applyStartTime, applyEndTime);
     }
 }

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

@@ -49,8 +49,8 @@
                     left join sys_custom sc on sc.id = tbc.custom_id
                     left join sys_user su ON tfcfe.create_id = su.id
                     left join t_s_job_remind tsjr on tsjr.code  = tfcfe.code
-                    <where>
-                        art.ASSIGNEE_ = cast(#{userId} as char)
+                    <where> 1 = 1
+                        and art.ASSIGNEE_ = cast(#{userId} as char)
                     <if test="flowTaskTypeEnum != null and flowTaskTypeEnum != '' and flowTaskTypeEnum == 'DRAFT'">
                         and tffa.status = #{flowTaskTypeEnum}
                     </if>
@@ -102,8 +102,8 @@
                     left join sys_custom sc on sc.id = tbc.custom_id
                     left join sys_user su ON tfcfe.create_id = su.id
                     left join t_s_job_remind tsjr on tsjr.code  = tfcfe.code
-                 <where>
-                    art.ASSIGNEE_ is null
+                 <where> 1 = 1
+                    and art.ASSIGNEE_ is null
                   and ari.USER_ID_ = cast(#{userId} as char)
                   and ari.TYPE_ = 'candidate'
                   <if test="flowTaskTypeEnum != null and flowTaskTypeEnum != '' and flowTaskTypeEnum == 'DRAFT'">

+ 164 - 4
sop-business/src/main/resources/mapper/TBDingApplyMapper.xml

@@ -2,11 +2,171 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.sop.business.mapper.TBDingApplyMapper">
 
-    <select id="flowTaskUnDoneList" resultType="java.util.Map">
-
+    <select id="flowTaskUnDoneList" resultType="com.qmth.sop.business.bean.result.DingApplyUnDoneResult">
+        select
+            cast(art.ASSIGNEE_ as Decimal(24)) as userId,
+            tfcf.type,
+            tfcfe.code,
+            tffa.status,
+            tffa.setup,
+            tfcf.version,
+            tfcfe.obj_id as objId,
+            tfcfe.crm_no as crmNo,
+            tbc.name as crmName,
+            tbs.id as serviceId,
+            tbs.name as serviceName,
+            tbs.type as serviceType,
+            sc.id as customId,
+            sc.type as customType,
+            sc.name as customName,
+            tfcfe.create_id as createId,
+            su.real_name as createRealName,
+            art.PROC_INST_ID_ as flowId,
+            art.NAME_ as taskName,
+            art.TASK_DEF_KEY_ as taskDefKey,
+            art.ID_ as taskId,
+            tfcfe.flow_process_var as flowProcessVar,
+            tfcfe.t_f_custom_flow_id as customFlowId,
+            tfcf.flow_deployment_id as flowDeploymentId,
+            tfcfe.id as customFlowEntityid,
+            tbda.`type` as dingExceptionType,
+            IF(tbda.`type` = 'IN',tbd.sign_in_time,tbd.sign_out_time) as exceptionTime,
+            tbda.apply_time as applyTime,
+            tbda.reason,
+            (select group_concat(ba.`path` SEPARATOR ';') from basic_attachment ba where find_in_set(ba.id, tbda.attachment_ids)) as attachmentPaths,
+            tbda.create_time as createTime,
+            su1.real_name as approveUserName
+            from ACT_RU_TASK art
+                 left join t_f_flow_approve tffa on art.PROC_INST_ID_ = tffa.flow_id
+                 left join t_f_custom_flow_entity tfcfe on tfcfe.flow_id = tffa.flow_id
+                 left join t_f_custom_flow tfcf on tfcf.id = tfcfe.t_f_custom_flow_id
+                 left join t_b_crm tbc on tbc.crm_no = tfcfe.crm_no
+                 left join t_b_service tbs on tbs.id = tbc.service_id
+                 left join sys_custom sc on sc.id = tbc.custom_id
+                 left join t_b_ding_apply tbda on tbda.ding_exception_no = tfcfe.code
+                 left join t_b_ding tbd on tbd.id = tbda.ding_id
+                 left join sys_user su ON tbda.create_id = su.id
+                 left join t_b_user_archives tbua on tbua.mobile_number = su.mobile_number
+                 left join t_b_user_archives_supplier tbuas on tbuas.user_archives_id = tbua.id
+                 left join sys_supplier ss on ss.id = tbuas.supplier_id
+                 left join sys_user su1 ON cast(art.ASSIGNEE_ as Decimal(24)) = su1.id
+                 left join act_ru_identitylink ari on ari.TASK_ID_ = art.ID_
+        <where>
+            EXISTS(
+                    select * from(select cast(art.PROC_INST_ID_ as Decimal(24)) as flowId
+                                  from
+                                      ACT_RU_TASK art
+                                  where 1 = 1
+                                  <if test="userIdList != null and userIdList != '' and userIdList.size() > 0">
+                                      and art.ASSIGNEE_ IN
+                                      <foreach collection="userIdList" item="item" index="index" open="(" separator="," close=")">
+                                          #{item}
+                                      </foreach>
+                                  </if>
+                                  UNION all
+                                  select
+                                      art.PROC_INST_ID_ as flowId
+                                  from
+                                      ACT_RU_TASK art
+                                          left join act_ru_identitylink ari on
+                                          ari.TASK_ID_ = art.ID_
+                                  where
+                                      art.ASSIGNEE_ is null
+                                    <if test="userIdList != null and userIdList != '' and userIdList.size() > 0">
+                                        and ari.USER_ID_ IN
+                                        <foreach collection="userIdList" item="item" index="index" open="(" separator="," close=")">
+                                            #{item}
+                                        </foreach>
+                                    </if>
+                                    and ari.TYPE_ = 'candidate') t where t.flowId = art.PROC_INST_ID_)
+        </where>
     </select>
 
-    <select id="flowTaskDoneList" resultType="java.util.Map">
-
+    <select id="flowTaskDoneList" resultType="com.qmth.sop.business.bean.result.DingApplyDoneResult">
+        select
+            tfcf.type,
+            tfcfe.code,
+            tffa.status,
+            tffa.setup,
+            tfcf.version,
+            tfcfe.obj_id as objId,
+            tfcfe.crm_no as crmNo,
+            tbc.name as crmName,
+            tbs.id as serviceId,
+            tbs.name as serviceName,
+            tbs.type as serviceType,
+            sc.id as customId,
+            sc.type as customType,
+            sc.name as customName,
+            tfcfe.create_id as createId,
+            su.real_name as createRealName,
+            tfcfe.flow_process_var as flowProcessVar,
+            tfcfe.t_f_custom_flow_id as customFlowId,
+            tfcf.flow_deployment_id as flowDeploymentId,
+            tfcfe.id as customFlowEntityid,
+            tbda.`type` as dingExceptionType,
+            IF(tbda.`type` = 'IN',tbd.sign_in_time,tbd.sign_out_time) as exceptionTime,
+            tbda.apply_time as applyTime,
+            tbda.reason,
+            (select group_concat(ba.`path` SEPARATOR ';') from basic_attachment ba where find_in_set(ba.id, tbda.attachment_ids)) as attachmentPaths,
+            tbda.create_time as createTime,
+            (select tffl.approve_operation from t_f_flow_log tffl where tffl.flow_id = tfcfe.flow_id order by tffl.create_time desc limit 1) as approveOperation,
+		(select group_concat(us1.real_name SEPARATOR ';') from sys_user us1
+		where find_in_set(us1.id, (select group_concat(tffl.approve_id) from t_f_flow_log tffl where tffl.flow_id = tfcfe.flow_id))) as approveUsersName
+        from t_b_ding_apply tbda
+            left join t_f_custom_flow_entity tfcfe on tbda.ding_exception_no = tfcfe.code
+            left join t_f_flow_approve tffa on tfcfe.flow_id = tffa.flow_id
+            left join t_f_custom_flow tfcf on tfcf.id = tfcfe.t_f_custom_flow_id
+            left join t_b_crm tbc on tbc.crm_no = tfcfe.crm_no
+            left join t_b_service tbs on tbs.id = tbc.service_id
+            left join sys_custom sc on sc.id = tbc.custom_id
+            left join t_b_ding tbd on tbd.id = tbda.ding_id
+            left join sys_user su ON tbda.create_id = su.id
+            left join t_b_user_archives tbua on tbua.mobile_number = su.mobile_number
+            left join t_b_user_archives_supplier tbuas on tbuas.user_archives_id = tbua.id
+            left join sys_supplier ss on ss.id = tbuas.supplier_id
+        where
+            (tffa.status = 'AUDITING' or tffa.status = 'REJECT' or tffa.status = 'FINISH')
+          and EXISTS (
+            select * from(select
+            distinct aht.PROC_INST_ID_
+            from
+            ACT_HI_TASKINST aht
+            where 1 = 1
+            <if test="userIdList != null and userIdList != '' and userIdList.size() > 0">
+                and aht.ASSIGNEE_ IN
+                <foreach collection="userIdList" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+          and aht.END_TIME_ is not null
+            union all
+            select
+            t.PROC_INST_ID_
+            from
+            (
+            select
+            ahi.*
+            from
+            ACT_HI_IDENTITYLINK ahi
+            where
+            ahi.TYPE_ = 'candidate'
+          and exists(
+            select
+            distinct aht.id_
+            from
+            ACT_HI_TASKINST aht
+            where
+            aht.ASSIGNEE_ is null
+          and aht.END_TIME_ is not null
+          and ahi.TASK_ID_ = aht.id_)
+            <if test="userIdList != null and userIdList != '' and userIdList.size() > 0">
+                and ahi.USER_ID_ IN
+                <foreach collection="userIdList" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>) temp
+            join ACT_HI_TASKINST t on
+            t.ID_ = temp.TASK_ID_) temp where temp.PROC_INST_ID_ = tfcfe.flow_id)
     </select>
 </mapper>

+ 2 - 2
sop-server/src/main/java/com/qmth/sop/server/api/TBDingApplyController.java

@@ -43,7 +43,7 @@ public class TBDingApplyController {
         return ResultUtil.ok(tbDingApplyService.saveDingApply(tbDingApply));
     }
 
-    @ApiOperation(value = "异常待审核接口")
+    @ApiOperation(value = "考勤异常待审核接口")
     @RequestMapping(value = "/flow/task/un_done/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
     public Result flowTaskUnDoneList(@ApiParam(value = "服务单元id") @RequestParam(required = false) Long serviceId,
@@ -59,7 +59,7 @@ public class TBDingApplyController {
         return ResultUtil.ok(tbDingApplyService.flowTaskUnDoneList(new Page<>(pageNumber, pageSize), serviceId, name, supplierId, customName, startTime, endTime, applyStartTime, applyEndTime));
     }
 
-    @ApiOperation(value = "异常已审核接口")
+    @ApiOperation(value = "考勤异常已审核接口")
     @RequestMapping(value = "/flow/task/done/list", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = Object.class)})
     public Result flowTaskDoneList(@ApiParam(value = "服务单元id") @RequestParam(required = false) Long serviceId,