Procházet zdrojové kódy

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

ggooalice před 2 roky
rodič
revize
2c9236ace6

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

@@ -4,6 +4,7 @@ package com.management.platform.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.OperationRecordService;
 import com.management.platform.service.ProjectService;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.poi.hssf.usermodel.*;
@@ -22,6 +23,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -58,6 +60,10 @@ public class ProjectController {
     private ProjectKeyNodesMapper projectKeyNodesMapper;
     @Resource
     private ProjectKeyNodesSettingMapper projectKeyNodesSettingMapper;
+    @Resource
+    private UserMapper userMapper;
+    @Resource
+    private OperationRecordService operationRecordService;
 
     /**
      * 获取我参与的全部项目的负责人列表
@@ -306,6 +312,16 @@ public class ProjectController {
         project.setStatus(2);
         project.setFinishDate(LocalDate.now());
         projectService.updateById(project);
+        Project project1 = projectService.getById(id);
+        User user = userMapper.selectById(request.getHeader("token"));
+        OperationRecord operationRecord=new OperationRecord();
+        operationRecord.setProjectName(project1.getProjectName());
+        operationRecord.setOperationTime(LocalDateTime.now());
+        operationRecord.setModuleName("项目管理");
+        operationRecord.setContent("完成了项目");
+        operationRecord.setOperatorName(user.getName());
+        operationRecord.setCompanyId(user.getCompanyId());
+        operationRecordService.save(operationRecord);
         return new HttpRespMsg();
     }
 
@@ -320,6 +336,16 @@ public class ProjectController {
             project.setId(id);
             project.setStatus(3);
             projectService.updateById(project);
+            Project project1 = projectService.getById(id);
+            User user = userMapper.selectById(request.getHeader("token"));
+            OperationRecord operationRecord=new OperationRecord();
+            operationRecord.setProjectName(project1.getProjectName());
+            operationRecord.setOperationTime(LocalDateTime.now());
+            operationRecord.setContent("撤销了项目");
+            operationRecord.setModuleName("项目管理");
+            operationRecord.setOperatorName(user.getName());
+            operationRecord.setCompanyId(user.getCompanyId());
+            operationRecordService.save(operationRecord);
         }
 
         return msg;

+ 22 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -62,6 +62,8 @@ import java.util.stream.Collectors;
 public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> implements ProjectService {
     String pathPrefix = "/upload/";
     @Resource
+    private HttpServletRequest request;
+    @Resource
     private ProjectNotifyUserService projectNotifyUserService;
     @Resource
     private GroupParticipatorMapper groupParticipatorMapper;
@@ -1438,7 +1440,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     @Override
     public HttpRespMsg restartProject(Integer id) {
+        User user = userMapper.selectById(request.getHeader("token"));
         projectMapper.restartProject(id);
+        Project project = getById(id);
+        OperationRecord operationRecord=new OperationRecord();
+        operationRecord.setProjectName(project.getProjectName());
+        operationRecord.setOperationTime(LocalDateTime.now());
+        operationRecord.setContent("重启了项目");
+        operationRecord.setModuleName("项目管理");
+        operationRecord.setOperatorName(user.getName());
+        operationRecord.setCompanyId(user.getCompanyId());
+        operationRecordService.save(operationRecord);
         return new HttpRespMsg();
     }
 
@@ -5330,7 +5342,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
 
     @Override
     public HttpRespMsg suspendProject(Integer id) {
+        User user = userMapper.selectById(request.getHeader("token"));
         projectMapper.suspendProject(id);
+        Project project = getById(id);
+        OperationRecord operationRecord=new OperationRecord();
+        operationRecord.setProjectName(project.getProjectName());
+        operationRecord.setOperationTime(LocalDateTime.now());
+        operationRecord.setContent("暂停了项目");
+        operationRecord.setModuleName("项目管理");
+        operationRecord.setOperatorName(user.getName());
+        operationRecord.setCompanyId(user.getCompanyId());
+        operationRecordService.save(operationRecord);
         return new HttpRespMsg();
     }
 

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -253,6 +253,7 @@ public class TimingTask {
                 report.setState(1);
                 //项目审核的状态修改成已审核
                 report.setProjectAuditState(1);
+                report.setProjectAuditTime(LocalDateTime.now());
                 report.setReportAutoApprove(1);
                 reportMapper.updateById(report);
             }

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

@@ -824,14 +824,14 @@
                 select us.name as userName,dp2.department_name as departmentName,COUNT(rp.state=0 or null) as num
                 from department dp
                 left join user us on dp.manager_id=us.id
-                left join report rp on rp.audit_deptid=us.manage_dept_id and rp.create_date between #{startDate} and #{endDate} and rp.audit_deptid !=0 and rp.is_dept_audit=1
+                left join report rp on rp.dept_id=dp.department_id and rp.create_date between #{startDate} and #{endDate} and rp.audit_deptid !=0 and rp.is_dept_audit=1
                 left join department dp2 on dp2.department_id=dp.department_id
             </when>
             <otherwise>
-                select us.name as userName,dp.department_name as departmentName,COUNT(rp.state=0 or null) as num
+                select us.name as userName,dp.department_name as departmentName,COUNT((rp.project_audit_state=0 and rp.state!=2 and rp.state!=3) or null) as num
                 from project_auditor pa
                 left join user us on pa.auditor_id=us.id
-                left join report rp on rp.project_auditor_id=us.id and pa.project_id=rp.project_id and rp.create_date between #{startDate} and #{endDate} and rp.is_dept_audit=0
+                left join report rp on rp.project_auditor_id=pa.auditor_id and pa.project_id=rp.project_id and rp.create_date between #{startDate} and #{endDate} and rp.is_dept_audit=0
                 left join department dp on dp.department_id=us.department_id
             </otherwise>
         </choose>
@@ -856,14 +856,14 @@
             select us.name as userName,dp2.department_name as departmentName,COUNT(rp.state=0 or null) as num
             from department dp
             left join user us on dp.manager_id=us.id
-            left join report rp on rp.audit_deptid=us.manage_dept_id and rp.create_date between #{startDate} and #{endDate} and rp.audit_deptid !=0
+            left join report rp on rp.audit_deptid=us.manage_dept_id and rp.create_date between #{startDate} and #{endDate} and rp.audit_deptid !=0 and rp.is_dept_audit=1
             left join department dp2 on dp2.department_id=dp.department_id
         </when>
         <otherwise>
-            select us.name as userName,dp.department_name as departmentName,COUNT(rp.state=0 or null) as num
+            select us.name as userName,dp.department_name as departmentName,COUNT(rp.project_audit_state=0 or null) as num
             from project_auditor pa
             left join user us on pa.auditor_id=us.id
-            left join report rp on rp.project_auditor_id=us.id and pa.project_id=rp.project_id and rp.create_date between #{startDate} and #{endDate}
+            left join report rp on rp.project_auditor_id=us.id and pa.project_id=rp.project_id and rp.create_date between #{startDate} and #{endDate} and rp.is_dept_audit=0
             left join department dp on dp.department_id=us.department_id
         </otherwise>
     </choose>

+ 1 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/OperationRecordController.java

@@ -54,6 +54,7 @@ public class OperationRecordController {
             queryWrapper.ge("operation_time",start);
             queryWrapper.le("operation_time",end);
         }
+        queryWrapper.orderByDesc("operation_time");
         IPage<OperationRecord> operationRecordIPage = operationRecordMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
         List<OperationRecord> list = operationRecordIPage.getRecords();
         for (OperationRecord operationRecord : list) {

+ 7 - 7
fhKeeper/formulahousekeeper/timesheet/src/views/project/cost.vue

@@ -3,13 +3,13 @@
         <el-row style="padding-bottom: 0px;text-align:center;margin-top:20px;z-index: 999;">
         <el-col :span="6" >
             <div ><span style="color:#999;">图表Y轴: </span>
-            <el-radio-group v-model="yAxisValue" @change="onYAxisChange">
+            <el-radio-group v-model="yAxisValue" @change="onYAxisChange" size="small">
             <el-radio-button label="0" v-if="permissions.countCost">显示成本</el-radio-button>
             <el-radio-button label="1" v-if="permissions.countHours">显示工时</el-radio-button>
             </el-radio-group></div>
         </el-col>
         <el-col :span="14" style="display: flex;flex-wrap: wrap;">
-            <el-date-picker v-show="user.timeType.fixMonthcost==0"
+            <el-date-picker v-show="user.timeType.fixMonthcost==0"  size="small"
             v-model="dateRange" :editable="false" 
             format="yyyy-MM-dd" value-format="yyyy-MM-dd" 
             @change="getEchart" 
@@ -21,14 +21,14 @@
             ></el-date-picker>
 
             <el-date-picker v-show="user.timeType.fixMonthcost==1"
-            v-model="dateRange" :editable="false" 
+            v-model="dateRange" :editable="false"  size="small"
             format="yyyy-MM" value-format="yyyy-MM" 
             @change="getEchart" 
             :clearable="false" 
             type="month" 
             ></el-date-picker>
 
-            <el-radio-group v-model="radio" @change="getEchart" style="margin-left:10px;">
+            <el-radio-group v-model="radio" @change="getEchart" style="margin-left:10px;"  size="small">
                 <el-radio-button label="项目"></el-radio-button>
                 <el-radio-button label="主项目" v-if="user.timeType.mainProjectState"></el-radio-button>
                 <el-radio-button label="项目分类"></el-radio-button>
@@ -42,13 +42,13 @@
                 <el-option v-for="item in customList" :key="item.id" :label="item.name" :value="item.name"></el-option>
             </el-select> -->
 
-            <el-select v-model="personnelValue" filterable clearable placeholder="请选择人员" style="margin-top: 10px;width: 350px" v-if="radio == '人员'" @change="personnel()">
+            <el-select v-model="personnelValue" filterable clearable placeholder="请选择人员"  size="small" style="margin-top: 10px;width: 350px" v-if="radio == '人员'" @change="personnel()">
                 <el-option v-for="item in hasReportUserList" :key="item.id" :label="item.name" :value="item.name"></el-option>
             </el-select>
         </el-col>
         <el-col :span="4">
-            <el-button @click="exportProjectData" v-if="theCustomListFlg">报表导出</el-button>
-            <el-button @click="showExportDialog" v-else>报表导出</el-button>
+            <el-button @click="exportProjectData" v-if="theCustomListFlg"  size="small">报表导出</el-button>
+            <el-button @click="showExportDialog" v-else  size="small">报表导出</el-button>
         </el-col>
         </el-row>
         <!-- <div id="clearfix" :style="'width:'+widthHtval+'px;position: relative; height:'+containerHeight+'px;'">

+ 4 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/project/custom_data.vue

@@ -5,7 +5,7 @@
             <div>&nbsp;</div>
         </el-col>
         <el-col :span="12" style="">
-            <el-date-picker 
+            <el-date-picker  size="small"
             v-model="dateRange" :editable="false" 
             format="yyyy-MM-dd" value-format="yyyy-MM-dd" 
             @change="getEchart" 
@@ -16,7 +16,7 @@
             end-placeholder="结束日期"
             ></el-date-picker>
 
-            <el-radio-group v-model="radio" @change="getEchart" style="margin-left:10px;">
+            <el-radio-group v-model="radio" @change="getEchart" style="margin-left:10px;"  size="small">
                 <el-radio-button label="项目" v-if="permissions.customDataAll"></el-radio-button>
                 <!-- <el-radio-button label="部门"></el-radio-button> -->
                 <el-radio-button label="人员"></el-radio-button>
@@ -25,14 +25,14 @@
             </el-radio-group>
         </el-col>
         <el-col :span="6">
-            <el-button @click="showExportDialog">报表导出</el-button>
+            <el-button @click="showExportDialog"  size="small">报表导出</el-button>
         </el-col>
         </el-row>
         <div :style="'width:'+widthHtval+'px;position: relative; height:'+containerHeight+'px;'">
              <div id="container" :style="'height:'+containerHeight+'px;width:100%'"></div>
         </div>
         <div style="position:fixed;top:170px;left:600px;" v-show="radio=='部门' && parentDeptId != null">
-            <el-button @click="backToParentDept">返回上级</el-button>
+            <el-button @click="backToParentDept"  size="small">返回上级</el-button>
         </div>
 
         <!--导出报表条件选择 -->

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/quanx/quanx.vue

@@ -8,7 +8,7 @@
               <el-form-item >
                   <div>
                   <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入关键字查询" clearable="true">
-                      <el-button slot="append" @click="mohu" @clear="mohus" icon="el-icon-search"></el-button>
+                      <el-button slot="append"  @click="mohu" @clear="mohus" icon="el-icon-search"></el-button>
                   </el-input>
                   </div>
               </el-form-item>

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

@@ -10,7 +10,7 @@
                 <el-form-item label="任务列表">
                     <div style="margin-left: 8px">
                     <!-- <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入项目名称关键字" clearable="true"> -->
-                        <el-select v-model="searchField" style="width:120px;"  slot="prepend" placeholder="请选择">
+                        <el-select v-model="searchField" style="width:120px;" size="small" slot="prepend" placeholder="请选择">
                             <el-option label="进行中" value="0" @click.native="hiddens()"></el-option>
                             <el-option label="已完成" value="1" @click.native="hiddens()"></el-option>
                         </el-select>
@@ -28,7 +28,7 @@
 
                 <el-form-item label="所属部门" v-if="user.timeType.projectWithDept">
                     <!-- <span style="margin-left:5px;margin-right:5px;color:#606266;">部门</span> -->
-                    <el-cascader v-model="deptId" :options="departmentList" placeholder="请选择部门"
+                    <el-cascader v-model="deptId" :options="departmentList" size="small" placeholder="请选择部门"
                         :props="{ checkStrictly: true, expandTrigger: 'hover' }" :show-all-levels="false" clearable filterable @change="hiddens"
                     ></el-cascader>
                 </el-form-item>
@@ -44,7 +44,7 @@
                 <el-form-item label="类型">
                     <div style="margin-left: 8px">
                     <!-- <el-input style="float:left;" v-model="keyword" class="input-with-select" placeholder="请输入项目名称关键字" clearable="true"> -->
-                        <el-select v-model="typeField" style="width:120px;"  slot="prepend" placeholder="请选择" clearable @change="hiddens()">
+                        <el-select v-model="typeField" style="width:120px;" size="small" slot="prepend" placeholder="请选择" clearable @change="hiddens()">
                             <!-- <el-option label="任务" value="0" @click.native="hiddens()"></el-option>
                             <el-option label="里程碑" value="1" @click.native="hiddens()"></el-option>
                             <el-option label="风险" value="2" @click.native="hiddens()"></el-option> -->
@@ -58,7 +58,7 @@
                 </el-form-item>
                 <el-form-item >
                     <div style="margin-left: 80px">
-                        <el-select v-model="dateType" style="width:120px;"  slot="prepend" placeholder="请选择">
+                        <el-select v-model="dateType" style="width:120px;" size="small" slot="prepend" placeholder="请选择">
                             <el-option label="开始时间" :value="0" @click.native="hiddens()"></el-option>
                             <el-option label="截止时间" :value="1" @click.native="hiddens()"></el-option>
                         </el-select>
@@ -69,6 +69,7 @@
                         <el-date-picker
                         v-model="dateSelect"
                         type="daterange"
+                        size="small"
                         range-separator="-"
                         start-placeholder="区间"
                         end-placeholder="区间"