Преглед изворни кода

修改部门经理的日报列表部门查看,项目经理可以修改项目参与人

seyason пре 4 година
родитељ
комит
0ba913c36d

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -209,12 +209,12 @@ public class ReportController {
     }
 
     @RequestMapping("/getMembList")
-    public HttpRespMsg getMembList(@RequestParam(required=false) String date,  HttpServletRequest request) {
+    public HttpRespMsg getMembList(@RequestParam(required=false) String date, Integer manageDeptId, HttpServletRequest request) {
         if (date == null) {
             //默认获取今天的
             date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
         }
-        return reportService.getMembList(date, request);
+        return reportService.getMembList(date, manageDeptId, request);
     }
 
     @RequestMapping("/batchApproveReport")

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ReportService.java

@@ -37,7 +37,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg singleDenyReport(Integer id, HttpServletRequest request);
 
-    HttpRespMsg getMembList(String date, HttpServletRequest request);
+    HttpRespMsg getMembList(String date, Integer manageDeptId, HttpServletRequest request);
 
     HttpRespMsg batchApproveReport(String ids, HttpServletRequest request);
 

+ 11 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -77,9 +77,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             //通过公司id获取该公司所有的项目列表
-            Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
+            User user = userMapper.selectById(request.getHeader("Token"));
+            Integer companyId = user.getCompanyId();
+            //判断用户的角色,如果是管理员和负责人,查看全部的。如果是普通员工,只能是项目经理看到自己管理的
+            QueryWrapper<Project> queryWrapper = null;
+            if (user.getRole() == 0) {
+                //普通员工
+                queryWrapper = new QueryWrapper<Project>().eq("incharger_id", user.getId());
+            } else {
+                queryWrapper = new QueryWrapper<Project>().eq("company_id", companyId);
+            }
             IPage<Project> projectIPage = projectMapper.selectPage(new Page<>(pageIndex, pageSize),
-                    new QueryWrapper<Project>().eq("company_id", companyId));
+                    queryWrapper);
             List<Project> projectList = projectIPage.getRecords();
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
             List<ProjectVO> list = new ArrayList<>();

+ 30 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -514,14 +514,42 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         return httpRespMsg;
     }
 
+    private List<DepartmentVO> getSpecifiedDept(List<DepartmentVO> list, Integer id) {
+        DepartmentVO item = null;
+        List<DepartmentVO> retList = new ArrayList<>();
+        for (DepartmentVO vo: list) {
+            if (vo.getId().equals(id)) {
+                item = vo;
+                break;
+            }
+        }
+        if (item != null) {
+            retList.add(item);
+        } else {
+            for (DepartmentVO vo: list) {
+                if (vo.getChildren() != null) {
+                    List<DepartmentVO> specifiedDept = getSpecifiedDept(vo.getChildren(), id);
+                    if (specifiedDept.size() > 0) {
+                        return specifiedDept;
+                    }
+                }
+            }
+        }
+        return retList;
+    }
+
     @Override
-    public HttpRespMsg getMembList(String date, HttpServletRequest request) {
+    public HttpRespMsg getMembList(String date, Integer manageDeptId, HttpServletRequest request) {
         Integer companyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
         //获取当日已填写的人员报告
         List<Map<String, Object>> reportNameByDate = reportMapper.getReportNameByDate(date, companyId, null);
 
         HttpRespMsg departmentList = departmentService.getDepartmentList(request);
         List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
+        if (manageDeptId != null && manageDeptId > 0) {
+            //指定查看某个部门下的
+            list = getSpecifiedDept(list, manageDeptId);
+        }
         //获取公司全部人员
         List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
         List<HashMap> userMapList = new ArrayList<>();
@@ -538,6 +566,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             userMapList.add(user);
         }
         fillDeptUser(list, userMapList);
+
         HttpRespMsg msg = new HttpRespMsg();
         msg.data = list;
         return msg;

+ 15 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application-prod.yml

@@ -89,3 +89,18 @@ picrecongnize:
 
 
 
+
+##actuator健康检查配置
+management:
+  security:
+    enabled:false:
+  server:
+    port: 10011
+  #  endpoints:
+  #    web:
+  #      exposure:
+  #        include: "*"
+
+  health:
+    redis:
+      enabled: false

+ 15 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -90,4 +90,19 @@ picrecongnize:
   im: C:/picrecongnize/im/
   design: C:/picrecongnize/design/
 
+##actuator健康检查配置
+management:
+  security:
+    enabled:false:
+  server:
+    port: 10011
+#  endpoints:
+#    web:
+#      exposure:
+#        include: "*"
+
+  health:
+    redis:
+      enabled: false
+
 

+ 11 - 0
fhKeeper/formulahousekeeper/timesheet/src/routes.js

@@ -234,6 +234,17 @@ export const leaderRouter = [
             { path: '/review', component: review, name: '报告审核' },
         ]
     },
+    //项目管理
+    {
+        path: '/',
+        component: Home,
+        name: '项目管理',
+        iconCls: 'iconfont firerock-iconxiangmu',
+        leaf: true,
+        children: [
+            { path: '/list', component: list, name: '项目管理' },
+        ]
+    },
     {
         path: '/404',
         component: NotFound,

+ 18 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -15,6 +15,23 @@
                 </div>
             </el-col>
             <el-col :span="10" class="userinfo">
+                <el-dropdown trigger="hover" style="margin-right:30px;">
+                    <span class="el-dropdown-link userinfo-inner">
+                        <i class="el-icon-user" style="font-size:18px" ></i>
+                        咨询客服
+                    </span>
+                    <el-dropdown-menu slot="dropdown">
+                        <el-dropdown-item >
+                            <div>
+                            <div>微信扫码</div>
+                            <img
+                            style="width: 120px; height: 120px"
+                            src="../assets/image/code.jpg" />
+                            </div>
+                        </el-dropdown-item>
+                    </el-dropdown-menu>
+                </el-dropdown> 
+                    
                 到期日期:{{remainingTime}}
                 <el-badge class="itemNew" :value="num" :hidden="num == 0">
                     <i class="el-icon-message-solid" style="font-size:24px" v-popover:popover1 @click="drawer = true"></i>
@@ -144,6 +161,7 @@
     export default {
         data() {
             return {
+                helpImg: '../assets/image/userHead.png',
                 user: sessionStorage.getItem("user"),
 
                 sysName: "工时管家",

+ 5 - 5
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -33,9 +33,9 @@
             </el-table-column>
             <el-table-column label="操作" width="290">
                 <template slot-scope="scope">
-                    <el-button size="small" type="primary" @click="subProject(scope.row)">子项目</el-button>
+                    <el-button v-if="user.role>0" size="small" type="primary" @click="subProject(scope.row)">子项目</el-button>
                     <el-button size="small" type="primary" @click="handleAdd(scope.$index, scope.row)">编辑</el-button>
-                    <el-button size="small" type="danger" @click="deletePro(scope.$index, scope.row)">删除</el-button>
+                    <el-button v-if="user.role>0" size="small" type="danger" @click="deletePro(scope.$index, scope.row)">删除</el-button>
                 </template>
             </el-table-column>
         </el-table>
@@ -57,10 +57,10 @@
         <el-dialog :title="title" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
             <el-form ref="form1" :model="addForm" :rules="rules" label-width="100px">
                 <el-form-item label="项目编号" >
-                    <el-input v-model="addForm.code" placeholder="请输入项目编号" clearable></el-input>
+                    <el-input v-model="addForm.code" :disabled="user.role==0" placeholder="请输入项目编号" clearable></el-input>
                 </el-form-item>
                 <el-form-item label="项目名称" prop="name">
-                    <el-input v-model="addForm.name" placeholder="请输入项目名称" clearable></el-input>
+                    <el-input v-model="addForm.name" :disabled="user.role==0" placeholder="请输入项目名称" clearable></el-input>
                 </el-form-item>
                 <el-form-item label="全部参与者">
                     <el-select v-model="addForm.userId" multiple filterable placeholder="请选择参与者" style="width:100%;" @change="changeParticipator">
@@ -68,7 +68,7 @@
                     </el-select>
                 </el-form-item>
                 <el-form-item label="主要负责人" >
-                    <el-select v-model="addForm.inchargerId" :disabled="addForm.userId.length==0" filterable placeholder="请选择负责人" style="width:100%;" @change="changeIncharger">
+                    <el-select v-model="addForm.inchargerId" :disabled="addForm.userId.length==0 ||  user.role==0" filterable placeholder="请选择负责人" style="width:100%;" @change="changeIncharger">
                         <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
                 </el-form-item>

+ 18 - 11
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -21,7 +21,7 @@
                     </span>
                 </div>
                 <div style="display:flex;">
-                <div v-if="user.role > 0">
+                <div v-if="user.role > 0 || user.manageDeptId != 0">
                     <div>
                         <el-select v-model="selectState" size="small" @change="stateChange">
                         <el-option value="-1" label="全部状态" >全部状态</el-option>
@@ -61,7 +61,7 @@
                 <div :style="'height:'+tableHeight+'px;width:0.5px;background:#eee;margin-right:10px;margin-left:10px;'" ></div>
                 <div class="allDaily" style="float:left;flex-grow:1">
                     <!--系统管理员 -->
-                    <div class="report_title" v-if="user.role > 0">
+                    <div class="report_title" v-if="user.role > 0 || user.manageDeptId > 0">
                         <span>工作日报 | {{depData.label}}</span> - 已填写<span style="margin-left:5px;margin-right:5px;color:green;">{{reportList.length}}</span>人,
                     未填写<span style="margin-left:5px;margin-right:5px;color:red;">{{(depData == null?data[0].membCount:(depData.isUser == 1?1:depData.membCount))-reportList.length}}</span>人
                         <span style="float:right;">
@@ -550,18 +550,25 @@
             // 获取部门列表
             getDepartment() {
                 let day = this.choseDay > 9 ? "-" + (this.choseDay + 1) : "-0" + (this.choseDay + 1);
-                this.http.post("/report/getMembList", {date:this.date + day},
+                var param = {date:this.date + day};
+                if (this.user.manageDeptId != 0) {
+                    param.manageDeptId = this.user.manageDeptId;
+                }
+                this.http.post("/report/getMembList", param,
                 res => {
                     if (res.code == "ok") {
                         var list = res.data , list1 = JSON.parse(JSON.stringify(res.data));
-                        list.splice(0,0,{
-                            id: -1,
-                            label: '全部人员',
-                        })
-                        list.push({
-                            id: 0,
-                            label: '未分配',
-                        })
+                        if (this.user.role > 0) {
+                            list.splice(0,0,{
+                                id: -1,
+                                label: '全部人员',
+                            })
+                            list.push({
+                                id: 0,
+                                label: '未分配',
+                            })
+                        }
+                       
                         this.membCount = 0;
                         //设置员工到部门下面
                         this.setUserToDept(list);