Browse Source

增加工时详情选项

QuYueTing 5 months ago
parent
commit
2397eee38c

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

@@ -222,10 +222,12 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
     private ReportPushLogService reportPushLogService;
     @Resource
     private SapSyncLogService sapSyncLogService;
-
+    @Resource
+    private CompanyDictMapper companyDictMapper;
     @Value(value = "${upload.path}")
     private String path;
 
+
     //获取报告列表
     @Override
     public HttpRespMsg getReportList(String date,  Integer deptId, String targetUid, Integer pageIndex,
@@ -5931,11 +5933,22 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 //            titles.add("工作日期");
 //            titles.add("工作时长(小时)");
             titles.add(MessageUtils.message("entry.workDate"));
+            //具体工作细项
+            boolean hasDetailItem = false;
+            if (timeType.getType() == 2 && timeType.getMultiWorktime() == 1) {
+                Integer i = companyDictMapper.selectCount(new QueryWrapper<CompanyDict>().eq("company_id", companyId).eq("code", "multiOption"));
+                if (i > 0) {
+                    hasDetailItem = true;
+                    titles.add("具体工时");
+                }
+            }
             titles.add(MessageUtils.message("excel.WorkHours"));
+
             if (timeType.getMultiWorktime() == 1) {
                 //titles.add("工时时间");
                 titles.add(MessageUtils.message("excel.hours"));
             }
+
             //titles.add("加班");
             titles.add(MessageUtils.message("excel.workOvertime"));
             //是否启用自定义的维度了
@@ -6098,6 +6111,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                                 newMap.put("startTime", worktimeItem.getStartTime());
                                 newMap.put("endTime", worktimeItem.getEndTime());
                                 newMap.put("content", worktimeItem.getContent());
+                                newMap.put("detail", worktimeItem.getDetail());
                                 newMap.put("duration", df.format(worktimeItem.getTime()));
                                 //第一条填充加班
                                 if (isOvertime == 1 && i == 0) {
@@ -6114,6 +6128,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                             newMap.put("startTime", "");
                             newMap.put("endTime", "");
                             newMap.put("content", "");
+                            newMap.put("detail", "");
                             dealDataList.add(newMap);
                         }
                     } else {
@@ -6278,6 +6293,13 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     createDate = (String) map.get("createDate");
                 }
                 item.add(createDate);
+                if (hasDetailItem) {
+                    if (map.get("detail") == null) {
+                        item.add("");
+                    } else {
+                        item.add((String) map.get("detail"));
+                    }
+                }
                 item.add(map.get("duration").toString());
                 if (timeType.getMultiWorktime() == 1) {
                     if ((Integer)map.get("multiWorktime") == 1) {

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

@@ -325,7 +325,7 @@
                                                             <p style="display: inline-block;">{{$t('time.duration')}}:
                                                                 <span v-if="item2.reportTimeType == 2" style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>
                                                             {{timeItem.time.toFixed(1)}}h  
-                                                            <span v-if="timeItem.detail" style="margin-left:10px;">细项:
+                                                            <span v-if="timeItem.detail" style="margin-left:10px;">
                                                                 {{timeItem.detail}}
                                                             </span>
                                                             </p>

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/list.vue

@@ -181,6 +181,7 @@
                                             <p style="line-height:20px;margin:5px 0px;">{{$t('time.duration')}}:
                                                 <span v-if="item.reportTimeType == 2" style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>
                                             {{timeItem.time.toFixed(1)}}h  
+                                            <span v-if="timeItem.detail" style="margin-left:10px;"> {{timeItem.detail}} </span>
                                             </p>
                                             <p style="line-height:20px;margin:5px 0px;">{{ $t('other.matters') }}:<span v-html="timeItem.content"></span></p>
                                         </div>

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -402,9 +402,9 @@
                                 @click="item.canEdit ? showChooseDetail(timeItem) : ''" />
                             <!-- 工作细项, 美莱德 -->
                             <van-popup v-model="showMultiOpPicker" position="bottom">
-                                                        <van-picker show-toolbar :columns="multiOptionData" :default-index="1" @confirm="choseMultiOptionPick"
-                                                            @cancel="showMultiOpPicker = false" />
-                                                    </van-popup>
+                                <van-picker show-toolbar :columns="multiOptionData" :default-index="1" @confirm="choseMultiOptionPick"
+                                    @cancel="showMultiOpPicker = false" />
+                            </van-popup>
                             <van-field class="form_input" :disabled="!item.canEdit"
                                 style="color:#333;-webkit-text-fill-color:#646566;" v-model="timeItem.content"
                                 name="content" type="textarea" label="工作事项" placeholder="请输入工作事项"

+ 33 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/weekEdit.vue

@@ -317,7 +317,15 @@
                                 :value="timeItem.endTime" label="结束时间" placeholder="点击选择时间" 
                                 :rules="[{ required: true, message: '必填项' }]" :disabled="item.state<=1"
                                     @click="showEndDialog(timeItem)"  />
-                                
+                                <van-field v-if="multiOptionData.length>0" readonly :clickable="true" name="multiTimePicker"
+                                    :value="timeItem.detail" label="细项" placeholder="点击选择"
+                                    :rules="[{ required: true, message: '必填项' }]"
+                                    @click="item.state>1 ? showChooseDetail(timeItem) : ''" />
+                                <!-- 工作细项, 美莱德 -->
+                                <van-popup v-model="showMultiOpPicker" position="bottom">
+                                    <van-picker show-toolbar :columns="multiOptionData" :default-index="1" @confirm="choseMultiOptionPick"
+                                        @cancel="showMultiOpPicker = false" />
+                                </van-popup>
                                 <van-field class="form_input" style="color:#333;-webkit-text-fill-color:#646566;"
                                     :disabled="item.state<=1"
                                     v-model="timeItem.content" name="content" type="textarea" label="工作事项" placeholder="请输入工作事项" 
@@ -485,7 +493,8 @@
     export default {
         data() {
             return {
-
+                showMultiOpPicker: false,
+                multiOptionData:[],
                 showPickerStage: false,
                 showPickerTaskGroup: false,
                 showPickerSubProject: false,
@@ -1107,6 +1116,14 @@
                         this.$forceUpdate();
                     }).catch(err=> {this.$toast.clear();});
             },
+            showChooseDetail(timeItem) {
+                this.curWorktime = timeItem;
+                this.showMultiOpPicker=true;
+            },
+            choseMultiOptionPick(value) {
+                this.curWorktime.detail = value;
+                this.showMultiOpPicker = false;
+            },
             showEndDialog(timeItem) {
                 this.curWorktime = timeItem;
                 this.showWorkEndTime = true;
@@ -2786,7 +2803,19 @@
                         this.getTaskList(projectId, 0, true, i)
                     }
                 }
-            }
+            },
+            getMultiOptionData() {
+                this.$axios.post('/company-dict/getAll', { companyId: this.user.companyId,code: 'multiOption' })
+                    .then(res => {
+                        if (res.code == "ok") {
+                            var list = res.data;
+                            this.multiOptionData = [];
+                            for (var i in list) {
+                                this.multiOptionData.push(list[i].value);
+                            }
+                        } 
+                    }).catch(err => { this.$toast.clear(); });
+            },
         },
         
         mounted() {
@@ -2836,6 +2865,7 @@
             this.getAllUsersList()
             // this.getReport();
             this.getTimeType();
+            this.getMultiOptionData();
             //初始化微信js-sdk参数
             if (this.isCorpWX) {
                 this.initWxConfig();

+ 1 - 0
fhKeeper/formulahousekeeper/timesheet_h5/src/views/review/index.vue

@@ -170,6 +170,7 @@
                                 <div class="project_time">时长:
                                     <!-- <span v-if="timeItem.reportTimeType == 0" style="margin-right:10px;">{{fullDayTxt[item1.timeType]}}</span> -->
                                     <span style="margin-right:10px;">{{timeItem.startTime+'-'+timeItem.endTime}}</span>{{timeItem.time.toFixed(1)}}h
+                                    <span style="margin-left:5px;" v-if="timeItem.detail">{{ timeItem.detail }}</span>
                                 </div>
                                 <div class="project_content">事项:<span v-html="timeItem.content"></span></div>
                             </div>