Kaynağa Gözat

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

seyason 2 yıl önce
ebeveyn
işleme
7b96893c1d

+ 5 - 5
fhKeeper/formulahousekeeper/inva_4_tivo/project.html

@@ -244,7 +244,7 @@
                             <img src="./image/ions/xinchun.png" alt="" style="width: 50%;height: 50%">
                         </div>
                         <div class="userEvaluationRightConTex">
-                            <p>财务总监</p>
+                            <p>芯传汇</p>
                             <span>在项目管理的软件上,我们做过多种尝试<br/>
                                 在经历「自研产品」之后,我们选择了项目管家<br/>
                                 其核心功能:项目管理、项目预算、费用报销、项目工时管理、满足公司的实际需求。<br/>
@@ -256,7 +256,7 @@
                             <img src="./image/ions/haotian.png" alt="" style="width: 50%;height: 50%">
                         </div>
                         <div class="userEvaluationRightConTex">
-                            <p>闫经理</p>
+                            <p>深环科技</p>
                             <span>一个项目管理的好坏更多体现在项目经理的管理水平
                                 但是优秀的项目管理工具是提高项目经理管理效率的法宝
                                 项目帮助我们将时间和精力更多的放在任务本身
@@ -268,7 +268,7 @@
                             <img src="./image/ions/tanggu.png" alt="" style="width: 50%;height: 50%">
                         </div>
                         <div class="userEvaluationRightConTex">
-                            <p>总经理</p>
+                            <p>唐古信息科技</p>
                             <span>项目管理平台软件可以同时处理许多个项目的信息并妥善进行管理,这让企业项目的运营不至于忙中出错,简洁明了的操作界面让学习的门槛大为降低,同时内置的记录、提醒、数据可视化等功能也能帮助管理者更好地推动项目的运作,对于保障企业项目运行会有很大的帮助。</span>
                         </div>
                     </div>
@@ -277,7 +277,7 @@
                             <img src="./image/ions/chengdu.png" alt="" style="width: 50%;height: 50%">
                         </div>
                         <div class="userEvaluationRightConTex">
-                            <p>项目主管</p>
+                            <p>成都中为工程科技</p>
                             <span>项目管理软件最方便的地方就在于可以电脑和手机端,这样在同步起来是非常的方便的,保证了血统的办公,同时在支持项目相关文件的上传,也可以防止文件的丢失。</span>
                         </div>
                     </div>
@@ -286,7 +286,7 @@
                             <img src="./image/ions/jingyi.png" alt="" style="width: 50%;height: 50%">
                         </div>
                         <div class="userEvaluationRightConTex">
-                            <p>王经理</p>
+                            <p>晶易医药科技</p>
                             <span>项目管理软件可以展现强大的项目的管理的功能,其中团队的个人的任务的进展的具体的情况是可以同步的,可以不用一个一个的去工作的进度,还有目标的完成的具体的情况</span>
                         </div>
                     </div>

+ 8 - 6
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ReportLog.java

@@ -1,19 +1,19 @@
 package com.management.platform.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import java.time.LocalDate;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
 /**
  * <p>
  * 
@@ -42,6 +42,8 @@ public class ReportLog extends Model<ReportLog> {
      * 日报所属日期
      */
     @TableField("create_date")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate createDate;
 
     /**

+ 19 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -3936,15 +3936,26 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         if(thirdPartyInterfaceList.size()==0){
             msg.setError("token错误");
         }
-        for (ThirdPartyInterface thirdPartyInterface : thirdPartyInterfaceList){
-            if(LocalDateTime.now().isAfter(thirdPartyInterface.getExpireTime())){
-                msg.setError("token过期失效");
-                return msg;
-            }
-            if(token.equals(thirdPartyInterface.getToken())){
-                List<HashMap<String, Object>> allReportByDate = reportMapper.getAllReportByDate(startDate,thirdPartyInterface.getComapnyId(), null, endDate, null, null, null);
-                msg.data=allReportByDate;
+        ThirdPartyInterface thirdPartyInterface = thirdPartyInterfaceList.get(0);
+        List<ReportLog> reportLogList = reportLogMapper.selectList(new QueryWrapper<ReportLog>().eq("company_id", thirdPartyInterface.getComapnyId()).orderByAsc("operate_date"));
+        if(LocalDateTime.now().isAfter(thirdPartyInterface.getExpireTime())){
+            msg.setError("token过期失效");
+            return msg;
+        }
+        if(token.equals(thirdPartyInterface.getToken())){
+            List<HashMap<String, Object>> allReportByDate = reportMapper.getAllReportByDate(startDate,thirdPartyInterface.getComapnyId(), null, endDate, null, null, null);
+            for (HashMap<String, Object> map : allReportByDate) {
+                List<ReportLog> item=new ArrayList<>();
+                Integer reportId = (Integer) map.get("id");
+                for (ReportLog reportLog : reportLogList) {
+                    List<String> list = Arrays.asList(reportLog.getReportIds().split(","));
+                    if(list.contains(String.valueOf(reportId))&&!reportLog.getMsg().contains("提交")){
+                         item.add(reportLog);
+                    }
+                }
+                map.put("checkLog",item);
             }
+            msg.data=allReportByDate;
         }
         return msg;
     }

+ 5 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -56,12 +56,12 @@
 
     <!--根据日期获取全部报告信息-->
     <select id="getAllReportByDate" resultType="java.util.Map">
-        SELECT a.id, c.name,c.corpwx_userid as corpwxUserId, b.project_name AS project,b.category_name as categoryName, a.working_time AS duration, a.content, a.create_time AS time, a.create_date as createDate,
-        a.state, a.time_type as timeType, a.cost, a.report_time_type as reportTimeType, a.start_time as startTime,
-        a.end_time as endTime, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,
+        SELECT a.id, c.name,c.corpwx_userid as corpwxUserId, b.project_name AS project,b.category_name as categoryName, a.working_time AS duration, a.content, DATE_FORMAT(a.create_time,'%Y-%m-%d')   AS time,DATE_FORMAT(a.create_date,'%Y-%m-%d') as createDate,
+        a.state, a.time_type as timeType, a.cost, a.report_time_type as reportTimeType,DATE_FORMAT(a.start_time,'%Y-%m-%d')  as startTime,
+        DATE_FORMAT(a.end_time,'%Y-%m-%d')  as endTime, d.name as subProjectName,a.task_id as taskId, task.name as taskName, a.is_overtime as isOvertime,a.progress as progress,
         a.department_audit_state as departmentAuditState, a.stage, a.pic_str as picStr, multi_worktime as multiWorktime
-        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId, a.custom_data as customData
-        ,u.name as projectAuditorName, a.project_auditor_id as projectAuditorId, department.department_name as departmentName, a.overtime_hours as overtimeHours, a.custom_text as customText, a.project_audit_time as projectAuditTime,project_main.name as projectMainName
+        , reject_reason as rejectReason, reject_username as rejectUsername, reject_userid as rejectUserid, degree_id as degree_id,report_extra_degree.name as degreeName,task_group.name as groupName,a.group_id as groupId, DATE_FORMAT( a.custom_data,'%Y-%m-%d') as customData
+        ,u.name as projectAuditorName, a.project_auditor_id as projectAuditorId, department.department_name as departmentName, a.overtime_hours as overtimeHours, a.custom_text as customText,DATE_FORMAT( a.project_audit_time,'%Y-%m-%d')  as projectAuditTime,project_main.name as projectMainName
         FROM report AS a
         JOIN project AS b ON a.project_id=b.id
         LEFT JOIN user AS c ON a.creator_id=c.id

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

@@ -103,17 +103,18 @@
                         <el-col :span="16">
                             <el-link @click="toggleGroup"><i v-if="selectedGroup != null" :class="groupWidth==0?'el-icon-d-arrow-right':'el-icon-d-arrow-left'" style="margin-top:10px;">{{selectedGroup.name}}</i></el-link>
                         </el-col>
-                        <el-col :span="4">
+                        <el-col :span="8" style="float:right;width:380px">
                             <el-select v-model="order" size="small" style="background:#fff;display:inline-block;" @change="orderChange">
                                 <el-option v-for="item in orderList" :key="item.id" :label="item.name" :value="item.id">
                                     <span>{{item.name}}</span>
                                 </el-option>
                             </el-select>
-                        </el-col>
-                        <el-col :span="4">
-                            <el-button icon="iconfont firerock-icondaochu" size="mini" @click="showExportDialog">导出</el-button>
+                            <el-button icon="iconfont firerock-icondaochu" style="margin-left:10px" size="mini" @click="showExportDialog">导出</el-button>
                             <el-button icon="iconfont firerock-icondaoru" size="mini" @click="importTaskDialog = true;importToStageId = stageList[0].id;">导入</el-button>
                         </el-col>
+                        <!-- <el-col :span="4">
+                            
+                        </el-col> -->
                         </el-row>
                         <!-- <div style="color:#999;margin-top:10px;">
                             <i v-if="selectedGroup != null" class="el-icon-arrow-left" style="margin-top:10px;">{{selectedGroup.name}}</i>
@@ -332,7 +333,10 @@
                 <div style="border: 1px solid #ddd;margin:5px 0;padding:5px 0;">
                 <el-form-item :label="'执行人'+(index+1)" v-for="(executorItem, index) in addForm.executorListFront" :key="index">
                     <el-select v-model="executorItem.executorId" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" size="small" filterable clearable placeholder="请选择执行人" style="width:40%;" @change="$forceUpdate()">
-                        <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
+                        <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
+                             <span style="float: left">{{ item.name }}</span>
+                             <span style="float: right; color: #8492a6; font-size: 13px;margin-left: 20px" v-if="item.jobNumber">{{ item.jobNumber }}</span>
+                        </el-option>
                     </el-select>
                     <span style="margin-left:30px;margin-right:10px;">计划工时</span>
                     <el-input-number size="small" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" v-model="gstimday[index]" style="width:16%;" :min="1" :max="100"  placeholder="请输入计划工作时长,单位天" @change="chggstim(0,index)"></el-input-number ><span style="margin-left:5px;">天</span>

+ 12 - 9
fhKeeper/formulahousekeeper/timesheet/src/views/task/list.vue

@@ -246,7 +246,7 @@
                     </el-select>
                 </el-form-item>
                 <el-form-item label="类型">
-                    <el-select v-model="addForm.taskType" style="width:100%;" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id">
+                    <el-select v-model="addForm.taskType" style="width:100%;" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement">
                         <el-option v-for="item in taskTypeList" :key="item.id" :label="item.name" :value="item.id">
                             <i :class="item.icon" ></i>
                             <span>{{item.name}}</span>
@@ -254,27 +254,30 @@
                     </el-select>
                 </el-form-item>
                 <el-form-item label="任务内容" prop="name">
-                    <el-input v-model="addForm.name" :maxlength="40" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id" placeholder="请输入任务内容" clearable></el-input>
+                    <el-input v-model="addForm.name" :maxlength="40" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" placeholder="请输入任务内容" clearable></el-input>
                 </el-form-item>
                 
                 <el-form-item :label="addForm.taskType == 1 ? '截至时间' : '开始时间'" :prop="addForm.taskType == 1 ? 'endDate' : 'startDate'">
                     <el-date-picker v-model="addForm.startDate" type="date" style="width:40%;" value-format="yyyy-MM-dd"  
-                    placeholder="请选择日期" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id" v-if="addForm.taskType != 1"></el-date-picker>
+                    placeholder="请选择日期" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" v-if="addForm.taskType != 1"></el-date-picker>
                     <span style="margin-left:30px;margin-right:10px;" v-if="addForm.taskType != 1">截止时间</span>
                     <el-date-picker v-model="addForm.endDate" type="date" value-format="yyyy-MM-dd"  
-                    placeholder="请选择日期" :disabled="this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id"></el-date-picker>
+                    placeholder="请选择日期" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement"></el-date-picker>
                     </el-form-item>
                 <div style="border: 1px solid #ddd;margin:5px 0;padding:5px 0;">
                 <el-form-item :label="'执行人'+(index+1)" v-for="(executorItem, index) in addForm.executorListFront" :key="index">
-                    <el-select v-model="executorItem.executorId" :disabled="addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id" size="small" filterable clearable placeholder="请选择执行人" style="width:40%;" @change="$forceUpdate()">
-                        <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
+                    <el-select v-model="executorItem.executorId" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" size="small" filterable clearable placeholder="请选择执行人" style="width:40%;" @change="$forceUpdate()">
+                        <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
+                            <span style="float: left">{{ item.name }}</span>
+                            <span style="float: right; color: #8492a6; font-size: 13px;margin-left: 20px" v-if="item.jobNumber">{{ item.jobNumber }}</span>
+                        </el-option>
                     </el-select>
                     <span style="margin-left:30px;margin-right:10px;">计划工时</span>
-                    <el-input-number size="small" :disabled="addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id" v-model="executorItem.planHours" style="width:30%;" :min="1" :max="100"  placeholder="请输入计划工作时长,单位小时" ></el-input-number ><span style="margin-left:10px;">小时</span>
+                    <el-input-number size="small" :disabled="(addForm.id != null && user.id != addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement" v-model="executorItem.planHours" style="width:30%;" :min="1" :max="100"  placeholder="请输入计划工作时长,单位小时" ></el-input-number ><span style="margin-left:10px;">小时</span>
                     <!--移除执行人 -->
-                    <i class="el-icon-delete" v-if="index>0 && (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id)" style="margin-left:5px" @click="removeExecutorLine(index)"></i>
+                    <i class="el-icon-delete" v-if="index>0 && (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id|| permissions.projectManagement)" style="margin-left:5px" @click="removeExecutorLine(index)"></i>
                 </el-form-item>
-                <el-link type="primary" v-if="addForm.executorListFront.length<10&& (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id)" style="margin-left:35px;" @click="addExecutorLine">添加执行人</el-link>
+                <el-link type="primary" v-if="(addForm.executorListFront == null || addForm.executorListFront.length<10)&& (addForm.id == null|| user.id == addForm.createrId || currentProject.inchargerId == user.id || permissions.projectManagement)" style="margin-left:35px;" @click="addExecutorLine">添加执行人</el-link>
                 </div>
                 
                 <el-form-item label="优先级">

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/project/index.vue

@@ -32,8 +32,8 @@
                     <van-field v-model="form.projectName" name="项目名称" label="项目名称" placeholder="请填写项目名称" :rules="[{ required: true, message: '请填写项目名称' }]"/>
                     <van-field readonly clickable name="userNames" v-model="form.userNames"  label="参与人" 
                     placeholder="请选择参与人" @click="clickPicker()" />
-                    <van-field readonly clickable  v-model="form.inchargerName"  label="负责人" 
-                    placeholder="请选择负责人" @click="showPickerIncharger = true" />
+                    <van-field readonly clickable  v-model="form.inchargerName"  label="项目经理" 
+                    placeholder="请选择项目经理" @click="showPickerIncharger = true" />
                     <!-- 研究中心 -->
                     <van-field v-if="user.timeType.customDegreeActive == 1" readonly clickable name="userNames" v-model="form.associateDegreeNames"  label="研究中心" 
                     placeholder="请选择" @click="clikls()"/>