Browse Source

首页接口

chenc 4 years ago
parent
commit
fdb4099d86

+ 19 - 1
src/main/java/org/jeecg/modules/fbsAbnormalWorkingHours/controller/FbsAbnormalWorkingHoursController.java

@@ -323,6 +323,24 @@ public class FbsAbnormalWorkingHoursController {
 		 return result;
 	 }
 
-
+	 /**
+	 * @Author chenchuang
+	 * @Description //TODO 首页异常工时报表数据
+	 * @Date 2020/10/17 15:53
+	 * @Param []
+	 * @return org.jeecg.common.api.vo.Result<org.jeecg.modules.fbsAbnormalWorkingHours.entity.FbsAbnormalWorkingHours>
+	 */
+	@GetMapping(value = "/getAbnormalWorkingHoursReport")
+	 public Result<FbsAbnormalWorkingHours> getAbnormalWorkingHoursReport(){
+		 Result<FbsAbnormalWorkingHours> result =new Result<>();
+		 try {
+			 result.setResult(fbsAbnormalWorkingHoursService.getAbnormalWorkingHoursReport());
+			 result.success("操作成功");
+		 } catch (Exception e) {
+			 e.printStackTrace();
+			 result.error500("操作失败:"+e.getMessage());
+		 }
+		 return result;
+	 }
 
 }

+ 3 - 0
src/main/java/org/jeecg/modules/fbsAbnormalWorkingHours/entity/FbsAbnormalWorkingHours.java

@@ -150,4 +150,7 @@ public class FbsAbnormalWorkingHours implements Serializable {
 	//异常类别
 	@TableField(exist = false)
 	private List<FbsAbnormalWorkingHoursType> fbsAbnormalWorkingHoursTypeList;
+
+	@TableField(exist = false)
+	private List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursList;
 }

+ 12 - 0
src/main/java/org/jeecg/modules/fbsAbnormalWorkingHours/service/IFbsAbnormalWorkingHoursService.java

@@ -3,6 +3,8 @@ package org.jeecg.modules.fbsAbnormalWorkingHours.service;
 import org.jeecg.modules.fbsAbnormalWorkingHours.entity.FbsAbnormalWorkingHours;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 生产异常信息统计单
  * @author: jeecg-boot
@@ -27,4 +29,14 @@ public interface IFbsAbnormalWorkingHoursService extends IService<FbsAbnormalWor
     * @return boolean
     */
     boolean updateAndChild(FbsAbnormalWorkingHours fbsAbnormalWorkingHours);
+
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 查询异常工时报表
+    * @Date 2020/10/17 15:29
+    * @Param []
+    * @return java.util.List<org.jeecg.modules.fbsAbnormalWorkingHours.entity.FbsAbnormalWorkingHours>
+    */
+    FbsAbnormalWorkingHours getAbnormalWorkingHoursReport();
 }

+ 114 - 0
src/main/java/org/jeecg/modules/fbsAbnormalWorkingHours/service/impl/FbsAbnormalWorkingHoursServiceImpl.java

@@ -19,6 +19,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -39,6 +43,8 @@ public class FbsAbnormalWorkingHoursServiceImpl extends ServiceImpl<FbsAbnormalW
 
     @Resource
     private IFbsAbnormalWorkingHoursTypeService iFbsAbnormalWorkingHoursTypeService;
+    @Resource
+    private IFbsAbnormalWorkingHoursService iFbsAbnormalWorkingHoursService;
 
     @Override
     public boolean addAndChild(FbsAbnormalWorkingHours fbsAbnormalWorkingHours) {
@@ -101,6 +107,8 @@ public class FbsAbnormalWorkingHoursServiceImpl extends ServiceImpl<FbsAbnormalW
         return resulet;
     }
 
+
+
     @Autowired
     IFbsPersonService iFbsPersonService;
 
@@ -128,4 +136,110 @@ public class FbsAbnormalWorkingHoursServiceImpl extends ServiceImpl<FbsAbnormalW
         fbsAbnormalWorkingHoursType.setDelFlag("1");
         iFbsAbnormalWorkingHoursTypeService.update(fbsAbnormalWorkingHoursType,typeLambdaQueryWrapper);
     }
+
+
+    @Override
+    public FbsAbnormalWorkingHours getAbnormalWorkingHoursReport() {
+        FbsAbnormalWorkingHours fbsAbnormalWorkingHoursResult=new FbsAbnormalWorkingHours();
+        //两个时间之间的所有日期
+        List<Date> dateList=startDateAndEndDate("2020-10-14","2020-10-17");
+        //查询全部异常工时
+        LambdaQueryWrapper<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursLambdaQueryWrapper=new LambdaQueryWrapper<>();
+        fbsAbnormalWorkingHoursLambdaQueryWrapper.eq(FbsAbnormalWorkingHours::getDelFlag,"0");
+        List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursList=iFbsAbnormalWorkingHoursService.list(fbsAbnormalWorkingHoursLambdaQueryWrapper);
+        //获取其全部主表id
+        List<String> hourIdList=new ArrayList<>();
+        if(fbsAbnormalWorkingHoursList!=null){
+            for(FbsAbnormalWorkingHours fbsAbnormalWorkingHours:fbsAbnormalWorkingHoursList){
+                hourIdList.add(fbsAbnormalWorkingHours.getId());
+            }
+        }
+        //根据主表查询异常描述子表
+        LambdaQueryWrapper<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper=new LambdaQueryWrapper<>();
+        fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper.eq(FbsAbnormalWorkingHoursDescribe::getDelFlag,"0");
+        fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper.in(FbsAbnormalWorkingHoursDescribe::getAbnormalWorkingHoursId,hourIdList);
+        List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList=iFbsAbnormalWorkingHoursDescribeService.list(fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper);
+        getDescribeList(fbsAbnormalWorkingHoursList,fbsAbnormalWorkingHoursDescribeList);
+
+        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
+        List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursListAdd=new ArrayList<>();
+        if(dateList!=null){//是否为空
+            for(Date date:dateList){
+                String dateString=fmt.format(date);//时间
+                boolean ish=false;//是否找到时间对应的异常工时单
+                if(fbsAbnormalWorkingHoursList!=null){
+                    for (FbsAbnormalWorkingHours fbsAbnormalWorkingHours:fbsAbnormalWorkingHoursList){
+                        String  hdate=fmt.format(fbsAbnormalWorkingHours.getDate());
+                        if(dateString.equals(hdate)){//找到时间对应的时间工时单
+                            fbsAbnormalWorkingHoursListAdd.add(fbsAbnormalWorkingHours);
+                            ish=true;
+                        }
+                    }
+                }
+                //如果没找到则添加空对象
+                if(ish==false){
+                    FbsAbnormalWorkingHours fbsAbnormalWorkingHours=new FbsAbnormalWorkingHours();
+                    fbsAbnormalWorkingHours.setDate(date);
+                    fbsAbnormalWorkingHoursListAdd.add(fbsAbnormalWorkingHours);
+                }
+            }
+        }
+        fbsAbnormalWorkingHoursResult.setFbsAbnormalWorkingHoursList(fbsAbnormalWorkingHoursListAdd);
+        return fbsAbnormalWorkingHoursResult;
+    }
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据主表id获取子表描述数据
+    * @Date 2020/10/17 18:14
+    * @Param [fbsAbnormalWorkingHoursList, fbsAbnormalWorkingHoursDescribeList]
+    * @return void
+    */
+    public void getDescribeList(List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursList,List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList){
+        //判断是否为空
+        if(fbsAbnormalWorkingHoursList!=null&&fbsAbnormalWorkingHoursDescribeList!=null){
+            //循环主表
+            for(FbsAbnormalWorkingHours fbsAbnormalWorkingHours:fbsAbnormalWorkingHoursList){
+                List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeListAdd=new ArrayList<>();
+                //循环子表
+                for(FbsAbnormalWorkingHoursDescribe fbsAbnormalWorkingHoursDescribe:fbsAbnormalWorkingHoursDescribeList){
+                    //根据主表id查询子表数据
+                    if(fbsAbnormalWorkingHours.getId().equals(fbsAbnormalWorkingHoursDescribe.getAbnormalWorkingHoursId())){
+                        fbsAbnormalWorkingHoursDescribeListAdd.add(fbsAbnormalWorkingHoursDescribe);
+                    }
+                }
+                fbsAbnormalWorkingHours.setFbsAbnormalWorkingHoursDescribeList(fbsAbnormalWorkingHoursDescribeListAdd);
+            }
+        }
+
+    }
+
+    public List<Date> startDateAndEndDate(String startDate, String endDate) {
+        List<Date> list = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String date1 = startDate; //开始时间
+        String date2 = endDate; //结束时间
+        Long startTIme = null;
+        try {
+            startTIme = sdf.parse(date1).getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Long endTime = null;
+        try {
+            endTime = sdf.parse(date2).getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Long oneDay = 1000 * 60 * 60 * 24l;
+        Long time = startTIme;
+        while (time <= endTime) {
+            Date d = new Date(time);
+            // DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+            // String date=df.format(d);
+            list.add(d);
+            time += oneDay;
+        }
+        return list;
+    }
 }

+ 1 - 1
src/main/java/org/jeecg/modules/fbsPerson/mapper/xml/FbsPersonMapper.xml

@@ -4,7 +4,7 @@
     <select id="getPerAndDerp" resultType="org.jeecg.modules.fbsPerson.entity.FbsPerson">
         SELECT
             p.*,
-            d.cDepCode
+            d.cDepName
         FROM
             Person p
             LEFT JOIN Department d ON p.cDepCode= d.cDepCode

+ 21 - 0
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/controller/FbsWorkshopDispatchListController.java

@@ -339,4 +339,25 @@ public class FbsWorkshopDispatchListController {
 		 return result;
 	 }
 
+	 /**
+	 * @Author chenchuang
+	 * @Description //TODO 首页报表
+	 * @Date 2020/10/17 12:13
+	 * @Param []
+	 * @return org.jeecg.common.api.vo.Result<java.util.List<org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList>>
+	 */
+	 @GetMapping(value = "/getSumDispatchReport")
+	 public Result<List<FbsWorkshopDispatchList>> getSumDispatchReport(){
+		 Result<List<FbsWorkshopDispatchList>> result=new Result<>();
+		 try {
+			 List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListService.getSumDispatch();
+			 result.setResult(fbsWorkshopDispatchListList);
+			 result.success("操作成功");
+		 } catch (Exception e) {
+			 e.printStackTrace();
+			 result.error500("操作失败:"+e.getMessage());
+		 }
+		 return result;
+	 }
+
 }

+ 21 - 1
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/entity/FbsWorkshopDispatchList.java

@@ -2,7 +2,11 @@ package org.jeecg.modules.fbsWorkshopDispatchList.entity;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -40,7 +44,7 @@ public class FbsWorkshopDispatchList implements Serializable {
 	private Date date;
 	/**生产订单号id*/
 	@Excel(name = "生产订单号id", width = 15)
-	private String productionOrderNumberId;
+	private Integer productionOrderNumberId;
 	/**生产订单号名称*/
 	@Excel(name = "生产订单号名称", width = 15)
 	private String productionOrderNumberName;
@@ -117,4 +121,20 @@ public class FbsWorkshopDispatchList implements Serializable {
     /**状态(0初始,1接单,2暂停,3完成)*/
     @Excel(name = "状态", width = 15)
     private String state;
+
+    //合并行
+	@TableField(exist = false)
+    private Integer mergeLines;
+
+    //任务数量合计
+    @TableField(exist = false)
+    private String numberOfTasksTotal;
+
+	//标准工时合计
+	@TableField(exist = false)
+    private String standardWorkingHoursTotal;
+
+	@TableField(exist = false)
+	private List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList;
+
 }

+ 9 - 0
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/mapper/FbsWorkshopDispatchListMapper.java

@@ -15,4 +15,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 public interface FbsWorkshopDispatchListMapper extends BaseMapper<FbsWorkshopDispatchList> {
 
     int updateState(@Param("state")String state,@Param("id") String id);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据生产订单查询基本数据以及总的任务数量 总的标准工时
+    * @Date 2020/10/17 11:34
+    * @Param []
+    * @return java.util.List<org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList>
+    */
+    List<FbsWorkshopDispatchList> getSumDispatch();
 }

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

@@ -4,4 +4,19 @@
     <update id="updateState">
         update fbs_workshop_dispatch_list set state =#{state} where id = #{id}
     </update>
+    
+    <select id="getSumDispatch" resultType="org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList">
+        SELECT
+            *,
+            sum( number_of_tasks ) AS numberOfTasksTotal,
+            sum( standard_working_hours ) AS standardWorkingHoursTotal
+        FROM
+            fbs_workshop_dispatch_list
+            where del_flag='0'
+        GROUP BY
+            production_order_number_id
+        ORDER BY
+            production_line_name
+    </select>
+    
 </mapper>

+ 12 - 0
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/IFbsWorkshopDispatchListService.java

@@ -3,6 +3,8 @@ package org.jeecg.modules.fbsWorkshopDispatchList.service;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * @Description: 车间派工单
  * @author: jeecg-boot
@@ -11,4 +13,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IFbsWorkshopDispatchListService extends IService<FbsWorkshopDispatchList> {
     int updateState(String state,String id);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据生产订单查询基本数据以及总的任务数量 总的标准工时
+    * @Date 2020/10/17 11:38
+    * @Param []
+    * @return java.util.List<org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList>
+    */
+    List<FbsWorkshopDispatchList> getSumDispatch();
+
 }

+ 113 - 1
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/impl/FbsWorkshopDispatchListServiceImpl.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.fbsWorkshopDispatchList.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
 import org.jeecg.modules.fbsWorkshopDispatchList.mapper.FbsWorkshopDispatchListMapper;
 import org.jeecg.modules.fbsWorkshopDispatchList.service.IFbsWorkshopDispatchListService;
@@ -8,6 +9,13 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 /**
  * @Description: 车间派工单
  * @author: jeecg-boot
@@ -18,8 +26,11 @@ import org.springframework.transaction.annotation.Transactional;
 @Transactional
 public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopDispatchListMapper, FbsWorkshopDispatchList> implements IFbsWorkshopDispatchListService {
 
+    @Resource
     private IFbsWorkshopDispatchListService iFbsWorkshopDispatchListService;
 
+    @Resource
+    private FbsWorkshopDispatchListMapper fbsWorkshopDispatchListMapper;
     /**
      * 更新状态
      * @param state 状态(0初始,1接单,2暂停,3完成)
@@ -27,6 +38,107 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
      * @return
      */
     public int updateState(String state,String id){
-        return iFbsWorkshopDispatchListService.updateState(state,id);
+        return fbsWorkshopDispatchListMapper.updateState(state,id);
+    }
+
+    @Override
+    public List<FbsWorkshopDispatchList> getSumDispatch() {
+        //求和的派工单集合
+        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListListSum=fbsWorkshopDispatchListMapper.getSumDispatch();
+        //全部派工单为求和
+        LambdaQueryWrapper<FbsWorkshopDispatchList> lambdaQueryWrapper=new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(FbsWorkshopDispatchList::getDelFlag,"0");
+        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=iFbsWorkshopDispatchListService.list(lambdaQueryWrapper);
+        //两个时间之间的所有日期
+        List<Date> dateList=startDateAndEndDate("2020-10-14","2020-10-17");
+        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
+        //组装派工单报表数据
+        if(fbsWorkshopDispatchListListSum!=null&&fbsWorkshopDispatchListList!=null&&dateList!=null){
+            for(FbsWorkshopDispatchList dispatchListSum:fbsWorkshopDispatchListListSum){
+                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 dispatchDate=fmt.format(dispatchList.getDate());//派工时间
+                        //找到对应当天的派工单则添加
+                        if(orderIdSum.equals(orderId)&&dateString.equals(dispatchDate)){
+                            dispatchListAdd.add(dispatchList);
+                            isorder=true;
+                        }
+                    }
+                    //没有则添加空的派工单
+                    if(isorder==false){
+                        FbsWorkshopDispatchList fbsWorkshopDispatchList=new FbsWorkshopDispatchList();
+                        fbsWorkshopDispatchList.setDate(date);
+                        dispatchListAdd.add(fbsWorkshopDispatchList);
+                    }
+                }
+                dispatchListSum.setFbsWorkshopDispatchListList(dispatchListAdd);
+            }
+        }
+
+        //获取生产名称合并行
+        mergeLines(fbsWorkshopDispatchListListSum);
+        return fbsWorkshopDispatchListListSum;
+    }
+
+    public List<Date> startDateAndEndDate(String startDate, String endDate) {
+        List<Date> list = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String date1 = startDate; //开始时间
+        String date2 = endDate; //结束时间
+        Long startTIme = null;
+        try {
+            startTIme = sdf.parse(date1).getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Long endTime = null;
+        try {
+            endTime = sdf.parse(date2).getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Long oneDay = 1000 * 60 * 60 * 24l;
+        Long time = startTIme;
+        while (time <= endTime) {
+            Date d = new Date(time);
+            // DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+            // String date=df.format(d);
+            list.add(d);
+            time += oneDay;
+        }
+        return list;
+    }
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 获取生产名称合并行
+    * @Date 2020/10/17 17:23
+    * @Param [fbsWorkshopDispatchListList]
+    * @return void
+    */
+    public void mergeLines(List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList){
+        if(fbsWorkshopDispatchListList!=null){
+            String productionLineId="";
+            Integer sort=1;
+            for(FbsWorkshopDispatchList fbsWorkshopDispatchList:fbsWorkshopDispatchListList){
+                Integer mergeLines=0;
+                if(productionLineId.equals("")||!productionLineId.equals(fbsWorkshopDispatchList.getProductionLineId())){
+                    productionLineId=fbsWorkshopDispatchList.getProductionLineId();
+                    for(FbsWorkshopDispatchList workshopDispatchList:fbsWorkshopDispatchListList){
+                        if(productionLineId.equals(workshopDispatchList.getProductionLineId())){
+                            mergeLines++;
+                        }
+                    }
+                    fbsWorkshopDispatchList.setSort(sort);
+                    sort++;
+                }
+                fbsWorkshopDispatchList.setMergeLines(mergeLines);
+            }
+        }
     }
 }