Explorar o código

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

Min hai 11 meses
pai
achega
73230cb209

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

@@ -296,8 +296,8 @@ public class ReportController {
     }
 
     @RequestMapping("/getWeeklyReportData")
-    public HttpRespMsg getWeeklyReportData(@RequestParam String targetDate) {
-        return reportService.getWeeklyReportData(targetDate, request);
+    public HttpRespMsg getWeeklyReportData(@RequestParam String targetDate, @RequestParam String targetUserId) {
+        return reportService.getWeeklyReportData(targetDate, targetUserId, request);
     }
 
     //新版按周填报

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

@@ -122,7 +122,7 @@ public interface ReportService extends IService<Report> {
 
     HttpRespMsg getAIReport(HttpServletRequest request);
 
-    HttpRespMsg getWeeklyReportData(String targetDate, HttpServletRequest request);
+    HttpRespMsg getWeeklyReportData(String targetDate, String targetUserId, HttpServletRequest request);
 
     HttpRespMsg batchDelete(String userIds, Integer deptId, String startDate, String endDate, HttpServletRequest request);
 

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

@@ -7721,9 +7721,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     }
 
     @Override
-    public HttpRespMsg getWeeklyReportData(String targetDate, HttpServletRequest request) {
+    public HttpRespMsg getWeeklyReportData(String targetDate, String targetUserId, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         String userId = request.getHeader("TOKEN");
+        if (!StringUtils.isEmpty(targetUserId)) {
+            userId = targetUserId;
+        }
         User user = userMapper.selectById(userId);
         Company company = companyMapper.selectById(user.getCompanyId());
         //根据targetDate获取本周的日期

+ 18 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -224,9 +224,15 @@
                             <el-option v-for="item in alertDayRange" :label="item" :value="item" :key="item"></el-option>
                         </el-select>
                         号)</span>
+                        <span v-if="timeType.alertType == 4" style="color:#606266;">(每
+                        <el-select v-model="timeType.alertDay" style="width:80px;">
+                            <el-option v-for="item in alertWeekDayRange" :label="item.label" :value="item.value" :key="item.value"></el-option>
+                        </el-select>
+                        提醒)</span>
                     </el-form-item>
-                    <el-form-item v-if="timeType.alertType != 3" :label="$t('remindertext')" prop="alertMsg" style="width: 50%;margin-left:10px;">
-                            <el-input :placeholder="$t('peaseenterthe')" v-model="timeType.alertMsg" clearable class="apu" maxlength="20"></el-input>
+                    <el-form-item v-if="timeType.alertType != 3" :label="$t('remindertext')" prop="alertMsg" style="margin-left:10px;">
+                            <el-input :placeholder="$t('peaseenterthe')" v-model="timeType.alertMsg" clearable class="apu" maxlength="50"></el-input>
+                            <span v-if="timeType.alertType == 4" style="color:orange;margin-left:10px;">(可用{0}表示漏填日期,例如:{0}将被替换为05/24,05/25。)</span>
                     </el-form-item>
                     
                     </el-form>
@@ -256,6 +262,14 @@
                                     end: '23:30'
                                     }">
                                 </el-time-picker>
+                                <span v-if="timeType.alertType == 4" style="color:#606266;margin-left:20px;">(每
+                                <el-select v-model="timeType.alertCheckDay" style="width:80px;">
+                                    <el-option v-for="item in alertWeekDayRange" :label="item.label" :value="item.value" :key="item.value"></el-option>
+                                </el-select>
+                                提醒)<span style="margin-left:20px;">提醒文本</span>
+                                <el-input :placeholder="$t('peaseenterthe')" v-model="timeType.alertCheckMsg" clearable class="apu" maxlength="50"></el-input>
+                                <span style="color:orange;margin-left:10px;">(可用{0}表示待审核条数,例如:{0}将被替换为10。)</span>
+                            </span>
                         </div>
 
                     </div>
@@ -789,6 +803,7 @@
                     onNextStep: this.myCustomNextStepCallback
                 },
                 alertDayRange: ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15'],
+                alertWeekDayRange: [{value:1,label:'周一'},{value:2,label:'周二'},{value:3,label:'周三'},{value:4,label:'周四'},{value:5,label:'周五'}],
                 pushParam:{
                     day:'05',
                     hour:'01',
@@ -1874,7 +1889,7 @@
     box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)
 }
 .underpanel{
-    width: 900px;
+    // width: 900px;
     // height: 140px;
     border-top: 1px solid #eee;
     position: relative;

+ 39 - 15
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -133,7 +133,10 @@
                                     <el-link v-if="reportTimeType.type != 0 && user.companyId != yuzhongCompId && user.timeType.enableNewWeeklyfill != 1 && user.companyId != 3092" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportss()">{{$t('textLink.fillInAWeek')}}</el-link>
                                     <el-link v-if="user.timeType.enableNewWeeklyfill == 1" type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">按周填报</el-link>
                                     <!-- <el-link type="primary" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReportCustom()">按周填报</el-link> -->
-                                    <el-link type="primary" v-if="permissions.reportsFillOut && user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=true; fillInReport(-1,2)">{{$t('textLink.helpToFillIn')}}</el-link>
+                                    <el-link type="primary" v-if="user.companyId != 5978 && permissions.reportsFillOut && user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=true; fillInReport(-1,2)">{{$t('textLink.helpToFillIn')}}</el-link>
+                                    <!-- 苏州景昱,按周填报的模式进行代填日报 -->
+                                    <el-link type="primary" v-if="user.companyId == 5978 && permissions.reportsFillOut && user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=true; fillInReportss();">{{$t('textLink.helpToFillIn')}}</el-link>
+                                    
                                     <el-link type="primary" v-if="permissions.reportBatch && user.timeType.enableNewWeeklyfill != 1" style="margin-right:10px;" :underline="false" @click="isSubstitude=false;fillInReport(-1,1)">{{$t('textLink.batchFillIn')}}</el-link>
                                     <el-link type="primary" v-if="user.companyId != yuzhongCompId && (permissions.importReport || user.manageDeptId != 0)" style="margin-right:10px;" :underline="false" @click="imports()">{{$t('textLink.workHoursImport')}}</el-link>
                                     <el-link type="primary" style="margin-right:10px;" :underline="false" @click="showExportDialog" v-if="permissions.reportExport">{{$t('textLink.exportWork')}}</el-link>
@@ -143,7 +146,6 @@
                                     <el-link type="primary" v-if="user.timeType.pushReportData == 1 && user.companyId==3092 && permissions.reportPush" :underline="false" @click="pushWorkTimeLogDig=true,getPushWorkLogData()">工时推送日志</el-link>
                                     <el-link type="primary" v-if="user.roleName == '超级管理员' && user.companyId==839" :underline="false" @click="reportLogCheckDialog=true">日报审核修改</el-link>
                                     <!-- <el-button v-if="user.timeType.pushReportData == 1 && permissions.reportPush" style="margin-left:10px;" icon="iconfont firerock-icontuisong" size="mini" @click="pushWorkTime"></el-button> -->
-
                                 </span>
                             </div>
                             <div :style="'height:'+(tableHeight-50)+'px;overflow:scroll;padding-top:10px;'">
@@ -935,6 +937,7 @@
 
         <!-- 按周填报 -->
         <el-dialog :title="$t('textLink.fillInAWeek')" :visible.sync="fillWeekDialogVisi" width="1200px" :close-on-click-modal="false" @closed="guanbi(),closeAddWeeklyReport()">
+            
             <!-- 按周填报-已填工时-点击 -->
             <el-dialog append-to-body :title="$t('lable.filledReport')" :visible.sync="weeklyFilledTimeDialog" width="50%" :close-on-click-modal="false">
                 <el-table :data="weeklyFilledTimeList" v-loading="weeklyFilledTimeLoading">
@@ -943,24 +946,33 @@
                     <el-table-column prop="state" :label="$t('state.states')">
                         <template slot-scope="scope">{{workReportStateString[scope.row.state]}}</template>
                     </el-table-column>
-                    <!-- <el-table-column label="操作">
-                        <template slot-scope="scope">
-                            <el-button v-if="scope.row.state == 2 || scope.row.state == 3" size="small" @click="weeklyFilledTimeDelete(scope.row)">删除</el-button>
-                        </template>
-                    </el-table-column> -->
                 </el-table>
                 <span slot="footer" class="dialog-footer">
                     <el-button @click="weeklyFilledTimeDelete()" size="small" type="danger" v-if="weeklyFilledTimeCanDelete">{{$t('btn.delete')}}</el-button>
                 </span>
             </el-dialog>
-            <el-form ref="WeekWorkForm" :model="workForm" :rules="workRules" label-width="100px">
+            <div v-if="isSubstitude && substitudeStep == 1" style="width:300px;margin:0 auto;" >
+                <el-input v-if="user.userNameNeedTranslate != 1" @focus="showChooseMembTree" v-model="workForm.userNames" size="small"
+                        :placeholder="$t('defaultText.pleaseSelectAsubstitute')" ></el-input>
+                <div  @click="showChooseMembTree" v-if="user.userNameNeedTranslate == 1" >
+                    <span class="spnn" v-if="workForm.userNames">
+                        <span v-for="(item, index) in workForm.userNames" :key="index">
+                            <span><TranslationOpenDataText type='userName' :openid='item'></TranslationOpenDataText></span>
+                            <span v-if="index < workForm.userNames.length - 1">,</span>
+                        </span>
+                    </span>
+                    <span class="spnn hover" v-else>
+                        {{$t('defaultText.pleaseSelectAsubstitute')}}
+                    </span>
+                </div>
+                <el-button @click="substitudeStep = 2; getCurrentWeek();" style="margin-top:10px;margin-left:100px" type="primary">下一步</el-button>    
+            </div>
+            <el-form ref="WeekWorkForm" :model="workForm" :rules="workRules" label-width="100px" v-if="!isSubstitude || (substitudeStep == 2 && isSubstitude && workForm.userNames && workForm.userNames.length>0)">
                 <el-form-item style="height:30px;margin-top:-72px;">
                      <!-- <el-date-picker v-model="weekDateRange" size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="initWeekFormData()" type="daterange" :range-separator="$t('other.to')" :start-placeholder="$t('time.startDate')" :end-placeholder="$t('time.endDate')" style="margin-right: 18px" :clearable="false"></el-date-picker> -->
                      <el-button @click="handleGetPrevWeek()" size="small">&lt;&lt;</el-button>
                      <el-button @click="getCurrentWeek()" size="small">{{$t('time.thisWeek')}}</el-button>
                      <el-button @click="handleGetNextvWeek()" size="small">&gt;&gt;</el-button>
-                     <!-- <el-button @click="newDates()" size="small">{{$t('time.addedDate')}}</el-button> -->
-                     
                      <el-select v-model="selCon" size="small" multiple :placeholder="$t('defaultText.pleaseChoose')" @change="onSelProjectChange()" filterable style="margin-right:50px;float:right;width:50%;" collapse-tags>
                         <el-option
                         v-for="item in fillProjectList"
@@ -1024,7 +1036,7 @@
                 </el-table>
             </el-form>
 
-            <span slot="footer" class="dialog-footer" >
+            <span slot="footer" class="dialog-footer" v-if="!isSubstitude || substitudeStep == 2">
                 <!-- <el-button @click="zhoAddlast()" style="float:left;" class="el-icon-back">{{$t('defaultText.selectProject')}}</el-button> -->
                 <el-button @click="closeAddWeeklyReport()" :loading="submitingReport">{{$t('btn.cancel')}}</el-button>
                 <el-button @click="submitWeekReport(1)" :loading="submitingReport" >{{$t('btn.temporaryStorage')}}</el-button>
@@ -2173,6 +2185,7 @@
         },
         data() {
             return {
+                substitudeStep: 1,
                 showHidden: false,
                 pageIndex: 0,
                 hasMore: true,
@@ -6615,8 +6628,14 @@
             fillInReportss() {
                 window.addEventListener('scroll', this.handleScroll, true)
                 // this.jiazai()
-                this.fillWeekDialogVisi = true
-                this.getCurrentWeek();
+                this.fillWeekDialogVisi = true;
+                if (this.isSubstitude) {
+                    this.substitudeStep = 1;
+                    this.getSubstitudeUserDeptList();
+                } else {
+                    this.getCurrentWeek();
+                }
+                
                 if (!this.timeBasecostList || this.timeBasecostList.length == 0) {
                     //重新获取工时预警类型的预算项
                     this.http.post('/project-basecost-setting/getReportBasecostList', {
@@ -6961,9 +6980,14 @@
                 for (var p in this.fillProjectList) {
                     this.fillProjectList[p].canCancel = 1;
                 }
-                this.http.post('/report/getWeeklyReportData',{
+                var param = {
                     targetDate: util.formatDate.format(this.targetWeekDate, "yyyy-MM-dd")
-                },res => {
+                };
+                if (this.isSubstitude) {
+                    //传代填人的userId
+                    param.targetUserId = this.workForm.userId[0];
+                }
+                this.http.post('/report/getWeeklyReportData',param,res => {
                     this.weekDataLoading = false;
                     if(res.code == 'ok'){
                         let projectList = res.data.projectList;