Browse Source

后台 看板问题修改

chenc 4 years ago
parent
commit
31ccd49b7a

+ 3 - 3
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/mapper/xml/FbsWorkshopDispatchListMapper.xml

@@ -84,13 +84,14 @@
         SELECT
         fwdl.production_order_number_name,
         fwdl.product_id,
-        CONVERT (sum(fws.qualified_number), DECIMAL ( 15, 2 ) ) qualified_number,
+        CONVERT (sum(COALESCE(fws.qualified_number,0)), DECIMAL ( 15, 2 ) ) qualified_number,
         DATE_FORMAT(fws.final_time,'%Y-%m-%d') final_time,
         CONVERT ( (fwdl.standard_working_hours_z*latest_completed_quantity) / sum(fws.working_hours), DECIMAL ( 15, 2 ) ) * 100 AS productionEfficiency,
         CONVERT ( sum(fws.qualified_number) / fwdl.number_of_tasks, DECIMAL ( 15, 2 ) ) * 100 AS achievementRate,
         fwdl.number_of_tasks number_of_tasks,
         CONVERT (sum(fws.working_hours), DECIMAL ( 15, 2 ) ) man_hours_completed,
-        fwdl.standard_working_hours standard_working_hours
+        fwdl.standard_working_hours standard_working_hours,
+        fwdl.standard_working_hours_z
         FROM
         fbs_workshop_dispatch_list fwdl
         LEFT JOIN fbs_working_statistics fws ON fwdl.id = fws.pk_workshop_dispatch_list
@@ -108,7 +109,6 @@
         fwdl.production_order_number_name,
         fwdl.product_id,
         DATE_FORMAT(fws.final_time,'%Y-%m-%d'),
-        fwdl.man_hours_completed,
         fwdl.standard_working_hours
     </select>
 

+ 44 - 4
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/impl/FbsWorkshopDispatchListServiceImpl.java

@@ -98,6 +98,13 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
                 for(Date date:dateList){
                     String dateString=fmt.format(date);//时间
                     boolean isorder=false;
+                    FbsWorkshopDispatchList fbsWorkshopDispatchList=new FbsWorkshopDispatchList();
+                    BigDecimal number_of_tasks=new BigDecimal(0.00);//派工数量
+                    BigDecimal standard_working_hours=new BigDecimal(0.00);//标准工时
+                    BigDecimal qualified_number=new BigDecimal(0.00);//完成数量
+                    BigDecimal man_hours_completed=new BigDecimal(0.00);//完成工时
+                    BigDecimal standard_working_hours_z=new BigDecimal(0.00);//单个标准工时
+                    int i=1;
                     for(FbsWorkshopDispatchList dispatchList:fbsWorkshopDispatchListList){
                         String orderIdSum=dispatchListSum.getProductionOrderNumberName();//求和的派工生产单号
                         String orderId=dispatchList.getProductionOrderNumberName();//全部派工生产单号
@@ -105,20 +112,53 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
                         String proSum=dispatchListSum.getProductId();//求和中的产品id
                         String pro=dispatchList.getProductId();//全部中的产品id
                         //找到对应当天的派工单则添加
+
                         if(orderIdSum.equals(orderId)&&dateString.equals(dispatchDate)&&proSum.equals(pro)){
-                            dispatchListAdd.add(dispatchList);
                             if(dispatchList.getQualifiedNumber()!=null){
-                                quantityCompletedTotal+=dispatchList.getQualifiedNumber();//统计累计完成数量
+                                quantityCompletedTotal+=new Double(qualified_number.doubleValue()).intValue();//统计累计完成数量
                             }
                             manHoursCompletedTotal=manHoursCompletedTotal.add(getDecimal(Double.valueOf(dispatchList.getManHoursCompleted())));//累计完成工时
+                            fbsWorkshopDispatchList=dispatchList;
+                            if(i<=1){
+                                number_of_tasks=dispatchList.getNumberOfTasks();
+                                standard_working_hours=getDecimal(Double.valueOf(dispatchList.getStandardWorkingHours()));
+                                qualified_number=getDecimal(Double.valueOf(dispatchList.getQualifiedNumber()));
+                                man_hours_completed=getDecimal(Double.valueOf(dispatchList.getManHoursCompleted()));
+                            }else{
+                                number_of_tasks=number_of_tasks.add(dispatchList.getNumberOfTasks());
+                                standard_working_hours=standard_working_hours.add(getDecimal(Double.valueOf(dispatchList.getStandardWorkingHours())));
+                                qualified_number=qualified_number.add(getDecimal(Double.valueOf(dispatchList.getQualifiedNumber())));
+                                man_hours_completed=man_hours_completed.add(getDecimal(Double.valueOf(dispatchList.getManHoursCompleted())));
+                                fbsWorkshopDispatchList.setNumberOfTasks(getDecimal(Double.valueOf(formatDouble5(number_of_tasks.doubleValue()))));
+                                fbsWorkshopDispatchList.setStandardWorkingHours(formatDouble5(standard_working_hours.doubleValue()));
+                                fbsWorkshopDispatchList.setQualifiedNumber(new Double(qualified_number.doubleValue()).intValue());
+                            }
+
+
                             isorder=true;
+                            i++;
                         }
                     }
                     //没有则添加空的派工单
                     if(isorder==false){
-                        FbsWorkshopDispatchList fbsWorkshopDispatchList=new FbsWorkshopDispatchList();
-                        fbsWorkshopDispatchList.setFinalTime(date);
+                        FbsWorkshopDispatchList fbsWorkshopDispatchList2=new FbsWorkshopDispatchList();
+                        fbsWorkshopDispatchList2.setFinalTime(date);
+                        dispatchListAdd.add(fbsWorkshopDispatchList2);
+                    }else{
+                        if(fbsWorkshopDispatchList.getQualifiedNumber()==null||fbsWorkshopDispatchList.getQualifiedNumber()==0){
+                            fbsWorkshopDispatchList.setProductionEfficiency("0.0");
+                        }
+                        if(i>1){
+                            //一天存同个订单分多个派工单的情况
+                            if(qualified_number.doubleValue()>0.0){
+                                fbsWorkshopDispatchList.setProductionEfficiency(getDecimal(Double.valueOf(fbsWorkshopDispatchList.getStandardWorkingHoursZ())).multiply(qualified_number).divide(man_hours_completed,1,BigDecimal.ROUND_HALF_UP).multiply(getDecimal(100.0)).doubleValue()+"");
+                                fbsWorkshopDispatchList.setAchievementRate(qualified_number.divide(number_of_tasks,1,BigDecimal.ROUND_HALF_UP).multiply(getDecimal(100.0)).doubleValue()+"");
+                            }
+
+                        }
+
                         dispatchListAdd.add(fbsWorkshopDispatchList);
+
                     }
                 }
                 if(quantityCompletedTotal!=0){