ソースを参照

派工单 首页

chenc 4 年 前
コミット
e8b57d79da

+ 18 - 1
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/controller/FbsWorkshopDispatchListController.java

@@ -16,7 +16,9 @@ import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.fbsInventory.entity.FbsInventory;
 import org.jeecg.modules.fbsInventory.service.IFbsInventoryService;
 import org.jeecg.modules.fbsMomOrder.entity.FbsMomOrder;
+import org.jeecg.modules.fbsMomOrder.entity.FbsMomOrderdetail;
 import org.jeecg.modules.fbsMomOrder.service.IFbsMomOrderService;
+import org.jeecg.modules.fbsMomOrder.service.IFbsMomOrderdetailService;
 import org.jeecg.modules.fbsPerson.entity.FbsPerson;
 import org.jeecg.modules.fbsPerson.service.IFbsPersonService;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
@@ -62,6 +64,8 @@ public class FbsWorkshopDispatchListController {
 
 	 @Autowired
 	 IFbsInventoryService iFbsInventoryService;
+	 @Autowired
+	 IFbsMomOrderdetailService iFbsMomOrderdetailService;
 
 	/**
 	  * 分页列表查询
@@ -77,8 +81,20 @@ public class FbsWorkshopDispatchListController {
 									  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 									  HttpServletRequest req) {
 		Result<IPage<FbsWorkshopDispatchList>> result = new Result<IPage<FbsWorkshopDispatchList>>();
+		String start=fbsWorkshopDispatchList.getStart();
+		String end=fbsWorkshopDispatchList.getEnd();
+		if(StringUtils.isNotBlank(start)){
+			fbsWorkshopDispatchList.setStart(null);
+		}
+		if(StringUtils.isNotBlank(end)){
+			fbsWorkshopDispatchList.setEnd(null);
+		}
 		QueryWrapper<FbsWorkshopDispatchList> queryWrapper = QueryGenerator.initQueryWrapper(fbsWorkshopDispatchList, req.getParameterMap());
 		queryWrapper.lambda().eq(FbsWorkshopDispatchList::getDelFlag,"0");
+		if(StringUtils.isNotBlank(start)&&StringUtils.isNotBlank(end)&&!start.equals("null")&&!end.equals("null")){
+			queryWrapper.ge("DATE_FORMAT(date,'%Y-%m-%d')",start);
+			queryWrapper.le("DATE_FORMAT(date,'%Y-%m-%d')",end);
+		}
 		queryWrapper.lambda().orderByDesc(FbsWorkshopDispatchList::getCreateTime);
 		Page<FbsWorkshopDispatchList> page = new Page<FbsWorkshopDispatchList>(pageNo, pageSize);
 		IPage<FbsWorkshopDispatchList> pageList = fbsWorkshopDispatchListService.page(page, queryWrapper);
@@ -352,7 +368,8 @@ public class FbsWorkshopDispatchListController {
 	 public Result<List<FbsWorkshopDispatchList>> getSumDispatchReport(){
 		 Result<List<FbsWorkshopDispatchList>> result=new Result<>();
 		 try {
-			 List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListService.getSumDispatch();
+			 List<FbsMomOrderdetail> fbsMomOrderdetailList= iFbsMomOrderdetailService.getMonthList();
+			 List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListService.getSumDispatch(fbsMomOrderdetailList);
 			 result.setResult(fbsWorkshopDispatchListList);
 			 result.success("操作成功");
 		 } catch (Exception e) {

+ 7 - 0
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/entity/FbsWorkshopDispatchList.java

@@ -199,4 +199,11 @@ public class FbsWorkshopDispatchList implements Serializable {
 	/**库存规格*/
 	@TableField(exist = false)
 	private String cinvstd;
+
+	//开始时间
+	@TableField(exist = false)
+	private String start;
+	//结束时间
+	@TableField(exist = false)
+	private String end;
 }

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

@@ -63,12 +63,15 @@
                 <![CDATA[  and DATE_FORMAT(fws.end_date, '%Y-%m-%d') <= #{endDate} ]]>
             </if>-->
         SELECT
-        fwdl.production_order_number_id,
+        fwdl.production_order_number_name,
         fwdl.product_id,
         sum(fws.qualified_number) qualified_number,
         DATE_FORMAT(fws.final_time,'%Y-%m-%d') final_time,
         CONVERT ( sum(fwdl.man_hours_completed) / sum(fwdl.standard_working_hours), DECIMAL ( 15, 2 ) ) * 100 AS productionEfficiency,
-        CONVERT ( sum(fws.qualified_number) / sum(fwdl.number_of_tasks), DECIMAL ( 15, 2 ) ) * 100 AS achievementRate
+        CONVERT ( sum(fws.qualified_number) / sum(fwdl.number_of_tasks), DECIMAL ( 15, 2 ) ) * 100 AS achievementRate,
+        sum(fwdl.number_of_tasks) number_of_tasks,
+        sum(fwdl.man_hours_completed) man_hours_completed,
+        sum(fwdl.standard_working_hours) standard_working_hours
         FROM
         fbs_workshop_dispatch_list fwdl
         LEFT JOIN fbs_working_statistics fws ON fwdl.id = fws.pk_workshop_dispatch_list
@@ -83,7 +86,7 @@
             <![CDATA[  and DATE_FORMAT(fws.final_time, '%Y-%m-%d') <= #{endDate} ]]>
         </if>
         GROUP BY
-        fwdl.production_order_number_id,
+        fwdl.production_order_number_name,
         fwdl.product_id,
         DATE_FORMAT(fws.final_time,'%Y-%m-%d')
     </select>
@@ -192,7 +195,7 @@
     </select>
 
     <select id="getWorkingHoursContrast" resultType="org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList">
-        SELECT
+        <!--SELECT
             sum( fwdl.man_hours_completed ) AS manHoursCompleted,
             sum( fwdl.standard_working_hours ) AS standardWorkingHours,
             fwdl.product
@@ -205,7 +208,20 @@
             AND fws.final_state = '3'
             AND date_format( fws.end_date, '%Y-%m' ) = date_format( now( ), '%Y-%m' )
         GROUP BY
-            fwdl.product
+            fwdl.product-->
+
+             SELECT
+        sum( fwdl.man_hours_completed ) AS manHoursCompleted,
+        sum( fwdl.standard_working_hours ) AS standardWorkingHours,
+        fwdl.product
+        FROM
+        fbs_workshop_dispatch_list fwdl
+        WHERE
+        fwdl.del_flag = '0'
+        and DATE_FORMAT(now( ),'%Y-%m-%d') <![CDATA[ >= ]]> DATE_FORMAT(fwdl.planned_start_time,'%Y-%m-%d')
+        and DATE_FORMAT(now( ),'%Y-%m-%d') <![CDATA[ <= ]]> DATE_FORMAT(fwdl.planned_end_time,'%Y-%m-%d')
+        GROUP BY
+        fwdl.product
     </select>
 
     <!--   需要加入当日时间判断   -->

+ 2 - 1
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/IFbsWorkshopDispatchListService.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.fbsWorkshopDispatchList.service;
 
+import org.jeecg.modules.fbsMomOrder.entity.FbsMomOrderdetail;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -26,7 +27,7 @@ public interface IFbsWorkshopDispatchListService extends IService<FbsWorkshopDis
     * @Param []
     * @return java.util.List<org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList>
     */
-    List<FbsWorkshopDispatchList> getSumDispatch();
+    List<FbsWorkshopDispatchList> getSumDispatch(List<FbsMomOrderdetail> fbsMomOrderdetailList);
 
 
     /**

+ 35 - 7
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/impl/FbsWorkshopDispatchListServiceImpl.java

@@ -2,6 +2,8 @@ package org.jeecg.modules.fbsWorkshopDispatchList.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import io.swagger.models.auth.In;
+import org.jeecg.modules.fbsMomOrder.entity.FbsMomOrderdetail;
+import org.jeecg.modules.fbsMomOrder.service.IFbsMomOrderdetailService;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
 import org.jeecg.modules.fbsWorkshopDispatchList.mapper.FbsWorkshopDispatchListMapper;
 import org.jeecg.modules.fbsWorkshopDispatchList.service.IFbsWorkshopDispatchListService;
@@ -34,6 +36,10 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
 
     @Resource
     private FbsWorkshopDispatchListMapper fbsWorkshopDispatchListMapper;
+
+    @Resource
+    private IFbsMomOrderdetailService iFbsMomOrderdetailService;
+
     /**
      * 更新状态
      * @param state 状态(0初始,1接单,2暂停,3完成)
@@ -48,10 +54,13 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         return fbsWorkshopDispatchListMapper.selNowDispatchList();
     }
     @Override
-    public List<FbsWorkshopDispatchList> getSumDispatch() {
+    public List<FbsWorkshopDispatchList> getSumDispatch(List<FbsMomOrderdetail> fbsMomOrderdetailList) {
+
         SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
         //求和的派工单集合
-        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListListSum=fbsWorkshopDispatchListMapper.getSumDispatch();
+//        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListListSum=fbsWorkshopDispatchListMapper.getSumDispatch();
+        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListListSum=new ArrayList<>();
+        getWorkshopDispatchListListSum(fbsWorkshopDispatchListListSum,fbsMomOrderdetailList);
         //全部派工单为求和
 //        LambdaQueryWrapper<FbsWorkshopDispatchList> lambdaQueryWrapper=new LambdaQueryWrapper<>();
 //        lambdaQueryWrapper.eq(FbsWorkshopDispatchList::getDelFlag,"0");
@@ -83,13 +92,14 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         if(fbsWorkshopDispatchListListSum!=null&&fbsWorkshopDispatchListList!=null&&dateList!=null){
             for(FbsWorkshopDispatchList dispatchListSum:fbsWorkshopDispatchListListSum){
                 Integer quantityCompletedTotal=0;
+                BigDecimal manHoursCompletedTotal=new BigDecimal(0.00);//累计总工时
                 List<FbsWorkshopDispatchList> dispatchListAdd=new ArrayList<>();//需要保存子集集合的派工单(日期分组派工单)
                 for(Date date:dateList){
                     String dateString=fmt.format(date);//时间
                     boolean isorder=false;
                     for(FbsWorkshopDispatchList dispatchList:fbsWorkshopDispatchListList){
-                        Integer orderIdSum=dispatchListSum.getProductionOrderNumberId();//求和的派工生产单号
-                        Integer orderId=dispatchList.getProductionOrderNumberId();//全部派工生产单号
+                        String orderIdSum=dispatchListSum.getProductionOrderNumberName();//求和的派工生产单号
+                        String orderId=dispatchList.getProductionOrderNumberName();//全部派工生产单号
                         String dispatchDate=fmt.format(dispatchList.getFinalTime());//完工时间
                         String proSum=dispatchListSum.getProductId();//求和中的产品id
                         String pro=dispatchList.getProductId();//全部中的产品id
@@ -97,6 +107,7 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
                         if(orderIdSum.equals(orderId)&&dateString.equals(dispatchDate)&&proSum.equals(pro)){
                             dispatchListAdd.add(dispatchList);
                             quantityCompletedTotal+=dispatchList.getQualifiedNumber();//统计累计完成数量
+                            manHoursCompletedTotal=manHoursCompletedTotal.add(getDecimal(Double.parseDouble(dispatchList.getManHoursCompleted())));//累计完成工时
                             isorder=true;
                         }
                     }
@@ -110,7 +121,9 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
                 if(quantityCompletedTotal!=0){
                     dispatchListSum.setQuantityCompletedTotal(quantityCompletedTotal);
                 }
-
+                if(manHoursCompletedTotal.doubleValue()!=0){
+                    dispatchListSum.setManHoursCompletedTotal(manHoursCompletedTotal+"");
+                }
                 dispatchListSum.setFbsWorkshopDispatchListList(dispatchListAdd);
             }
         }
@@ -122,6 +135,21 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         return fbsWorkshopDispatchListListSum;
     }
 
+    //获取erp中的订单数据
+    public void getWorkshopDispatchListListSum(List<FbsWorkshopDispatchList> fbsWorkshopDispatchListListSum,List<FbsMomOrderdetail> fbsMomOrderdetailList){
+
+        for(FbsMomOrderdetail fbsMomOrderdetail:fbsMomOrderdetailList){
+            FbsWorkshopDispatchList fbsWorkshopDispatchList=new FbsWorkshopDispatchList();
+            fbsWorkshopDispatchList.setProjectName(fbsMomOrderdetail.getDefine12());
+            fbsWorkshopDispatchList.setProductionOrderNumberName(fbsMomOrderdetail.getMocode());
+            fbsWorkshopDispatchList.setProductId(fbsMomOrderdetail.getCinvcode());
+            fbsWorkshopDispatchList.setProduct(fbsMomOrderdetail.getCinvname());
+            fbsWorkshopDispatchList.setNumberOfTasksTotal(Math.rint(Double.parseDouble(fbsMomOrderdetail.getQty()+""))+"");
+            fbsWorkshopDispatchList.setStandardWorkingHoursTotal(fbsMomOrderdetail.getCinvDefine13());
+            fbsWorkshopDispatchListListSum.add(fbsWorkshopDispatchList);
+        }
+    }
+
 
 
     public List<Date> startDateAndEndDate(String startDate, String endDate) {
@@ -198,7 +226,7 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         //循环累加计算
         for(FbsWorkshopDispatchList workshopDispatchList:fbsWorkshopDispatchListList){
             if(isNumber(workshopDispatchList.getNumberOfTasksTotal())){
-                numberOfTasksTotal+=Integer.parseInt(workshopDispatchList.getNumberOfTasksTotal());
+                numberOfTasksTotal+=(int)Math.rint(Double.parseDouble(workshopDispatchList.getNumberOfTasksTotal()));
             }
             if(isNumber(workshopDispatchList.getStandardWorkingHoursTotal())){
                 standardWorkingHoursTotal=standardWorkingHoursTotal.add(getDecimal(Double.parseDouble(workshopDispatchList.getStandardWorkingHoursTotal())));
@@ -266,7 +294,7 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
 
         //放到最后一行
         FbsWorkshopDispatchList fbsWorkshopDispatchList=new FbsWorkshopDispatchList();
-        fbsWorkshopDispatchList.setProductionLineName("统计");
+        fbsWorkshopDispatchList.setProjectName("统计");
         fbsWorkshopDispatchList.setNumberOfTasksTotal(numberOfTasksTotal+"");
         fbsWorkshopDispatchList.setStandardWorkingHoursTotal(standardWorkingHoursTotal.doubleValue()+"");
         fbsWorkshopDispatchList.setQuantityCompletedTotal(quantityCompletedTotal);