소스 검색

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

QuYueTing 2 달 전
부모
커밋
62216d5073
16개의 변경된 파일516개의 추가작업 그리고 7개의 파일을 삭제
  1. 27 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TableColumnController.java
  2. 27 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusObject.java
  3. 43 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/CusTableColumn.java
  4. 9 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjectMapper.java
  5. 16 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/CusTableColumnMapper.java
  6. 14 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/provider/CusTableColumnProvider.java
  7. 11 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CusTableColumnService.java
  8. 58 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CusTableColumnServiceImpl.java
  9. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  10. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/OtherTaskFileInfoVO.java
  11. 6 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskMapper.java
  12. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskService.java
  13. 86 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java
  14. 4 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java
  15. 67 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml
  16. 107 3
      fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

+ 27 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TableColumnController.java

@@ -0,0 +1,27 @@
+package com.management.platform.controller;
+
+import com.management.platform.service.CusTableColumnService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/tableColumn")
+public class TableColumnController {
+
+    @Resource
+    private CusTableColumnService cusTableColumnService;
+
+//    @RequestMapping("/")
+
+    @RequestMapping("/getStructByTableName")
+    public HttpRespMsg getStructByTableName(@RequestParam("tableName") String tableName, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = cusTableColumnService.getStructByTableName(tableName,request);
+        return msg;
+    }
+}

+ 27 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/BusObject.java

@@ -0,0 +1,27 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class BusObject extends Model<BusObject> {
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**业务对象名称*/
+    @TableField("name")
+    private String name;
+
+    /**对应数据库里的表名*/
+    @TableField("tbl_name")
+    private String tblName;
+}

+ 43 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/entity/CusTableColumn.java

@@ -0,0 +1,43 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CusTableColumn extends Model<CusTableColumn> {
+//    private String TABLE_CATALOG;
+    private String tableCatalog;
+//    private String IS_NULLABLE;
+    private String isNullable;
+//    private String TABLE_NAME;
+    private String tableName;
+//    private String TABLE_SCHEMA;
+    private String tableSchema;
+//    private String EXTRA;
+    private String extra;
+//    private String COLUMN_NAME;
+    private String columnName;
+//    private String COLUMN_KEY;
+    private String columnKey;
+//    private String NUMERIC_PRECISION;
+    private String numericPrecision;
+//    private String PRIVILEGES;
+    private String privileges;
+//    private String COLUMN_COMMENT;
+    private String columnComment;
+//    private String NUMERIC_SCALE;
+    private String numericScale;
+//    private String COLUMN_TYPE;
+    private String columnType;
+//    private String GENERATION_EXPRESSION;
+    private String generationExpression;
+//    private String ORDINAL_POSITION;
+    private String ordinalPosition;
+//    private String DATA_TYPE;
+    private String dataType;
+
+}

+ 9 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusObjectMapper.java

@@ -0,0 +1,9 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.BusObject;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BusObjectMapper extends BaseMapper<BusObject> {
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/CusTableColumnMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.CusTableColumn;
+import com.management.platform.provider.CusTableColumnProvider;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.SelectProvider;
+
+import java.util.List;
+
+@Mapper
+public interface CusTableColumnMapper extends BaseMapper<CusTableColumn> {
+
+    @SelectProvider(type = CusTableColumnProvider.class,method = "getStructByTableName")
+    List<CusTableColumn> getStructByTableName(String tableName);
+}

+ 14 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/provider/CusTableColumnProvider.java

@@ -0,0 +1,14 @@
+package com.management.platform.provider;
+
+public class CusTableColumnProvider {
+    public String getStructByTableName(String tableName){
+        StringBuilder stringBuilder = new StringBuilder();
+        stringBuilder
+                .append("SELECT * FROM information_schema.`COLUMNS` WHERE TABLE_SCHEMA=(SELECT DATABASE()) AND TABLE_NAME = ")
+                .append("'")
+                .append(tableName).append("'")
+                .append(" AND COLUMN_NAME not like '%_id%' AND COLUMN_NAME not like '%id%' ")
+        ;
+        return stringBuilder.toString();
+    }
+}

+ 11 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/CusTableColumnService.java

@@ -0,0 +1,11 @@
+package com.management.platform.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.management.platform.entity.CusTableColumn;
+import com.management.platform.util.HttpRespMsg;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface CusTableColumnService extends IService<CusTableColumn> {
+    HttpRespMsg getStructByTableName(String tableName, HttpServletRequest request);
+}

+ 58 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/CusTableColumnServiceImpl.java

@@ -0,0 +1,58 @@
+package com.management.platform.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.management.platform.entity.BusObject;
+import com.management.platform.entity.CusTableColumn;
+import com.management.platform.entity.User;
+import com.management.platform.mapper.BusObjectMapper;
+import com.management.platform.mapper.CusTableColumnMapper;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.CusTableColumnService;
+import com.management.platform.util.HttpRespMsg;
+import com.management.platform.util.MessageUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class CusTableColumnServiceImpl extends ServiceImpl<CusTableColumnMapper, CusTableColumn> implements CusTableColumnService {
+
+    @Resource
+    private CusTableColumnMapper cusTableColumnMapper;
+
+    @Resource
+    private UserMapper userMapper;
+
+    @Resource
+    private BusObjectMapper busObjectMapper;
+
+
+    @Override
+    public HttpRespMsg getStructByTableName(String tableName, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String userId = request.getHeader("Token");
+        User user = userMapper.selectById(userId);
+        if(null == user){
+            msg.setError(MessageUtils.message("user.notExists"));
+            return msg;
+        }
+        BusObject busObject = busObjectMapper.selectOne(new LambdaQueryWrapper<BusObject>()
+                .eq(BusObject::getTblName, tableName)
+        );
+        if(null == busObject){
+            msg.setError("该表不存在");
+            return msg;
+        }
+        Map<String,Object> resMap = new HashMap<>();
+        resMap.put("busObject",busObject);
+        List<CusTableColumn> columnList = cusTableColumnMapper.getStructByTableName(tableName);
+        resMap.put("columnList",columnList);
+        msg.setData(resMap);
+        return msg;
+    }
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -127,6 +127,22 @@ public class TaskController {
     @Autowired
     private ProjectCategoryMapper projectCategoryMapper;
 
+    @PostMapping("/sendMsgToChargers")
+    public HttpRespMsg sendMsgToChargers(
+            @RequestParam("ids")String ids, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = taskService.sendMsgToChargers(ids,request);
+        return msg;
+    }
+
+    @PostMapping("/getOtherTaskChargePage")
+    public HttpRespMsg getOtherTaskChargePage(
+            QueryTaskChargePage queryBO, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = taskService.getOtherTaskChargePage(queryBO,request);
+        return msg;
+    }
+
     @PostMapping("/getTaskChargePage")
     public HttpRespMsg getTaskChargePage(
             QueryTaskChargePage queryBO, HttpServletRequest request) {

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/vo/OtherTaskFileInfoVO.java

@@ -0,0 +1,21 @@
+package com.management.platform.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+@Data
+public class OtherTaskFileInfoVO {
+    @JsonIgnore
+    private Integer projectId;
+    private String projectName;
+    @JsonIgnore
+    private Integer taskId;
+    private String taskName;
+    @JsonIgnore
+    private String creatorId;//文件上传人id
+    private String creatorName;
+
+    private String documentName;
+    private String finalChargeId;
+    private String finalChargeName;
+}

+ 6 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/TaskMapper.java

@@ -6,10 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.management.platform.entity.Task;
 import com.management.platform.entity.TimeTask;
 import com.management.platform.entity.bo.QueryTaskChargePage;
-import com.management.platform.entity.vo.ProjectTaskTimeCostVO;
-import com.management.platform.entity.vo.ProjectTimeCostVO;
-import com.management.platform.entity.vo.TaskChargePageVO;
-import com.management.platform.entity.vo.TaskFileChargePageVO;
+import com.management.platform.entity.vo.*;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Update;
 
@@ -83,6 +80,11 @@ public interface TaskMapper extends BaseMapper<Task> {
 
     int getTaskFileChargePageTotal(@Param("queryBO") QueryTaskChargePage queryBO, @Param("deptIds")List<Integer> branchDepartment);
 
+
+    List<OtherTaskFileInfoVO> getOtherTaskChargePage(@Param("queryBO") QueryTaskChargePage queryBO, @Param("deptIds")List<Integer> branchDepartment);
+
+    int getOtherTaskChargePageTotal(@Param("queryBO") QueryTaskChargePage queryBO, @Param("deptIds")List<Integer> branchDepartment);
+
     List<ProjectTaskTimeCostVO> getProjectAllTaskTimeCost(@Param("projectId") Integer projectId);
 
     List<ProjectTimeCostVO> getProjectTaskTimeCostByIds(@Param("projectIds")List<Integer> projectIds);

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/TaskService.java

@@ -60,4 +60,8 @@ public interface TaskService extends IService<Task> {
     HttpRespMsg getFileRejectReason(String taskId, HttpServletRequest request);
 
     HttpRespMsg getTaskChargePage(QueryTaskChargePage queryBO, HttpServletRequest request);
+
+    HttpRespMsg getOtherTaskChargePage(QueryTaskChargePage queryBO, HttpServletRequest request);
+
+    HttpRespMsg sendMsgToChargers(String ids, HttpServletRequest request);
 }

+ 86 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.util.StringUtil;
 import com.management.platform.entity.*;
 import com.management.platform.entity.bo.QueryTaskChargePage;
+import com.management.platform.entity.vo.OtherTaskFileInfoVO;
 import com.management.platform.entity.vo.TaskFileChargePageVO;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
@@ -16,6 +17,7 @@ import com.management.platform.util.ExcelUtil;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.xssf.usermodel.XSSFCell;
@@ -987,6 +989,90 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         return msg;
     }
 
+    @Override
+    public HttpRespMsg getOtherTaskChargePage(QueryTaskChargePage queryBO, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String userId = request.getHeader("Token");
+        User user = userMapper.selectById(userId);
+        Integer companyId = user.getCompanyId();
+        queryBO.setUserId(userId);
+        queryBO.setCompanyId(companyId);
+        queryBO.setPageIndex((queryBO.getPageIndex()-1)*queryBO.getPageSize());
+
+        List<Integer> branchDepartment=null;
+        if(queryBO.getDeptId()!=null){
+            List<Department> departmentList=departmentService.list(new QueryWrapper<Department>().eq("company_id",companyId));
+            branchDepartment= getBranchDepartment(queryBO.getDeptId(), departmentList);
+        }
+
+        List<OtherTaskFileInfoVO> list = taskMapper.getOtherTaskChargePage(queryBO,branchDepartment);
+        List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getCompanyId, user.getCompanyId())
+                .eq(User::getIsActive, 1)
+        );
+
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",user.getCompanyId()));
+        CompanyDingding dingding = companyDingdingService.getOne(new LambdaQueryWrapper<CompanyDingding>().eq(CompanyDingding::getCompanyId, user.getCompanyId()));
+
+        if(CollectionUtils.isNotEmpty(list)){
+            Map<String, User> userMap = users.stream().collect(Collectors.toMap(User::getId, t -> t));
+            for (OtherTaskFileInfoVO otherTaskFileInfoVO : list) {
+                User createrUser = userMap.get(otherTaskFileInfoVO.getCreatorId());
+                User finalChargeUser = userMap.get(otherTaskFileInfoVO.getFinalChargeId());
+                String createrUserWxId = "";
+                String chargeUserWxId = "";
+                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
+                    createrUserWxId = createrUser.getCorpwxRealUserid();
+                    chargeUserWxId = finalChargeUser.getCorpwxRealUserid();
+                }else if(dingding!=null&&dingding.getContactNeedTranslate()==1){
+                    createrUserWxId = createrUser.getDingdingUserid();
+                    chargeUserWxId = finalChargeUser.getDingdingUserid();
+                }
+                if(StringUtils.isNotBlank(createrUserWxId)){
+                    otherTaskFileInfoVO.setCreatorName("$userName=" + createrUserWxId + "$");
+                }else{
+                    otherTaskFileInfoVO.setCreatorName(createrUser.getName());
+                }
+                if(StringUtils.isNotBlank(chargeUserWxId)){
+                    otherTaskFileInfoVO.setFinalChargeName("$userName=" + chargeUserWxId + "$");
+                }else{
+                    otherTaskFileInfoVO.setFinalChargeName(finalChargeUser.getName());
+                }
+            }
+        }
+
+        int total = taskMapper.getOtherTaskChargePageTotal(queryBO,branchDepartment);
+        Map<String, Object> map = new HashMap<>();
+        map.put("records", list);
+        map.put("total", total);
+        msg.data = map;
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg sendMsgToChargers(String ids, HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String userId = request.getHeader("Token");
+        User user = userMapper.selectById(userId);
+
+        String[] split = ids.split(",");
+        if(0 == split.length){
+            msg.setError("审核文件不能为空");
+            return msg;
+        }
+
+        List<String> list = Arrays.asList(split);
+        List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getId, list));
+        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+
+        String collect = users.stream().map(User::getCorpwxUserid).distinct().collect(Collectors.joining(","));
+
+        if(CollectionUtils.isNotEmpty(users)){
+            wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,collect,"请尽快完成任务文件的审核",null
+                    , WxCorpInfoServiceImpl.TEXT_CARD_MSG_TASK_FILE_CHECK);
+        }
+        return msg;
+    }
+
     private List<Integer> getBranchDepartment(Integer departmentId, List<Department> departmentList) {
         List<Integer> list = new ArrayList<>();
         list.add(departmentId);

+ 4 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -118,6 +118,8 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
     public static final int TEXT_CARD_MSG_EXPENSE_NEED = 26;//费用报销待审核
     public static final int TEXT_CARD_MSG_EXPENSE_UN = 27;//费用报销待填写
 
+    public static final int TEXT_CARD_MSG_TASK_FILE_CHECK = 28;//任务文件驳回
+
     private static Object userLock = new Object();
 
     @Value("${suitId}")
@@ -370,6 +372,8 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     title = "任务文件更新";
                 } else if (msgType.equals(TEXT_CARD_MSG_TASK_FILE_REJECT)) {
                     title = "任务文件被驳回";
+                } else if (msgType.equals(TEXT_CARD_MSG_TASK_FILE_CHECK)) {
+                    title = "任务文件审核";
                 }
             } else {
                 jumpUrl = jumpUrl.replace("STATE", pageRouter);

+ 67 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskMapper.xml

@@ -738,4 +738,71 @@
         )tmp1
         group by project_id
     </select>
+    <select id="getOtherTaskChargePage" resultType="com.management.platform.entity.vo.OtherTaskFileInfoVO">
+        select tf.task_id,task.name as taskName
+        ,p.id as projectId,p.project_name
+        ,tf.creator_id,tf.document_name
+        ,case tf.charge_stage
+        when 1 then tf.charge_one_id when 2 then tf.charge_two_id
+        end as final_charge_id
+        from task_files tf
+        left join task on tf.task_id = task.id
+        left join project p on task.project_id = p.id
+        <where>
+            tf.need_file_charge = 1
+            and tf.final_charge_status = 0
+            and task.task_status = 0
+            and task.company_id = #{queryBO.companyId}
+            and case tf.charge_stage
+            when 1 then tf.charge_one_id != #{queryBO.userId} and tf.charge_one_status = 0
+            when 2 then tf.charge_two_id != #{queryBO.userId} and tf.charge_two_status = 0
+            end
+            <if test="queryBO.taskName != null and queryBO.taskName != ''">
+                and task.name like concat('%',#{queryBO.taskName},'%')
+            </if>
+            <if test="deptIds!=null and deptIds.size()>0">
+                and p.dept_id in
+                <foreach collection="deptIds" open="(" close=")" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY tf.task_id ,tf.id desc
+        <if test="queryBO.pageIndex != null and queryBO.pageSize != null">
+            limit #{queryBO.pageIndex}, #{queryBO.pageSize}
+        </if>
+    </select>
+    <select id="getOtherTaskChargePageTotal" resultType="java.lang.Integer">
+        select count(*)
+        from (
+        select tf.task_id,task.name as taskName
+        ,p.id as projectId,p.project_name
+        ,tf.creator_id,tf.document_name
+        ,case tf.charge_stage
+        when 1 then tf.charge_one_id when 2 then tf.charge_two_id
+        end as final_charge_id
+        from task_files tf
+        left join task on tf.task_id = task.id
+        left join project p on task.project_id = p.id
+        <where>
+            tf.need_file_charge = 1
+            and tf.final_charge_status = 0
+            and task.task_status = 0
+            and task.company_id = #{queryBO.companyId}
+            and case tf.charge_stage
+            when 1 then tf.charge_one_id != #{queryBO.userId} and tf.charge_one_status = 0
+            when 2 then tf.charge_two_id != #{queryBO.userId} and tf.charge_two_status = 0
+            end
+            <if test="queryBO.taskName != null and queryBO.taskName != ''">
+                and task.name like concat('%',#{queryBO.taskName},'%')
+            </if>
+            <if test="deptIds!=null and deptIds.size()>0">
+                and p.dept_id in
+                <foreach collection="deptIds" open="(" close=")" separator="," item="item">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+             ) tmp1
+    </select>
 </mapper>

+ 107 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -72,6 +72,13 @@
                     </div>
                 </el-form-item>
 
+                <el-form-item v-if="idx == 3">
+                    <el-radio-group v-model="documentRadios" size="small" @input="documentRadioInput">
+                        <el-radio-button label="待我审核"></el-radio-button>
+                        <el-radio-button label="待他人审核"></el-radio-button>
+                    </el-radio-group>
+                </el-form-item>
+
                 <el-form-item v-if="idx != 3">
                     <div style="display: flex;">
                         <div style="margin-left: 20px">
@@ -216,7 +223,8 @@
                     </el-table-column>
                 </el-table>
 
-                <el-table v-if="[3].includes(idx)" :data="documentReview"  highlight-current-row v-loading="documentReviewLoading" :height="tableHeight" style="width: 100%;" :key="tablesTwoKey">
+                <el-table v-if="[3].includes(idx)" :data="documentReview"  highlight-current-row v-loading="documentReviewLoading" :height="tableHeight" style="width: 100%;" :key="tablesTwoKey" @selection-change="agentSelectChange">
+                    <el-table-column type="selection" width="55" v-if="documentRadios == '待他人审核'"></el-table-column>
                     <el-table-column prop="projectName" :label="$t('headerTop.projectName')" sortable width="260" show-overflow-tooltip>
                         <template slot-scope="scope">
                             <el-link type="primary" :href="'#/projectInside/'+scope.row.projectId">{{scope.row.projectName}}</el-link>
@@ -241,6 +249,11 @@
                             </div>
                         </template>
                     </el-table-column>
+                    <el-table-column label="文件名称" v-if="documentRadios == '待他人审核'">
+                        <template slot-scope="scope">
+                            {{ scope.row.documentName }}
+                        </template>
+                    </el-table-column>
                     <el-table-column prop="executorName" :label="$t('zhi-hang-ren')" sortable>
                         <template slot-scope="scope">
                             <span v-for="(item, index) in scope.row.executorList" :key="index">
@@ -254,11 +267,21 @@
                             </span>
                         </template>
                     </el-table-column>
-                    <el-table-column label="文件审核" width="140">
+                    <el-table-column label="文件审核" width="140" v-if="documentRadios == '待我审核'">
                         <template slot-scope="scope">
                             <el-button type="primary" size="mini" @click="viewFilesAndReviewThem(scope.row)">查看文件并审核</el-button>
                         </template>
                     </el-table-column>
+                    <el-table-column label="审核人" width="140" v-if="documentRadios == '待他人审核'">
+                        <template slot-scope="scope">
+                            <template v-if="user.userNameNeedTranslate == 1">
+                                <TranslationOpenDataText type='userName' :openid='scope.row.finalChargeName'></TranslationOpenDataText>
+                            </template>
+                            <template v-if="user.userNameNeedTranslate != 1">
+                                {{ scope.row.finalChargeName }}
+                            </template>
+                        </template>
+                    </el-table-column>
                 </el-table>
 
                 <!-- 重启时输入原因 -->
@@ -288,7 +311,10 @@
                 </el-dialog>
 
                 <!--工具条-->
-                <el-col :span="24" class="toolbar">
+                <el-col :span="24" class="toolbar bottomToolbar">
+                    <div>
+                        <el-button type="primary" size="small" :disabled="!selectFilesed.length" :loading="urgingLoading" v-if="documentRadios == '待他人审核'" @click="urgingCli()">催办</el-button>
+                    </div>
                     <el-pagination
                         @size-change="handleSizeChange"
                         @current-change="handleCurrentChange"
@@ -778,6 +804,7 @@ import { getThemeColor } from '@/utils/commonMethod.js'
                 screenDeptId: [],
 
                 // 待审核文件
+                documentRadios: '待我审核',
                 documentReview: [],
                 documentReviewLoading: false,
                 auditFileTaskName: '',
@@ -791,6 +818,8 @@ import { getThemeColor } from '@/utils/commonMethod.js'
                 viewFilesAndReviewThemRejectRow: {},
                 viewFilesAndReviewThemAdoptLoading: false,
                 viewFilesAndReviewThemkey: 902,
+                selectFilesed: [], // 列表选择
+                urgingLoading: false,
 
                 tablesKey: 1,
                 tablesTwoKey: 300,
@@ -798,6 +827,33 @@ import { getThemeColor } from '@/utils/commonMethod.js'
             };
         },
         methods: {
+            urgingCli() {
+                const ids = this.selectFilesed.map(item => item.finalChargeId).join(',')
+                this.urgingLoading = true
+                this.http.post('/task/sendMsgToChargers',{
+                    ids
+                },res => {
+                    this.urgingLoading = false
+                    if(res.code == 'ok'){
+                        this.$message.success('催办成功')
+                        this.selectFilesed = []
+                    }else {
+                        this.$message.error(res.msg)
+                    }
+                },error => { this.$message.error(error), this.urgingLoading = false })
+            },
+            documentRadioInput(val) {
+                this.tablesTwoKey++
+                this.page = 1
+                if(val == '待我审核') {
+                    this.getFilesAwaitingReview()
+                    return
+                }
+                this.getFilesAwaitingReviewTwo()
+            },  
+            agentSelectChange(rows) {
+                this.selectFilesed = rows
+            },
             handleSelectionChange(val) {
                 this.tableMultipleSelection = val;
             },
@@ -1303,6 +1359,48 @@ import { getThemeColor } from '@/utils/commonMethod.js'
                     });
                 })
             },
+            getFilesAwaitingReviewTwo() {
+                this.documentReviewLoading = true;
+                let parameter = {
+                    pageIndex: this.page,
+                    pageSize: this.size,
+                    projectId: this.screenProjectId,
+                    taskName: this.auditFileTaskName
+                }
+
+                if(this.deptId.length > 0) {
+                    parameter.deptId = this.deptId[this.deptId.length - 1]
+                } else {
+                    parameter.deptId = ''
+                }
+
+                this.http.post('/task/getOtherTaskChargePage', parameter,
+                res => {
+                    this.documentReviewLoading = false;
+                    if(res.code == 'ok') {
+                        this.documentReview = (res.data.records || []).map((item) => {
+                            return {
+                                ...item,
+                                executorList: [{ executorName: item.creatorName }],
+                            }
+                        })
+                        // this.tablesTwoKey++
+                        this.total = res.data.total
+                    } else {
+                        this.$message({
+                            message: res.msg,
+                            type: "error"
+                        });
+                    }
+                },
+                error => {
+                    this.documentReviewLoading = false;
+                    this.$message({
+                        message: error,
+                        type: "error"
+                    });
+                })
+            },
             // 导出任务
             exportTask() {
                 // console.log('执行代码')
@@ -1516,6 +1614,7 @@ import { getThemeColor } from '@/utils/commonMethod.js'
                 this.page = 1
                 // console.log(this.searchField)
                 if([3].includes(e)) {
+                    this.documentRadios = '待我审核'
                     this.getFilesAwaitingReview()
                 } else {
                     this.getList()
@@ -2323,6 +2422,11 @@ import { getThemeColor } from '@/utils/commonMethod.js'
 </script>
 
 <style lang="scss" scoped>
+    .bottomToolbar {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+    }
     .Daily p {
         margin: 0 !important;
         padding: 0 0 10px 0 !important;