Browse Source

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

Min 1 year ago
parent
commit
76a3bcc91e
15 changed files with 148 additions and 38 deletions
  1. 4 4
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  2. 3 3
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java
  3. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  4. 17 9
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  5. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  6. 18 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml
  7. 4 2
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserMapper.xml
  8. 0 5
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdMaterialController.java
  9. 7 4
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProductController.java
  10. 2 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProductService.java
  11. 1 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdMaterialServiceImpl.java
  12. 28 4
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java
  13. 2 1
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/product/list.vue
  14. 49 2
      fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue
  15. 10 0
      fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

+ 4 - 4
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -1182,13 +1182,13 @@ public class ProjectController {
 
     //项目分组阶段工时表
     @RequestMapping("/projectGroupAndCategoryWorkTime")
-    public HttpRespMsg projectGroupAndCategoryWorkTime(HttpServletRequest request,String startDate,String endDate,Integer projectId,Integer pageIndex,Integer pageSize){
-        return projectService.projectGroupAndCategoryWorkTime(request,startDate,endDate,projectId,pageIndex,pageSize);
+    public HttpRespMsg projectGroupAndCategoryWorkTime(HttpServletRequest request,String startDate,String endDate,Integer projectId,String groupNames, Integer pageIndex,Integer pageSize){
+        return projectService.projectGroupAndCategoryWorkTime(request,startDate,endDate,projectId,groupNames, pageIndex,pageSize);
     }
 
     @RequestMapping("/exportProjectGroupAndCategoryWorkTime")
-    public HttpRespMsg exportProjectGroupAndCategoryWorkTime(HttpServletRequest request,String startDate,String endDate,Integer projectId){
-        return projectService.exportProjectGroupAndCategoryWorkTime(request,startDate,endDate,projectId);
+    public HttpRespMsg exportProjectGroupAndCategoryWorkTime(HttpServletRequest request,String startDate,String endDate,Integer projectId, String groupNames){
+        return projectService.exportProjectGroupAndCategoryWorkTime(request,startDate,endDate,projectId, groupNames);
     }
 
     @RequestMapping("/getSubProjectTimeCost")

+ 3 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectMapper.java

@@ -137,11 +137,11 @@ public interface ProjectMapper extends BaseMapper<Project> {
 
     List<Map<String,Object>> selectDeptPartInProjects(Integer size, Integer start, String startDate, String endDate,Integer companyId, List<Integer> branchDepartment, List<Integer> deptIds);
 
-    List<Map<String, Object>> getProjectGroupAndCategoryList(String startDate, String endDate, Integer projectId, Integer companyId, Integer start, Integer size, List<Integer> inchagerIds);
+    List<Map<String, Object>> getProjectGroupAndCategoryList(String startDate, String endDate, Integer projectId, Integer companyId, Integer start, Integer size, List<Integer> inchagerIds, List<String> gpNamesList);
 
-    List<Map<String, Object>> getProjectGroupAndCategoryData(String startDate, String endDate, Integer projectId, Integer companyId, Integer start, Integer size, List<Integer> inchagerIds);
+    List<Map<String, Object>> getProjectGroupAndCategoryData(String startDate, String endDate, Integer projectId, Integer companyId, Integer start, Integer size, List<Integer> inchagerIds, List<String> gpNamesList);
 
-    long getProjectGroupAndCategoryCount(String startDate, String endDate, Integer projectId, Integer companyId, Integer start, Integer size, List<Integer> inchagerIds);
+    long getProjectGroupAndCategoryCount(String startDate, String endDate, Integer projectId, Integer companyId, Integer start, Integer size, List<Integer> inchagerIds, List<String> gpNamesList);
 
     List<Map<String, Object>> getSubProjectTimeCost(Integer companyId, String startDate, String endDate, Integer projectId,Integer start,Integer size, List<Integer> inchagerIds);
 

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -226,9 +226,9 @@ public interface ProjectService extends IService<Project> {
 
     HttpRespMsg getGanttDataNew(Integer type, String startDate, String endDate, String userId, Integer projectId, String groupName, Integer taskType, HttpServletRequest request);
 
-    HttpRespMsg projectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId,Integer pageIndex,Integer pageSize);
+    HttpRespMsg projectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId, String groupNames, Integer pageIndex,Integer pageSize);
 
-    HttpRespMsg exportProjectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId);
+    HttpRespMsg exportProjectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId, String groupNames);
 
     HttpRespMsg getSubProjectTimeCost(HttpServletRequest request, String startDate, String endDate, Integer projectId,Integer pageIndex,Integer pageSize);
 

+ 17 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -10048,7 +10048,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg projectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId,Integer pageIndex,Integer pageSize) {
+    public HttpRespMsg projectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId,String groupNames, Integer pageIndex,Integer pageSize) {
         HttpRespMsg msg = new HttpRespMsg();
         Integer start = (pageIndex-1)*pageSize;
         Integer size = pageSize*pageIndex;
@@ -10070,8 +10070,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 inchagerIds.add(-1);
             }
         }
-        List<Map<String,Object>> projectGroupAndCategoryList=projectMapper.getProjectGroupAndCategoryList(startDate,endDate,projectId,user.getCompanyId(),start,size,inchagerIds);
-        long total=projectMapper.getProjectGroupAndCategoryCount(startDate,endDate,projectId,user.getCompanyId(),null,null,inchagerIds);
+        List<String> gpNamesList = null;
+        if (!StringUtils.isEmpty(groupNames)) {
+            gpNamesList = Arrays.stream(groupNames.split(",")).collect(Collectors.toList());
+        }
+        List<Map<String,Object>> projectGroupAndCategoryList = projectMapper.getProjectGroupAndCategoryList(startDate,endDate,projectId,user.getCompanyId(),start,size,inchagerIds, gpNamesList);
+        long total=projectMapper.getProjectGroupAndCategoryCount(startDate,endDate,projectId,user.getCompanyId(),null,null,inchagerIds, gpNamesList);
         List<Integer> projectIds = projectGroupAndCategoryList.stream().map(pl ->Integer.valueOf(String.valueOf(pl.get("projectId")))).distinct().collect(Collectors.toList());
         if(projectIds.size()==0){
             projectIds.add(-1);
@@ -10081,7 +10085,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<String> stagesNameList = stagesList.stream().map(sl -> sl.getStagesName()).distinct().collect(Collectors.toList());
         stagesNameList.add("非阶段");
         titleList.addAll(stagesNameList);
-        List<Map<String,Object>> projectGroupAndCategoryData=projectMapper.getProjectGroupAndCategoryData(startDate,endDate,projectId,user.getCompanyId(),start,size,projectIds);
+        List<Map<String,Object>> projectGroupAndCategoryData=projectMapper.getProjectGroupAndCategoryData(startDate,endDate,projectId,user.getCompanyId(),start,size,projectIds, gpNamesList);
         for (Map<String, Object> item : projectGroupAndCategoryList) {
             List<Map<String, Object>> list = projectGroupAndCategoryData.stream().filter(pl -> pl.get("groupId").equals(item.get("groupId")) && pl.get("projectId").equals(item.get("projectId"))).collect(Collectors.toList());
             item.put("categoryList",list);
@@ -10095,12 +10099,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     }
 
     @Override
-    public HttpRespMsg exportProjectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId) {
+    public HttpRespMsg exportProjectGroupAndCategoryWorkTime(HttpServletRequest request, String startDate, String endDate, Integer projectId, String groupNames) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
-        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部任务阶段工时");
-        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目任务阶段工时");
+        List<SysRichFunction> functionAllList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "全部分组阶段工时");
+        List<SysRichFunction> functionInchargeList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "负责项目分组阶段工时");
+        List<String> gpNamesList = null;
+        if (!StringUtils.isEmpty(groupNames)) {
+            gpNamesList = Arrays.stream(groupNames.split(",")).collect(Collectors.toList());
+        }
         //判断查看权限
         List<Integer> inchagerIds=null;
         if(functionAllList.size()==0){
@@ -10115,7 +10123,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 inchagerIds.add(-1);
             }
         }
-        List<Map<String,Object>> projectGroupAndCategoryList=projectMapper.getProjectGroupAndCategoryList(startDate,endDate,projectId,user.getCompanyId(),null,null,inchagerIds);
+        List<Map<String,Object>> projectGroupAndCategoryList=projectMapper.getProjectGroupAndCategoryList(startDate,endDate,projectId,user.getCompanyId(),null,null,inchagerIds, gpNamesList);
         List<Integer> projectIds = projectGroupAndCategoryList.stream().map(pl ->Integer.valueOf(String.valueOf(pl.get("projectId")))).distinct().collect(Collectors.toList());
         if(projectIds.size()==0){
             projectIds.add(-1);
@@ -10131,7 +10139,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         titleList.addAll(stagesNameList);
         List<List<String>> dataList=new ArrayList<>();
         dataList.add(titleList);
-        List<Map<String,Object>> projectGroupAndCategoryData=projectMapper.getProjectGroupAndCategoryData(startDate,endDate,projectId,user.getCompanyId(),null,null,projectIds);
+        List<Map<String,Object>> projectGroupAndCategoryData=projectMapper.getProjectGroupAndCategoryData(startDate,endDate,projectId,user.getCompanyId(),null,null,projectIds, gpNamesList);
         for (Map<String, Object> item : projectGroupAndCategoryList) {
             List<String> stringList=new ArrayList<>();
             List<Map<String, Object>> list = projectGroupAndCategoryData.stream().filter(pl -> pl.get("groupId").equals(item.get("groupId")) && pl.get("projectId").equals(item.get("projectId"))).collect(Collectors.toList());

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -853,6 +853,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             List users = result.get("user");
             if (users.size()!=0&&matchingType==0){
                 List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
+
                 long total = realUser.size();
                 data.put("records",realUser);
                 data.put("nextCursor",result.get("nextCursor").get(0));

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -1330,6 +1330,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="gpNamesList !=null">
+            and b.name in
+            <foreach collection="gpNamesList" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
         group by c.id,b.id
         <if test="start!=null and size!=null">
             limit #{start},#{size}
@@ -1356,6 +1362,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="gpNamesList !=null">
+            and b.name in
+            <foreach collection="gpNamesList" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
         group by c.id,b.id
         <if test="start!=null and size!=null">
             limit #{start},#{size}
@@ -1381,6 +1393,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="gpNamesList !=null">
+            and b.name in
+            <foreach collection="gpNamesList" open="(" separator="," close=")" item="item">
+                #{item}
+            </foreach>
+        </if>
         group by c.id,f.id
         <if test="start!=null and size!=null">
             limit #{start},#{size}

+ 4 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/UserMapper.xml

@@ -61,9 +61,10 @@
         SELECT a.id, a.role_id as roleId, a.role_name as roleName, a.name, a.phone, a.portrait_url AS portraitUrl, a.role, a.company_id AS companyId, a.cost,
         a.department_id AS departmentId, b.department_name AS departmentName, a.department_cascade AS departmentCascade,
         a.month_cost as monthCost, a.salary_type as salaryType, a.is_active as isActive,date_format(a.`inactive_date`, '%Y-%m-%d') AS inactiveDate, a.cost_apply_date as costApplyDate,a.plate1,a.plate2,a.plate3,a.plate4,a.plate5,
-        a.job_number as jobNumber, DATE_FORMAT(a.create_time, '%Y-%m-%d %H:%m')  as createTime
+        a.job_number as jobNumber, DATE_FORMAT(a.create_time, '%Y-%m-%d %H:%m')  as createTime, c.name as superiorName, c.corpwx_userid as superiorCorpwxUserid
         FROM user AS a
         LEFT JOIN department AS b ON a.department_id = b.department_id
+        left join user c on c.id = a.superior_id and c.company_id = #{companyId}
         WHERE a.company_id = #{companyId}
         <if test="departmentId != null and companyId != ''">
             AND a.department_id = #{departmentId}
@@ -95,9 +96,10 @@
         SELECT a.id,  a.role_id as roleId, a.role_name as roleName,  a.name, a.phone, a.portrait_url AS portraitUrl, a.role, a.company_id AS companyId, a.cost,
         a.department_id AS departmentId, b.department_name AS departmentName, a.department_cascade AS departmentCascade,
         a.month_cost as monthCost, a.salary_type as salaryType, a.is_active as isActive,date_format(a.`inactive_date`, '%Y-%m-%d') AS inactiveDate, a.cost_apply_date as costApplyDate,a.plate1,a.plate2,a.plate3,a.plate4,a.plate5,
-        a.job_number as jobNumber, DATE_FORMAT(a.create_time, '%Y-%m-%d %H:%m')  as createTime
+        a.job_number as jobNumber, DATE_FORMAT(a.create_time, '%Y-%m-%d %H:%m')  as createTime, c.name as superiorName, c.corpwx_userid as superiorCorpwxUserid
         FROM user AS a
         LEFT JOIN department AS b ON a.department_id = b.department_id
+        left join user c on c.id = a.superior_id and c.company_id = #{companyId}
         WHERE a.company_id = #{companyId} AND a.department_id IN
         <foreach collection="departmentIds" item="departmentId" index="index" open="(" close=")" separator=",">
             #{departmentId}

+ 0 - 5
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProdMaterialController.java

@@ -73,11 +73,6 @@ public class ProdMaterialController {
     }
 
 
-    /**
-     * 是否可删除物料
-     * 查看该工序有没有被使用(计划中)
-     * TODO
-     */
     @RequestMapping("/isDelete")
     public HttpRespMsg isDeleteProdMaterial (Integer id){
         return prodMaterialService.isDelete(request,id);

+ 7 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ProductController.java

@@ -1,8 +1,11 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.management.platform.entity.Plan;
 import com.management.platform.entity.Product;
 import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.PlanService;
 import com.management.platform.service.ProductService;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,6 +34,8 @@ public class ProductController {
     UserMapper userMapper;
     @Resource
     ProductService productService;
+    @Resource
+    PlanService planService;
 
     @RequestMapping("/getProductPage")
     public HttpRespMsg getProductPage(Integer cateId, @RequestParam Integer pageIndex, @RequestParam Integer pageSize, String name, String code) {
@@ -51,10 +56,8 @@ public class ProductController {
 
     @RequestMapping("/delete")
     public HttpRespMsg delete(Integer id) {
-        HttpRespMsg msg = new HttpRespMsg();
-        //TODO : 需检测是否被使用
-        productService.removeById(id);
-        return msg;
+
+        return productService.delete(id);
     }
 
     /**

+ 2 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProductService.java

@@ -21,4 +21,6 @@ public interface ProductService extends IService<Product> {
     HttpRespMsg saveProductInfo(Product product, HttpServletRequest request);
 
     HttpRespMsg getProductInfo(HttpServletRequest request, Integer id);
+
+    HttpRespMsg delete(Integer id);
 }

+ 1 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProdMaterialServiceImpl.java

@@ -65,8 +65,7 @@ public class ProdMaterialServiceImpl extends ServiceImpl<ProdMaterialMapper, Pro
     @Override
     public HttpRespMsg isDelete(HttpServletRequest request, Integer id) {
         HttpRespMsg msg = new HttpRespMsg();
-        //TODO: 检查工序是否已经被使用,被使用的不能删除
-
+        //TODO: 检查物料是否已经被使用,被使用的不能删除
         boolean flag=true;
         msg.setData(flag);
         return msg;

+ 28 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -5,16 +5,14 @@ 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.management.platform.entity.*;
-import com.management.platform.mapper.ProdMaterialMapper;
-import com.management.platform.mapper.ProdProcedureMapper;
-import com.management.platform.mapper.ProductMapper;
-import com.management.platform.mapper.UserMapper;
+import com.management.platform.mapper.*;
 import com.management.platform.service.ProdMaterialService;
 import com.management.platform.service.ProdProcedureService;
 import com.management.platform.service.ProductService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
@@ -32,6 +30,7 @@ import java.util.Map;
  * @since 2023-07-02
  */
 @Service
+@Transactional
 public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
     @Resource
     ProductMapper productMapper;
@@ -45,6 +44,9 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
     ProdMaterialMapper prodMaterialMapper;
     @Resource
     ProdMaterialService prodMaterialService;
+    @Resource
+    PlanMapper planMapper;
+
 
     @Override
     public HttpRespMsg getProductPage(Integer cateId, Integer pageIndex, Integer pageSize, String name, String code, HttpServletRequest request) {
@@ -117,4 +119,26 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         map.put("")*/
         return null;
     }
+
+    @Override
+    public HttpRespMsg delete(Integer id) {
+        HttpRespMsg msg = new HttpRespMsg();
+        //TODO : 需检测是否被使用
+        int count = planMapper.selectCount(
+                new LambdaQueryWrapper<Plan>()
+                        .eq(id != null, Plan::getProductId, id)
+        );
+        System.out.println(count);
+        if(count==0){
+
+            prodProcedureMapper.delete(new LambdaQueryWrapper<ProdProcedure>().eq(id!=null,ProdProcedure::getProductId,id));
+            prodMaterialMapper.delete(new LambdaQueryWrapper<ProdMaterial>().eq(id!=null,ProdMaterial::getProductId,id));
+            productMapper.deleteById(id);
+
+        }else{
+            msg.setError("this product is used!");
+        }
+
+        return msg;
+    }
 }

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/product/list.vue

@@ -346,7 +346,8 @@
                 </div>
                 
             <div slot="footer" class="dialog-footer;">
-                <!-- <el-button @click.native="deletePro(1, addForm)" v-if="addForm.id" style="float:left">{{ $t('btn.delete') }}</el-button> -->
+                
+                <el-button @click.native="deletePro(1, addForm)" v-if="addForm.id" style="float:left">{{ $t('btn.delete') }}</el-button>
                 <el-button @click.native="prodEditActive = 0;addFormVisible = false ">{{ $t('btn.cancel') }}</el-button>
                 <el-button v-if="prodEditActive == 0" type="primary" @click="submitInsert(0)" :loading="addLoading">保存</el-button>
                 <el-button v-if="prodEditActive == 0" type="primary" @click="submitInsert(1)" :loading="addLoading">保存并编辑工序</el-button>

+ 49 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/corpreport/list.vue

@@ -81,7 +81,7 @@
               <el-date-picker v-model="rangeDatas" type="daterange" value-format="yyyy-MM-dd" :placeholder="$t('selectstartdate')" @change="picks()" :range-separator="$t('other.to')" :start-placeholder="$t('time.startDate')" :end-placeholder="$t('time.endDate')" style="width:300px" :clearable="ins == 15" size="small"> </el-date-picker>
             </span>
           </template>
-
+          
         <!-- 按部门/项目筛选 -->
         <!-- <el-select v-if="ins == 10" v-model="departmentOrProject" placeholder="请选择" size="small" @change="selcts(10)" style="margin-left:10px;width:120px">
           <el-option label="查看项目审核人" :value="1"></el-option>
@@ -97,6 +97,10 @@
         <el-select v-if="ins==12 && user.companyId==936" v-model="projectCategorySubId" :placeholder="'请选择自主项目类别'" clearable filterable size="small" @change="selcts()" style="margin-left:10px">
           <el-option v-for="(item) in projectCategorySubList" :key="item.value" :label="item.label" :value="item.value"></el-option>
         </el-select>
+        <!--项目分组与阶段工时表,需要可选分组-->
+        <el-select v-if="ins == 16" multiple v-model="groupNames" @change="onGroupSelectChange" clearable size="small" filterable collapse-tags placeholder="请选择任务分组" style="margin-left:10px;">
+          <el-option v-for="item in taskgroupList" :key="item.name" :label="item.name" :value="item.name"></el-option>
+        </el-select>
         <!-- 月份选择 -->
         <el-date-picker v-if="ins == 14 || ins == 15 || ins == 19" value-format="yyyy-MM" v-model="monthPersonnel" type="month" :placeholder="$t('Selectmonth')" :clearable="false" @change="selcts()" size="small"></el-date-picker>
           
@@ -1120,6 +1124,8 @@ export default {
   props: {},
   data() {
     return {
+      groupNames: [],
+      taskgroupList: [],
       customNameChoose: '',
       areaName: '',
       customName: '',
@@ -1621,6 +1627,7 @@ export default {
                 } else if(this.ins == 15) {
                   this.getDepartmentsInvolved()
                 } else if(this.ins == 16) {
+                  this.getTaskgroupList();
                   this.groupingItems()
                 } else if(this.ins == 17) {
                   this.getAubprojectArr()
@@ -1746,6 +1753,15 @@ export default {
         } else if(this.ins == 16) {
           fName = this.$t('ge-fen-zu-jie-duan-gong-shi-biao') + '.xlsx'
           url += "/exportProjectGroupAndCategoryWorkTime"
+          if(this.groupNames.length){
+            let groupStr = ''
+            for(let i in this.groupNames){
+              groupStr += this.groupNames[i] + ','
+            }
+            groupStr = groupStr.substring(0,groupStr.length - 1)
+            sl.groupNames = groupStr
+          }
+
           sl.startDate = this.rangeDatas[0]
           sl.endDate = this.rangeDatas[1]
           sl.projectId = this.proJuctId
@@ -2117,13 +2133,22 @@ export default {
     },
     // 项目各分组与阶段工时表
     groupingItems() {
-      this.listLoading = true
+      this.listLoading = true;
+      var groupStr = null;
+      if(this.groupNames.length){
+        groupStr = '';
+          for(let i in this.groupNames){
+            groupStr += this.groupNames[i] + ','
+          }
+          groupStr = groupStr.substring(0,groupStr.length - 1)
+        }
       this.http.post('/project/projectGroupAndCategoryWorkTime', {
          startDate: this.rangeDatas[0],
          endDate: this.rangeDatas[1],
          projectId: this.proJuctId,
          pageIndex: this.page,
          pageSize: this.size,
+         groupNames: groupStr
       },
         res => {
             this.listLoading = false
@@ -2308,6 +2333,9 @@ export default {
         this.getProjectStages(true)
       }
     },
+    onGroupSelectChange(e) {
+      this.groupingItems();
+    },
     timelyDetail(rowList){ // 员工填报及时率详情
       // this.timelyDetailList = rowList
       let list = []
@@ -2320,6 +2348,25 @@ export default {
       this.timelyDetailList = list
       this.timelyDetailDialog = true
     },
+    // 获取任务分组筛选列表
+    getTaskgroupList(){
+      this.http.post('/task-group/getGroupNames',{},
+      res => {
+        if(res.code == 'ok'){
+          this.taskgroupList = res.data
+        }else {
+          this.$message({
+            message: res.msg,
+            type: 'error'
+          })
+        }
+      },err => {
+        this.$message({
+          message: err,
+          type: 'error'
+        })
+      })
+    },
     //获取项目阶段的汇总工时
     getProjectStages(e) {
       

+ 10 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -217,6 +217,16 @@
                     </div>
                   </template>
                 </el-table-column>
+                <el-table-column prop="superiorName" label="直属审核人" width="120" v-if="user.timeType.reportAuditType == 5 || user.timeType.reportAuditType == 6">
+                  <template slot-scope="scope">
+                    <div>
+                      <div v-if="user.userNameNeedTranslate == 1">
+                        <ww-open-data type='userName' :openid='scope.row.superiorCorpwxUserid'></ww-open-data>
+                      </div>
+                      <div v-else>{{scope.row.superiorName}}</div>
+                    </div>
+                  </template>
+                </el-table-column>
                 <el-table-column :label="$t('jiao-se')" width="100">
                     <template slot-scope="scope">{{scope.row.roleName}}</template>
                 </el-table-column>