瀏覽代碼

首页 异常报表

chenc 4 年之前
父節點
當前提交
1784d46da6

+ 2 - 0
src/main/java/org/jeecg/modules/appInterface/controller/FbsWorkingStatisticsController.java

@@ -250,6 +250,8 @@ public class FbsWorkingStatisticsController {
 				fbsWorkshopDispatchList.setFbsTechnologicalProcessItemName(list.get(0).getFbsTechnologicalProcessItemName()+"=>"+entity.getFbsTechnologicalProcessItemName());
 			}
 		 }
+		 //添加异常子表信息
+		 fbsWorkingStatisticsService.startOperation(entity,list.get(0));
 		 fbsWorkshopDispatchListService.updateById(fbsWorkshopDispatchList);
 		 res.setCode("0");
 		 res.setMsg("成功");

+ 2 - 0
src/main/java/org/jeecg/modules/appInterface/service/IFbsWorkingStatisticsService.java

@@ -41,4 +41,6 @@ public interface IFbsWorkingStatisticsService extends IService<FbsWorkingStatist
     * @return void
     */
     void updateTime(FbsWorkingStatistics fbsWorkingStatistics);
+
+    void startOperation(FbsWorkingStatistics fbsWorkingStatistics,FbsWorkshopDispatchList fbsWorkshopDispatchList);
 }

+ 60 - 0
src/main/java/org/jeecg/modules/appInterface/service/impl/FbsWorkingStatisticsServiceImpl.java

@@ -1,9 +1,14 @@
 package org.jeecg.modules.appInterface.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.jeecg.modules.appInterface.entity.FbsWorkingStatistics;
 import org.jeecg.modules.appInterface.mapper.FbsWorkingStatisticsMapper;
 import org.jeecg.modules.appInterface.service.IFbsWorkingStatisticsService;
+import org.jeecg.modules.fbsAbnormalWorkingHours.entity.FbsAbnormalWorkingHours;
+import org.jeecg.modules.fbsAbnormalWorkingHours.entity.FbsAbnormalWorkingHoursDescribe;
+import org.jeecg.modules.fbsAbnormalWorkingHours.service.IFbsAbnormalWorkingHoursDescribeService;
+import org.jeecg.modules.fbsAbnormalWorkingHours.service.IFbsAbnormalWorkingHoursService;
 import org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList;
 import org.jeecg.modules.fbsWorkshopDispatchList.service.IFbsWorkshopDispatchListService;
 import org.springframework.stereotype.Service;
@@ -13,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -31,6 +37,12 @@ public class FbsWorkingStatisticsServiceImpl extends ServiceImpl<FbsWorkingStati
     @Resource
     IFbsWorkshopDispatchListService iFbsWorkshopDispatchListService;
 
+    @Resource
+    IFbsAbnormalWorkingHoursService iFbsAbnormalWorkingHoursService;
+
+    @Resource
+    IFbsAbnormalWorkingHoursDescribeService iFbsAbnormalWorkingHoursDescribeService;
+
     @Override
     public Map<String,Object> getByMaterial(String dateString) {
 //        List<FbsWorkingStatistics> fbsWorkingStatisticsList=fbsWorkingStatisticsMapper.getByMaterial(dateString);
@@ -102,6 +114,54 @@ public class FbsWorkingStatisticsServiceImpl extends ServiceImpl<FbsWorkingStati
         }
     }
 
+    @Override
+    public void startOperation(FbsWorkingStatistics fbsWorkingStatistics,FbsWorkshopDispatchList fbsWorkshopDispatchList) {
+        if(fbsWorkshopDispatchList!=null){
+            Date date = new Date();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+            QueryWrapper<FbsAbnormalWorkingHours> queryWrapper=new QueryWrapper<>();
+            queryWrapper.lambda().eq(FbsAbnormalWorkingHours::getDelFlag,"0");
+            queryWrapper.eq("date_format(date,'%Y-%m-%d')",formatter.format(date));
+            List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursList=iFbsAbnormalWorkingHoursService.list(queryWrapper);
+            if(fbsAbnormalWorkingHoursList!=null&&fbsAbnormalWorkingHoursList.size()>0){
+                //主键id
+                String fbsAbnormalWorkingHoursId=fbsAbnormalWorkingHoursList.get(0).getId();
+                //生产订单号
+                String productionOrderNumberName=fbsWorkshopDispatchList.getProductionOrderNumberName();
+                //查询异常子表信息
+                QueryWrapper<FbsAbnormalWorkingHoursDescribe> queryWrapper1=new QueryWrapper<>();
+                queryWrapper1.lambda().eq(FbsAbnormalWorkingHoursDescribe::getDelFlag,"0");
+                queryWrapper1.lambda().eq(FbsAbnormalWorkingHoursDescribe::getAbnormalWorkingHoursId,fbsAbnormalWorkingHoursId);
+                queryWrapper1.lambda().eq(FbsAbnormalWorkingHoursDescribe::getProductionOrderNumberName,productionOrderNumberName);
+                List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList=iFbsAbnormalWorkingHoursDescribeService.list(queryWrapper1);
+                if(fbsAbnormalWorkingHoursDescribeList==null||fbsAbnormalWorkingHoursDescribeList.size()<=0){
+                    FbsAbnormalWorkingHoursDescribe fbsAbnormalWorkingHoursDescribe=new FbsAbnormalWorkingHoursDescribe();
+                    fbsAbnormalWorkingHoursDescribe.setAbnormalWorkingHoursId(fbsAbnormalWorkingHoursId);
+                    fbsAbnormalWorkingHoursDescribe.setProductionOrderNumberName(productionOrderNumberName);
+                    fbsAbnormalWorkingHoursDescribe.setProductId(fbsWorkshopDispatchList.getProductId());
+                    fbsAbnormalWorkingHoursDescribe.setProduct(fbsWorkshopDispatchList.getProduct());
+                    fbsAbnormalWorkingHoursDescribe.setPlannedQuantity(fbsWorkshopDispatchList.getPlannedQuantity());
+                    //获取最大排序
+                    QueryWrapper<FbsAbnormalWorkingHoursDescribe> queryWrapper2=new QueryWrapper<>();
+                    queryWrapper2.lambda().eq(FbsAbnormalWorkingHoursDescribe::getDelFlag,"0");
+                    queryWrapper2.lambda().eq(FbsAbnormalWorkingHoursDescribe::getAbnormalWorkingHoursId,fbsAbnormalWorkingHoursId);
+                    queryWrapper2.lambda().orderByDesc(FbsAbnormalWorkingHoursDescribe::getSort);
+                    List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList2=iFbsAbnormalWorkingHoursDescribeService.list(queryWrapper2);
+                    if(fbsAbnormalWorkingHoursDescribeList2!=null&&fbsAbnormalWorkingHoursDescribeList2.size()>0){
+                        fbsAbnormalWorkingHoursDescribe.setSort(fbsAbnormalWorkingHoursDescribeList2.get(0).getSort()+1);
+                    }else{
+                        fbsAbnormalWorkingHoursDescribe.setSort(1);
+                    }
+                    fbsAbnormalWorkingHoursDescribe.setDelFlag("0");
+                    //保存
+                    iFbsAbnormalWorkingHoursDescribeService.save(fbsAbnormalWorkingHoursDescribe);
+                }
+
+            }
+
+        }
+    }
+
     public BigDecimal getDecimalNew(String d){
         BigDecimal decimal= new BigDecimal(d);
         return decimal;

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

@@ -150,6 +150,39 @@ public class FbsAbnormalWorkingHours implements Serializable {
 	/**出勤工时*/
 	private Integer attendanceHours;
 
+	/**请假*/
+	private Integer lleave;
+	/**旷工*/
+	private Integer absenteeism;
+	/**离职*/
+	private Integer quit;
+	/**加班人数*/
+	private Integer overtimePeople;
+	/**培训-备注*/
+	private String trainMemo;
+	/**会议-备注*/
+	private String meetingMemo;
+	/**研发-备注*/
+	private String researchAndDevelopmentMemo;
+	/**5S-备注*/
+	private String fiveSMemo;
+	/**打包-备注*/
+	private String packMemo;
+	/**其他-备注*/
+	private String otherMemo;
+	/**质量-备注*/
+	private String qualityMemo;
+	/**物料-备注*/
+	private String materielMemo;
+	/**设备-备注*/
+	private String equipmentMemo;
+	/**能源-备注*/
+	private String energyMemo;
+	/**计划-备注*/
+	private String planMemo;
+	/**计划-备注*/
+	private String designMemo;
+
 	//异常工时描述集合
 	@TableField(exist = false)
 	private List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList;

+ 10 - 0
src/main/java/org/jeecg/modules/fbsAbnormalWorkingHours/entity/FbsAbnormalWorkingHoursDescribe.java

@@ -90,6 +90,16 @@ public class FbsAbnormalWorkingHoursDescribe implements Serializable {
 	private String type;
 	@Excel(name = "计划数量", width = 15)
 	private BigDecimal plannedQuantity;
+
+	/**生产订单号*/
+	private String productionOrderNumberName;
+	/**不良物料名称*/
+	private String materielName;
+	/**不良物料计划数量*/
+	private BigDecimal materielNumberOfTasks;
+	/**不良物料不良数量*/
+	private BigDecimal materielBadNumber;
+
 	//异常分类总数
 	@TableField(exist = false)
 	private String total;

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

@@ -14,6 +14,7 @@ import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.appInterface.service.IFbsWorkingStatisticsService;
 import org.jeecg.modules.fbsInventory.entity.FbsInventory;
 import org.jeecg.modules.fbsInventory.service.IFbsInventoryService;
 import org.jeecg.modules.fbsMomOrder.entity.FbsMomOrder;
@@ -68,7 +69,8 @@ public class FbsWorkshopDispatchListController {
 	 @Autowired
 	 IFbsMomOrderdetailService iFbsMomOrderdetailService;
 
-
+	 @Autowired
+	 IFbsWorkingStatisticsService iFbsWorkingStatisticsService;
 
 	/**
 	  * 分页列表查询
@@ -223,6 +225,7 @@ public class FbsWorkshopDispatchListController {
 			result.error500("未找到对应实体");
 		}else {
 			boolean ok = fbsWorkshopDispatchListService.updateById(fbsWorkshopDispatchList);
+
 			//TODO 返回false说明什么?
 			if(ok) {
 				result.success("修改成功!");
@@ -911,4 +914,25 @@ public class FbsWorkshopDispatchListController {
 		 return result;
 	 }
 
+	 /**
+	 * @Author chenchuang
+	 * @Description //TODO 计划报表
+	 * @Date 2021/1/21 16:38
+	 * @Param []
+	 * @return org.jeecg.common.api.vo.Result<org.jeecg.modules.fbsWorkshopDispatchList.entity.FbsWorkshopDispatchList>
+	 */
+	 @GetMapping(value = "/getPlanningReport")
+	 public Result<FbsWorkshopDispatchList> getPlanningReport(){
+	 	Result<FbsWorkshopDispatchList> result=new Result<>();
+		 try {
+			 FbsWorkshopDispatchList fbsWorkshopDispatchList=fbsWorkshopDispatchListService.getPlanningReport();
+			 result.setResult(fbsWorkshopDispatchList);
+			 result.success("操作成功");
+		 } catch (Exception e) {
+			 e.printStackTrace();
+			 result.error500("操作失败:"+e.getMessage());
+		 }
+		return result;
+	 }
+
 }

+ 6 - 2
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/entity/FbsWorkshopDispatchList.java

@@ -268,6 +268,10 @@ public class FbsWorkshopDispatchList implements Serializable {
 	//未完成累计工时
 	@TableField(exist = false)
 	private BigDecimal outstandingCumulativeWorkDoneTotal;
-
-
+	//是否显示颜色(用于计划报表)
+	@TableField(exist = false)
+	private List<String> isColor;
+	//显示每天
+	@TableField(exist =false)
+	private List<String> dayList;
 }

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

@@ -187,4 +187,7 @@ public interface IFbsWorkshopDispatchListService extends IService<FbsWorkshopDis
     * @return int
     */
     int updateBatchWorkShopDispatch(List<FbsWorkshopDispatchList> fbsWorkshopDispatchList);
+
+
+    FbsWorkshopDispatchList getPlanningReport();
 }

+ 72 - 0
src/main/java/org/jeecg/modules/fbsWorkshopDispatchList/service/impl/FbsWorkshopDispatchListServiceImpl.java

@@ -654,5 +654,77 @@ public class FbsWorkshopDispatchListServiceImpl extends ServiceImpl<FbsWorkshopD
         return fbsWorkshopDispatchListMapper.updateBatchWorkShopDispatch(fbsWorkshopDispatchList);
     }
 
+    @Override
+    public FbsWorkshopDispatchList getPlanningReport() {
+        FbsWorkshopDispatchList fbsWorkshopDispatchList=new FbsWorkshopDispatchList();
+        QueryWrapper<FbsWorkshopDispatchList> queryWrapper=new QueryWrapper<>();
+        queryWrapper.lambda().eq(FbsWorkshopDispatchList::getDelFlag,"0");
+        queryWrapper.apply("DATE_FORMAT( planned_start_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )");
+        queryWrapper.lambda().orderByAsc(FbsWorkshopDispatchList::getProductionOrderNumberName);
+        List<FbsWorkshopDispatchList> fbsWorkshopDispatchListList=fbsWorkshopDispatchListMapper.selectList(queryWrapper);
+        Calendar cale = Calendar.getInstance();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String firstday, lastday;
+        // 获取前月的第一天
+        cale = Calendar.getInstance();
+        cale.add(Calendar.MONTH, 0);
+        cale.set(Calendar.DAY_OF_MONTH, 1);
+        firstday = format.format(cale.getTime());
+        // 获取前月的最后一天
+        cale = Calendar.getInstance();
+        cale.add(Calendar.MONTH, 1);
+        cale.set(Calendar.DAY_OF_MONTH, 0);
+        lastday = format.format(cale.getTime());
+        //获取开始时间结束时间 当前日期前15天时间
+        //        String startTime = fmt.format(new Date().getTime()-14*24*60*60*1000);
+        //        String endTime = fmt.format(new Date());
+        String startTime = firstday;
+        String endTime = lastday;
+        List<Date> dateList=startDateAndEndDate(startTime,endTime);
+        //获取所有的日
+        List<String> dayList=new ArrayList<>();
+        for(Date date:dateList){
+            String day=String .format("%td", date);
+            dayList.add(day);
+        }
+        fbsWorkshopDispatchList.setDayList(dayList);
+        String year=String.format("%tY", dateList.get(0));
+        String mon=String .format("%tm", dateList.get(0));
+        fbsWorkshopDispatchList.setYear(year+"-"+mon);
+        //获取每个工单的计划天
+        SimpleDateFormat sdf  =new SimpleDateFormat("yyyy-MM-dd");
+        if(fbsWorkshopDispatchListList!=null&&fbsWorkshopDispatchListList.size()>0){
+            for(FbsWorkshopDispatchList fbsWorkshopDispatchList1:fbsWorkshopDispatchListList){
+                //获取在计划日之内
+                List<String> isColor=new ArrayList<>();
+                for(Date date:dateList){
+                    try {
+                        //日期
+                        String dateString=sdf.format(date);
+                        Date dateD=sdf.parse(dateString);
+                        //计划开始时间
+                        String plannedStartTimeString=sdf.format(fbsWorkshopDispatchList1.getPlannedStartTime());
+                        Date plannedStartTimeD=sdf.parse(plannedStartTimeString);
+                        //计划完成时间
+                        String plannedEndTimeString=sdf.format(fbsWorkshopDispatchList1.getPlannedEndTime());
+                        Date plannedEndTimeD=sdf.parse(plannedEndTimeString);
+                        //判断是否在计划日之内
+                        if(dateD.getTime()>=plannedStartTimeD.getTime()&&dateD.getTime()<=plannedEndTimeD.getTime()){
+                            isColor.add("1");
+                        }else{
+                            isColor.add("0");
+                        }
+
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                }
+                fbsWorkshopDispatchList1.setIsColor(isColor);
+            }
+            fbsWorkshopDispatchList.setFbsWorkshopDispatchListList(fbsWorkshopDispatchListList);
+        }
+        return fbsWorkshopDispatchList;
+    }
+
 
 }