Просмотр исходного кода

项目人天增加管控日期

Min 2 лет назад
Родитель
Сommit
da07bb4661

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

@@ -162,7 +162,7 @@ public class ProjectController {
                                    Double outputValue,
                                    Integer deptId,
                                    @RequestParam(defaultValue = "false") boolean onlyChangeParticipate,
-                                   String buId,Integer manDay,String plate1,
+                                   String buId,Integer manDay,String  manDayStartDate,String plate1,
                                    String plate2,
                                    String plate3,
                                    String plate4,
@@ -175,7 +175,7 @@ public class ProjectController {
         return projectService.editProject(id, name, code, userId, inchargerId, isPublic, planStartDate, planEndDate, level, contractAmount,changeContractReason,
                 projectBaseCostData,projectKeyNodesData,
                  budget,customerId,chosenLeaders, associateDegrees, associateDegreeNames,
-                taskGpIncharge,auditUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,deptId,onlyChangeParticipate,buId,manDay,plate1,plate2,plate3,plate4,plate5,plate6,plate7,plate8,plate9,plate10);
+                taskGpIncharge,auditUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,deptId,onlyChangeParticipate,buId,manDay,manDayStartDate,plate1,plate2,plate3,plate4,plate5,plate6,plate7,plate8,plate9,plate10);
     }
 
     @RequestMapping("/adjustBase")

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

@@ -964,9 +964,14 @@ public class ReportController {
                 Optional<Project> first = targetProjectList.stream().filter(tl -> tl.getId().equals(report.getProjectId())).findFirst();
                 if(first.isPresent()){
                     double nowReport = reportList.stream().filter(rl -> rl.getCreateDate().equals(report.getCreateDate()) && rl.getCreatorId().equals(report.getCreatorId())).mapToDouble(Report::getWorkingTime).sum();
-                    //已填报的工时情况
-                    double sum = needCheckReportList.stream().filter(npl -> npl.getProjectId().equals(first.get().getId()) && (npl.getState() == 0 || npl.getState() == 1)).mapToDouble(Report::getWorkingTime).sum();
                     if(first.get().getManDay()!=null){
+                        //已填报的工时情况
+                        double sum;
+                        if(first.get().getManDayStartDate()!=null){
+                            sum = needCheckReportList.stream().filter(npl -> npl.getProjectId().equals(first.get().getId()) &&(npl.getCreateDate().isAfter(first.get().getManDayStartDate())||npl.getCreateDate().isEqual(first.get().getManDayStartDate()))&& (npl.getState() == 0 || npl.getState() == 1)).mapToDouble(Report::getWorkingTime).sum();
+                        }else {
+                            sum = needCheckReportList.stream().filter(npl -> npl.getProjectId().equals(first.get().getId()) && (npl.getState() == 0 || npl.getState() == 1)).mapToDouble(Report::getWorkingTime).sum();
+                        }
                         BigDecimal hasReport = new BigDecimal(sum).add(new BigDecimal(nowReport));
                         BigDecimal multiply = new BigDecimal(first.get().getManDay()).multiply(new BigDecimal(comTimeType.getAllday()));
                         if(hasReport.doubleValue()>multiply.doubleValue()){

+ 10 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -19,11 +19,11 @@ import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
- *
+ * 
  * </p>
  *
  * @author Seyason
- * @since 2023-02-23
+ * @since 2023-04-20
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -373,6 +373,14 @@ public class Project extends Model<Project> {
     @TableField("man_day")
     private Integer manDay;
 
+    /**
+     * 项目人天管控开始日期
+     */
+    @TableField("man_day_start_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate manDayStartDate;
+
     /**
      * 预留字段
      */

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

@@ -47,7 +47,7 @@ public interface ProjectService extends IService<Project> {
                             String providerIds,
                             String providerNames,
                             HttpServletRequest request,
-                            ProjectSeparate projectSeparate,Double outputValue,Integer deptId,boolean onlyChangeParticipate,String buId,Integer manDay,String plate1,
+                            ProjectSeparate projectSeparate,Double outputValue,Integer deptId,boolean onlyChangeParticipate,String buId,Integer manDay,String manDayStartDate,String plate1,
                             String plate2,
                             String plate3,
                             String plate4,

+ 19 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -394,7 +394,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     String format = String.format("%.1f", bigDecimal.doubleValue());
                     project.setEstimatedWorkTime(format);
                     //todo:计算剩余工时
-                    List<Report> reports = reportList.stream().filter(rl -> rl.getProjectId().equals(project.getId())).collect(Collectors.toList());
+                    List<Report> reports;
+                    if(project.getManDayStartDate()!=null){
+                        reports = reportList.stream().filter(rl -> rl.getProjectId().equals(project.getId())&&(rl.getCreateDate().isAfter(project.getManDayStartDate())||rl.getCreateDate().isEqual(project.getManDayStartDate()))).collect(Collectors.toList());
+                    }else {
+                        reports = reportList.stream().filter(rl -> rl.getProjectId().equals(project.getId())).collect(Collectors.toList());
+                    }
                     //已发送工时
                     double sum = reports.stream().mapToDouble(Report::getWorkingTime).sum();
                     bigDecimal=bigDecimal.subtract(new BigDecimal(sum));
@@ -528,7 +533,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                    String providerIds,
                                    String providerNames,
                                    HttpServletRequest request,
-                                   ProjectSeparate projectSeparate,Double outputValue,Integer deptId,boolean onlyChangeParticipate,String buId,Integer manDay,String plate1,
+                                   ProjectSeparate projectSeparate,Double outputValue,Integer deptId,boolean onlyChangeParticipate,String buId,Integer manDay,String  manDayStartDate,String plate1,
                                    String plate2,
                                    String plate3,
                                    String plate4,
@@ -627,6 +632,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     }
                     if(timeType.getProjectManDay()==1){
                         project.setManDay(manDay);
+                        if (!StringUtils.isEmpty(planEndDate)) {
+                            project.setManDayStartDate(LocalDate.parse(manDayStartDate));
+                        }
                     }
                     if(timeType.getOutputValueStatus()==1){
                         project.setOutputValue(outputValue==null?0.00:outputValue);
@@ -781,6 +789,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                 }
                 if(timeType.getProjectManDay()==1){
                     p.setManDay(manDay);
+                    if (!StringUtils.isEmpty(manDayStartDate)) {
+                        p.setManDayStartDate(LocalDate.parse(manDayStartDate));
+                    }
                 }
                 //编辑项目合同修改 添加记录
                 if(contractAmount!=null&&project.getContractAmount().doubleValue()!=contractAmount){
@@ -1718,7 +1729,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             String format = String.format("%.1f", bigDecimal.doubleValue());
             project.setEstimatedWorkTime(format);
             //todo:计算剩余工时
-            List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
+            List<Report> reportList;
+                if(project.getManDayStartDate()!=null){
+                    reportList  = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).gt("create_date",project.getManDayStartDate()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
+                }else {
+                    reportList  = reportMapper.selectList(new QueryWrapper<Report>().eq("project_id", project.getId()).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
+                }
             //已发送工时
             double sum = reportList.stream().mapToDouble(Report::getWorkingTime).sum();
             bigDecimal=bigDecimal.subtract(new BigDecimal(sum));

Разница между файлами не показана из-за своего большого размера
+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml


+ 14 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -588,10 +588,20 @@
 
                     <!-- 增加项目人天字段 绎维固定字段 -->
                     <el-form-item label="项目人天" v-if="user.timeType.projectManDay == 1">
-                        <el-input v-model.number="addForm.manDay" :placeholder="$t('peaseenterthe')" @input="jisuanEstimatedWorkTime(addForm.manDay)"  style="width: 100px"></el-input><span style="margin-left:10px;position:absolute;">人天(预估工时:{{this.estimatedWorkTime}}小时)</span>
+                        <el-input v-model.number="addForm.manDay" :placeholder="$t('peaseenterthe')" @input="jisuanEstimatedWorkTime(addForm.manDay)"  style="width: 100px"></el-input><span style="margin-left:10px;position:absolute;">人天(预估工时:{{this.estimatedWorkTime}}h)</span>
                         <el-tooltip effect="dark" :content="$t('根据系统基础设置每日正常工作时长计算,1人天为一个每日正常工作时长')" placement="top-start" style="margin-left:180px">
                                         <i class="el-icon-question" style="color:#606266"></i>
                         </el-tooltip>
+                        <span style="margin-left:63px;margin-right:10px;" >{{'管控开始日期'}}</span>
+                        <el-date-picker v-model="addForm.manDayStartDate"
+                        :editable="false" style="width:20%;" 
+                        format="yyyy-MM-dd" 
+                        value-format="yyyy-MM-dd"
+                        :clearable="false" type="date" 
+                        :placeholder="$t('optiondate')"></el-date-picker>
+                        <el-tooltip effect="dark" :content="$t('设置计算项目人天已用预算的日报的开始日期')" placement="top-start" style="margin-left:10px">
+                                        <i class="el-icon-question" style="color:#606266"></i>
+                        </el-tooltip>
                     </el-form-item>
 
                     <el-form-item :label="$t('projectoutput')" prop="outputValue"  v-if="user.timeType.outputValueStatus == 1">
@@ -3974,6 +3984,7 @@ a {
                     }
                     if(this.user.timeType.projectManDay){
                         this.$set(this.addForm, 'manDay',0)
+                        this.$set(this.addForm, 'manDayStartDate','')
                     }
                     // if(this.user.companyId == '428') {
                     //     this.$set(this.addForm, 'projectCategorySub', '')
@@ -4076,6 +4087,7 @@ a {
                         changeContractReason: '',
                         bu: buascaderList,
                         manDay:item.manDay==null?0:item.manDay,
+                        manDayStartDate:item.manDayStartDate,
                         manDayDisable:item.manDay
                     }
                     for(var i in this.dataList) {
@@ -4436,6 +4448,7 @@ a {
                         formData.append("buId", this.addForm.bu ? this.addForm.bu : '');
                         if(this.user.timeType.projectManDay){
                             formData.append("manDay", this.addForm.manDay ? this.addForm.manDay : '');
+                            formData.append("manDayStartDate", this.addForm.manDayStartDate ? this.addForm.manDayStartDate : '');
                         }
                         for(var i in this.dataList) {
                              var str = 'plate' + (+i + 1)