瀏覽代碼

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

seyason 11 月之前
父節點
當前提交
c87174f0c7

+ 38 - 22
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserWithBeisenController.java

@@ -209,13 +209,13 @@ public class UserWithBeisenController {
                     if(between.toHours()<=0){
                         continue;
                     }else {
-                        //去掉休息时长
-                        long rest1 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("12:00:00", df4), LocalTime.parse("13:00:00", df4));
-                        long rest2 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("17:30:00", df4), LocalTime.parse("18:00:00", df4));
-                        long lastWorkMinute = between.toMinutes() - rest1-rest2;
-                        BigDecimal decimal = new BigDecimal(lastWorkMinute);
-                        decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_DOWN);
-                        workTime=decimal.doubleValue();
+                        if(workDay){
+                            //去掉休息时长
+                            workTime=8.0;
+                        }else {
+                            //去掉休息时长
+                            workTime=0.0;
+                        }
                     }
                     Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
                     Stream<JSONObject> vacationStream = allVacationList.stream().map(elment -> (JSONObject) elment);
@@ -252,7 +252,9 @@ public class UserWithBeisenController {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
+                                        workTime=workTime+o.getDouble("OverTimeDuration");
+                                    }else{
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }else {
                                     //开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
@@ -266,7 +268,9 @@ public class UserWithBeisenController {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>l){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+l;
+                                        workTime=workTime+l;
+                                    }else {
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }
                             }else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
@@ -277,7 +281,9 @@ public class UserWithBeisenController {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
+                                        workTime=workTime+o.getDouble("OverTimeDuration");
+                                    }else {
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }else {
                                     //开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
@@ -291,7 +297,9 @@ public class UserWithBeisenController {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>l){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+l;
+                                        workTime=workTime+l;
+                                    }else {
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }
                             }
@@ -446,13 +454,13 @@ public class UserWithBeisenController {
                 msg.setError("无考勤记录");
                 return msg;
             }else {
-                //去掉休息时长
-                long rest1 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("12:00:00", df4), LocalTime.parse("13:00:00", df4));
-                long rest2 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("17:30:00", df4), LocalTime.parse("18:00:00", df4));
-                long lastWorkMinute = between.toMinutes() - rest1-rest2;
-                BigDecimal decimal = new BigDecimal(lastWorkMinute);
-                decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_DOWN);
-                workTime=decimal.doubleValue();
+              if(workDay){
+                  //去掉休息时长
+                  workTime=8.0;
+              }else {
+                  //去掉休息时长
+                  workTime=0.0;
+              }
             }
             Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
             Stream<JSONObject> vacationStream = vacationList.stream().map(elment -> (JSONObject) elment);
@@ -490,7 +498,9 @@ public class UserWithBeisenController {
                             BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                             if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
                                 //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
+                                workTime=workTime+o.getDouble("OverTimeDuration");
+                            }else{
+                                workTime=workTime+divide.doubleValue();
                             }
                         }else {
                             //开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
@@ -504,7 +514,9 @@ public class UserWithBeisenController {
                             BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                             if(divide.doubleValue()>l){
                                 //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                workTime=workTime-divide.doubleValue()+l;
+                                workTime=workTime+l;
+                            }else {
+                                workTime=workTime+divide.doubleValue();
                             }
                         }
                     }else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
@@ -515,7 +527,9 @@ public class UserWithBeisenController {
                             BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                             if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
                                 //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
+                                workTime=workTime+o.getDouble("OverTimeDuration");
+                            }else {
+                                workTime=workTime+divide.doubleValue();
                             }
                         }else {
                             //开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
@@ -529,7 +543,9 @@ public class UserWithBeisenController {
                             BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                             if(divide.doubleValue()>l){
                                 //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                workTime=workTime-divide.doubleValue()+l;
+                                workTime=workTime+l;
+                            }else {
+                                workTime=workTime+divide.doubleValue();
                             }
                         }
                     }

+ 19 - 11
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -2282,13 +2282,13 @@ public class TimingTask {
                     if(between.toHours()<=0){
                         continue;
                     }else {
-                        //去掉休息时长
-                        long rest1 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("12:00:00", df4), LocalTime.parse("13:00:00", df4));
-                        long rest2 = DateTimeUtil.calculateOverlap(min, max, LocalTime.parse("17:30:00", df4), LocalTime.parse("18:00:00", df4));
-                        long lastWorkMinute = between.toMinutes() - rest1-rest2;
-                        BigDecimal decimal = new BigDecimal(lastWorkMinute);
-                        decimal=decimal.divide(new BigDecimal(60),1,RoundingMode.HALF_DOWN);
-                        workTime=decimal.doubleValue();
+                        if(workDay){
+                            //去掉休息时长
+                            workTime=8.0;
+                        }else {
+                            //去掉休息时长
+                            workTime=0.0;
+                        }
                     }
                     Stream<JSONObject> overTimeStream = allOverTimeList.stream().map(elment -> (JSONObject) elment);
                     Stream<JSONObject> vacationStream = allVacationList.stream().map(elment -> (JSONObject) elment);
@@ -2325,7 +2325,9 @@ public class TimingTask {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
+                                        workTime=workTime+o.getDouble("OverTimeDuration");
+                                    }else{
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }else {
                                     //开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
@@ -2339,7 +2341,9 @@ public class TimingTask {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>l){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+l;
+                                        workTime=workTime+l;
+                                    }else {
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }
                             }else if(LocalDateTime.parse(o.getString("StopDate"),df1).toLocalDate().isEqual(localDate)){
@@ -2350,7 +2354,9 @@ public class TimingTask {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>o.getDouble("OverTimeDuration")){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+o.getDouble("OverTimeDuration");
+                                        workTime=workTime+o.getDouble("OverTimeDuration");
+                                    }else {
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }else {
                                     //开始日期和结束日期是不相同的情况 说明是加班区间存在加班到第二天的情况
@@ -2364,7 +2370,9 @@ public class TimingTask {
                                     BigDecimal divide = overTimeBigDecimal.divide(new BigDecimal(60), 1, RoundingMode.HALF_DOWN);
                                     if(divide.doubleValue()>l){
                                         //打卡获取到的加班时长大于加班单时长 需要在打卡体现的时长-打卡体现的加班时长+加班单时长
-                                        workTime=workTime-divide.doubleValue()+l;
+                                        workTime=workTime+l;
+                                    }else {
+                                        workTime=workTime+divide.doubleValue();
                                     }
                                 }
                             }

+ 5 - 1
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue

@@ -24,7 +24,7 @@
                 <el-option label="排产工单号" value="1"></el-option>
                 <el-option label="项目名称" value="2"></el-option>
                 <el-option label="产品名称" value="3"></el-option>
-                <el-option label="订单号" value="3"></el-option>
+                <el-option label="订单号" value="4"></el-option>
               </el-select>
               <el-button slot="append" icon="el-icon-search" @click="getTableData()"></el-button>
             </el-input>
@@ -95,6 +95,10 @@
               </div>
             </template>
           </el-table-column>
+          <el-table-column prop="productOrderNum" label="排产订单号" width="180">
+          </el-table-column>
+          <el-table-column prop="projectName" label="项目名称" width="180">
+          </el-table-column>
           <el-table-column prop="productName" label="产品名称" width="180">
           </el-table-column>
           <el-table-column prop="projectCode" label="项目代码" width="180">

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

@@ -268,46 +268,12 @@
 
             <el-table-column prop="participator" :label="$t('participants')" :min-width="user.company.packageCustomer != 1 ? '100' : '300'" sortable v-if="user.company.packageProject==0">
                 <template slot-scope="scope">
-                    <!-- <v-for v-for="par in scope.row.participator" :key="par.id" >
-                        <el-link style="margin-right:10px;" type="primary" @click="showUser(par.id)">{{par.name}}</el-link>
-                    </v-for> -->
-                    <div v-if="scope.row.participator.length > 5">
-                        <el-popover placement="top" width="500" trigger="hover" v-if="scope.row.participator.length > 0">
-                            <span v-for="par in scope.row.participator" :key="par.id">
-                                <el-link style="margin-right:10px;" :underline="false" type="primary" @click="showUser(par.id)">
-                                    <span v-if="user.userNameNeedTranslate != 1">
-                                        {{par.name}}
-                                    </span>
-                                    <span v-if="user.userNameNeedTranslate == 1">
-                                        <TranslationOpenDataText type='userName' :openid='par.name'></TranslationOpenDataText>
-                                    </span>
-                                </el-link>
-                            </span>
-                            <div slot="reference" class="addss">
-                                <span v-for="par in scope.row.participator" :key="par.id">
-                                    <el-link style="margin-right:10px;" :underline="false" type="primary" @click="showUser(par.id)">
-                                        <span v-if="user.userNameNeedTranslate != 1">
-                                            {{par.name}}
-                                        </span>
-                                        <span v-if="user.userNameNeedTranslate == 1">
-                                            <TranslationOpenDataText type='userName' :openid='par.name'></TranslationOpenDataText>
-                                        </span>
-                                    </el-link>
-                                </span>
-                            </div>
-                        </el-popover>
-                    </div>
-                    <div v-else>
-                        <span v-for="par in scope.row.participator" :key="par.id" >
-                            <el-link style="margin-right:10px;" type="primary" :underline="false" @click="showUser(par.id)" v-if="user.userNameNeedTranslate != 1">
-                                {{par.name}}
-                            </el-link>
-                            <el-link style="margin-right:10px;" type="primary" :underline="false" @click="showUser(par.id)" v-if="user.userNameNeedTranslate == 1">
-                                <TranslationOpenDataText type='userName' :openid='par.name'></TranslationOpenDataText>
-                            </el-link>
-                        </span>
-                    </div>
-                    
+                    <span v-if="(scope.row.participator || []).length > 0">
+                        <el-link type="primary" @click="showAllparticipator(scope.row)">
+                            <TranslationOpenDataText type='userName' :openid='scope.row.participator[0].name'></TranslationOpenDataText>
+                            <span v-if="scope.row.participator.length > 1">...</span>
+                        </el-link>
+                    </span>
                 </template>
             </el-table-column>
             <!-- 客户管理 -->
@@ -1749,6 +1715,15 @@
                 </div>
             </el-dialog>
         </el-dialog>
+
+        <!-- 参与人 -->
+        <el-dialog :title="participatorVisibleTitle" :visible.sync="participatorVisible" width="50%" :before-close="handleClose">
+            <div>
+                <el-link type="primary" style="margin-right:10px;" v-for="(item, index) in participatorValue" :key="index" @click="showUser(item.id)">
+                    <TranslationOpenDataText type='userName' :openid='item.name'></TranslationOpenDataText>
+                </el-link>
+            </div>
+        </el-dialog>
     </section>
 </template>
 <style scoped>
@@ -2057,6 +2032,8 @@ a {
                 setTemplateDialog: false,
                 selectedGroup:{},
                 changeParticipation:false,
+                participatorVisible: false,
+                participatorValue: []
             };
         },
         // 过滤器
@@ -2108,6 +2085,11 @@ a {
             })
         },
         methods: {
+            showAllparticipator(item) {
+                this.participatorVisibleTitle = item.projectName + ' -- 参与人'
+                this.participatorValue = item.participator || []
+                this.participatorVisible = true
+            },
             // 批量导入任务
             importTask(item) {
                 //首先判断文件类型