Selaa lähdekoodia

total表增加工序的完成工时和完成度

seyason 1 vuosi sitten
vanhempi
commit
4f8199f5c7

+ 14 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/PlanProcedureTotal.java

@@ -17,7 +17,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2023-11-20
+ * @since 2023-11-24
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -63,9 +63,6 @@ public class PlanProcedureTotal extends Model<PlanProcedureTotal> {
     @TableField(exist = false)
     private String teamNames;
 
-    @TableField(exist = false)
-    private Integer totalProgress;
-
     @TableField(exist = false)
     private List<ProdProcedureTeam> prodProcedureTeamList;
 
@@ -77,6 +74,19 @@ public class PlanProcedureTotal extends Model<PlanProcedureTotal> {
 
     @TableField(exist = false)
     private boolean cancellationReceive;
+    /**
+     * 计划工序的完成度
+     */
+    @TableField("total_progress")
+    private Integer totalProgress;
+
+    /**
+     * 工序的填报工时
+     */
+    @TableField("total_fill_time")
+    private Double totalFillTime;
+
+
     @Override
     protected Serializable pkVal() {
         return this.id;

+ 5 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -1167,11 +1167,12 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
                                         .stream().map(User::getName).collect(Collectors.joining(","));
                                 ps.setTeamNames(userNames);
                             }
-                            int sum = procedureTeams.stream().filter(pt -> pt.getPlanProcedureId().equals(ps.getId())).mapToInt(ProdProcedureTeam::getProgress).sum();
+//                            int sum = procedureTeams.stream().filter(pt -> pt.getPlanProcedureId().equals(ps.getId())).mapToInt(ProdProcedureTeam::getProgress).sum();
                             /*所有进度之和*/
-                            BigDecimal bigDecimal=new BigDecimal(sum);
-                            bigDecimal=bigDecimal.divide(new BigDecimal(ps.getTeamIds().split(",").length),RoundingMode.HALF_UP);
-                            ps.setTotalProgress(bigDecimal.intValue());
+//                            BigDecimal bigDecimal=new BigDecimal(sum);
+//                            bigDecimal=bigDecimal.divide(new BigDecimal(ps.getTeamIds().split(",").length),RoundingMode.HALF_UP);
+                            //数据已经算好存储好了
+//                            ps.setTotalProgress(bigDecimal.intValue());
                             if(procedureTeamList.stream().anyMatch(pl->pl.getProgress()>0&&pl.getStatus()==4)){
                                 ps.setNeedAddCircle(true);
                             }

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

@@ -235,8 +235,16 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 });
             }
         }
-        //更新自己执行的工序上的进度
+        //更新自己执行的工序上的数据
         prodProcedureTeamMapper.updateById(prodProcedureTeam);
+        //计算该计划工序的总完成工时和完成度
+        Double workingTime = reportMapper.selectOne(new QueryWrapper<Report>().select("sum(working_time) as working_time").eq("plan_id", planProcedureTotal.getPlanId()).eq("prod_procedure_id", planProcedureTotal.getProdProcedureId())).getWorkingTime();
+        if (workingTime == null) {
+            workingTime = 0.0;
+        }
+        planProcedureTotal.setTotalFillTime(workingTime);
+        planProcedureTotal.setTotalProgress((int)(workingTime / planProcedureTotal.getTotalWorkingHours()) * 100);
+        planProcedureTotalMapper.updateById(planProcedureTotal);
         return httpRespMsg;
     }
 

+ 3 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/PlanProcedureTotalMapper.xml

@@ -9,11 +9,13 @@
         <result column="prod_procedure_id" property="prodProcedureId" />
         <result column="total_wages" property="totalWages" />
         <result column="total_working_hours" property="totalWorkingHours" />
+        <result column="total_progress" property="totalProgress" />
+        <result column="total_fill_time" property="totalFillTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, plan_id, prod_procedure_id, total_wages, total_working_hours
+        id, plan_id, prod_procedure_id, total_wages, total_working_hours, total_progress, total_fill_time
     </sql>
 
 </mapper>