From e0fac38b26845f25de479783e0c76cf12a5311e0 Mon Sep 17 00:00:00 2001 From: cl <418351270@qq.com> Date: 星期五, 19 一月 2024 10:31:28 +0800 Subject: [PATCH] 修改数据采集 --- guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java | 356 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 330 insertions(+), 26 deletions(-) diff --git a/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java b/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java index 5bf5e95..6a19b39 100644 --- a/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java +++ b/guns-vip-main/src/main/java/cn/stylefeng/guns/modular/om/productionOrdeInfo/controller/ProductionOrdeInfoController.java @@ -6,6 +6,13 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.afterturn.easypoi.view.PoiBaseView; import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo; +import cn.stylefeng.guns.modular.bs.locationInfo.entity.LocationInfo; +import cn.stylefeng.guns.modular.bs.locationInfo.service.LocationInfoService; +import cn.stylefeng.guns.modular.bs.materialInfo.entity.MaterialInfo; +import cn.stylefeng.guns.modular.bs.materialInfo.service.MaterialInfoService; +import cn.stylefeng.guns.modular.cm.passingStationCollection.entity.PassingStationCollection; +import cn.stylefeng.guns.modular.cm.passingStationCollection.model.result.PassingStationCollectionResult; +import cn.stylefeng.guns.modular.cm.passingStationCollection.service.PassingStationCollectionService; import cn.stylefeng.guns.modular.om.productionOrdeInfo.entity.ProductionOrdeInfo; import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.params.ProductionOrdeInfoParam; import cn.stylefeng.guns.modular.om.productionOrdeInfo.model.result.ProductionOrdeInfoResult; @@ -42,6 +49,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; +import java.util.stream.Collectors; /** @@ -362,16 +370,17 @@ @CrossOrigin @RequestMapping("/lineChart") public ResponseData lineChart(ProductionOrdeInfoParam productionOrdeInfoParam) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); List<String> list = new ArrayList(); List<Integer> planQtyList = new ArrayList(); List<Integer> actualQtyList = new ArrayList(); Map map = new HashMap<String,String>(); -// for (int i = 0; i < 7; i++) { -// String str = LocalDate.now().minusDays(i).toString(); - for (Object o : getWeek()) { + List<ProductionOrdeInfoResult> ColumnarDateList = productionOrdeInfoService.getColumnarDate(); + for (ProductionOrdeInfoResult result : ColumnarDateList) { + String s = format.format(result.getActualStartTime()); QueryWrapper<ProductionOrdeInfo> queryWrapper = new QueryWrapper<ProductionOrdeInfo>(); queryWrapper.select("SUM(plan_qty) as planQty,SUM(actual_qty) as actualQty"); - queryWrapper.apply("CONVERT ( VARCHAR ( 100 ), plan_start_time, 23 ) = {0}",o.toString() ); + queryWrapper.apply("CONVERT ( VARCHAR ( 100 ), actual_start_time, 23 ) = {0}",s); ProductionOrdeInfo one = productionOrdeInfoService.getOne(queryWrapper); if(one!=null){ if(one.getPlanQty()!=null){ @@ -388,37 +397,25 @@ planQtyList.add(0); actualQtyList.add(0); } - list.add(o.toString()); + list.add(s); } -// } map.put("category",list); map.put("lineData",planQtyList); map.put("barData",actualQtyList); return ResponseData.success(map); } - public static void main(String[] args) { -// List<String> weeks = getFormatDate("month"); -// System.out.println(JSONObject.toJSONString(weeks)); -// for (int i = 0; i < 7; i++) { -// System.out.println(LocalDate.now().minusDays(i)); -// } - System.out.println(getWeek()); - + @ResponseBody + @CrossOrigin + @RequestMapping("/findOrdrList") + public ResponseData findOrdrList(ProductionOrdeInfoParam productionOrdeInfoParam) { + ProductionOrdeInfoParam param = new ProductionOrdeInfoParam(); + param.setProductionLine("");//浜х嚎 + param.setOrderStatus("3");//宸ュ崟鐘舵�� + List<ProductionOrdeInfoResult> list = productionOrdeInfoService.findListBySpec(param); + return ResponseData.success(list); } - public static List getWeek(){ - List<String> list = new ArrayList<>(); - list.add(LocalDate.now().minusDays(6).toString()); - list.add(LocalDate.now().minusDays(5).toString()); - list.add(LocalDate.now().minusDays(4).toString()); - list.add(LocalDate.now().minusDays(3).toString()); - list.add(LocalDate.now().minusDays(2).toString()); - list.add(LocalDate.now().minusDays(1).toString()); - list.add(LocalDate.now().minusDays(0).toString()); - return list; - } - /** * 涓嬭浇excel瀵煎叆妯℃澘 @@ -540,6 +537,313 @@ return value.trim(); } + @Autowired + MaterialInfoService materialInfoService; + + @Autowired + PassingStationCollectionService passingStationCollectionService; + + @Autowired + LocationInfoService locationInfoService; + + /** + * 澶у睆杞﹂棿宸ュ崟淇℃伅鎺ュ彛 + * @return + */ + @ResponseBody + @CrossOrigin + @RequestMapping("/topData") + public ResponseData topData(ProductionOrdeInfoParam productionOrdeInfoParam) { + Map map = new HashMap<String,String>(); + ProductionOrdeInfo result = null; + //浣嗗墠宸ュ崟 + List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); + if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){ + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo())); + result = workOrderNo.get(0); + }else if(orderStatus.size()!=0){ + result = orderStatus.get(0); + }else { + List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive(); + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo())); + result = workOrderNo.get(0); + } + //浜у搧 + List<MaterialInfo> materialCode = materialInfoService.list(new QueryWrapper<MaterialInfo>().eq("material_code", result.getMaterialCode())); + Integer planQty = result.getPlanQty(); + Integer actualQty = result.getActualQty(); + Date date2 = new Date(); // 绗簩涓棩鏈� + long diffInMillis =result.getPlanEndTime().getTime() - date2.getTime(); //璁$畻涓や釜鏃ユ湡鐨勬绉掑樊 + long diffInHours = diffInMillis / (60 * 60 * 1000); // 灏嗘绉掑樊杞崲涓哄皬鏃跺樊 + List<PassingStationCollection> list = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>() + .eq("out_rs_sign", "2") + .eq("work_order_no", result.getWorkOrderNo()) + .eq("location_code", "OP1060") + ); + Integer NgNumber = list.size(); + map.put("workOrderNo",result.getWorkOrderNo()); + map.put("planQty",planQty); + map.put("actualQty",actualQty); + map.put("materialName",materialCode.get(0).getMaterialName()); + map.put("completionRate",Math.round((float) actualQty / planQty * 100)); + map.put("remainder",diffInHours); + map.put("NgNumber",NgNumber); + if(list.size() == 0){ + map.put("passRate","100"); + }else { + map.put("passRate",Math.round((float) NgNumber / actualQty * 100)); + } + return ResponseData.success(map); + } + + + @ResponseBody + @CrossOrigin + @RequestMapping("/centerLeftData") + public ResponseData centerLeftData(ProductionOrdeInfoParam productionOrdeInfoParam) { + Map map = new HashMap<String,String>(); + List categoryList = new ArrayList(); + List lineDataList = new ArrayList(); + List barDataList = new ArrayList(); + List percentageList = new ArrayList(); + percentageList.add(0); + + ProductionOrdeInfo result = null; + //浣嗗墠宸ュ崟 + List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); + if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){ + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo())); + result = workOrderNo.get(0); + }else if(orderStatus.size()!=0){ + result = orderStatus.get(0); + }else { + List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive(); + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo())); + result = workOrderNo.get(0); + } + List<PassingStationCollectionResult> resultList = passingStationCollectionService.centerLeftData(productionOrdeInfoParam.getWorkOrderNo()); + int unQuantity = passingStationCollectionService.getUnqualifiedQuantity(productionOrdeInfoParam.getWorkOrderNo()); + int variableInt = 0; + if(unQuantity == 0){ + map.put("category",getLocationList()); + map.put("barData",getZeroList()); + map.put("percentage",getPercentageList()); + + }else { + for (int i = 0; i < resultList.size(); i++) { + categoryList.add(resultList.get(i).getLocationCode()); + barDataList.add(resultList.get(i).getNum()); + variableInt+=Integer.valueOf(resultList.get(i).getNum()); + percentageList.add(Math.round((float) variableInt / unQuantity * 100)); + } + map.put("category",categoryList); + map.put("barData",barDataList); + map.put("lineData",lineDataList); + map.put("percentage",percentageList); + } + return ResponseData.success(map); +// Map map = new HashMap<String,String>(); +// List categoryList = new ArrayList(); +// List lineDataList = new ArrayList(); +// List barDataList = new ArrayList(); +// +// ProductionOrdeInfo result = null; +// //浣嗗墠宸ュ崟 +// List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); +// if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){ +// List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo())); +// result = workOrderNo.get(0); +// }else if(orderStatus.size()!=0){ +// result = orderStatus.get(0); +// }else { +// List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive(); +// List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo())); +// result = workOrderNo.get(0); +// } +// for (String o : getLocationList()) { +// List<PassingStationCollection> list = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>() +// .eq("location_code", o) +// .eq("out_rs_sign", "2") +// .eq("work_order_no",result.getWorkOrderNo()) +// ); +// List<PassingStationCollection> lineList = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>() +// .eq("location_code", o) +// .eq("work_order_no",result.getWorkOrderNo()) +// ); +// categoryList.add(o); +// barDataList.add(list.size()); +// lineDataList.add(lineList.size()); +// } +// map.put("category",categoryList); +// map.put("barData",barDataList); +// map.put("lineData",lineDataList); +// +// return ResponseData.success(map); + } + + @ResponseBody + @CrossOrigin + @RequestMapping("/bottomData") + public ResponseData bottomData(ProductionOrdeInfoParam productionOrdeInfoParam) { + Map map = new HashMap<String,String>(); + List unqualifiedList = new ArrayList(); + List qualifiedList = new ArrayList(); + List passRate = new ArrayList(); +// List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); +// ProductionOrdeInfo result = orderStatus.get(0); + ProductionOrdeInfo result = null; + //浣嗗墠宸ュ崟 + List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); + if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){ + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo())); + result = workOrderNo.get(0); + }else if(orderStatus.size()!=0){ + result = orderStatus.get(0); + }else { + List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive(); + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo())); + result = workOrderNo.get(0); + } + for (String o : getLocationList()) { + List<PassingStationCollection> list = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>() + .eq("location_code", o) + .eq("out_rs_sign", "2") + .eq("work_order_no",result.getWorkOrderNo()) + ); + List<PassingStationCollection> list1 = passingStationCollectionService.list(new QueryWrapper<PassingStationCollection>() + .eq("location_code", o) + .eq("work_order_no",result.getWorkOrderNo()) + ); + Integer unqualified = list.size(); + Integer qualified = list1.size()-list.size(); + unqualifiedList.add(unqualified); + qualifiedList.add(qualified); + if(unqualified == 0){ + passRate.add(100); + }else { + passRate.add(Math.round((float) qualified / result.getActualQty() * 100)); + } + } + map.put("unqualifiedList",unqualifiedList); + map.put("qualifiedList",qualifiedList); + map.put("passRate",passRate); + return ResponseData.success(map); + } + + @ResponseBody + @CrossOrigin + @RequestMapping("/centerRightData") + public ResponseData centerRightData(ProductionOrdeInfoParam productionOrdeInfoParam) { +// List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); +// ProductionOrdeInfo result = orderStatus.get(0); + ProductionOrdeInfo result = null; + //浣嗗墠宸ュ崟 + List<ProductionOrdeInfo> orderStatus = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("order_status", "3")); + if(productionOrdeInfoParam.getWorkOrderNo() != null && !productionOrdeInfoParam.getWorkOrderNo().equals("")){ + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", productionOrdeInfoParam.getWorkOrderNo())); + result = workOrderNo.get(0); + }else if(orderStatus.size()!=0){ + result = orderStatus.get(0); + }else { + List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive(); + List<ProductionOrdeInfo> workOrderNo = productionOrdeInfoService.list(new QueryWrapper<ProductionOrdeInfo>().eq("work_order_no", results.get(0).getWorkOrderNo())); + result = workOrderNo.get(0); + } + Integer targetNumber = 70; + List resultList = new ArrayList(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String format1 = format.format(new Date()); + String paramPrefix = format1+" "; + for (String s : getCenterRightSpit()) { + List itemList = new ArrayList(); + int outTotal = passingStationCollectionService.bigCenterRightTable(paramPrefix+s+":00",paramPrefix+s.substring(0,1)+":59:59",null,result.getWorkOrderNo()); + int i = passingStationCollectionService.bigCenterRightTable(paramPrefix+s+":00",paramPrefix+s.substring(0,1)+":59:59","1",result.getWorkOrderNo()); + if(outTotal<targetNumber){ + itemList.add(boldText(s)); + itemList.add(boldText(targetNumber.toString())); + itemList.add(boldText(String.valueOf(outTotal))); + itemList.add(boldText(String.valueOf(targetNumber-outTotal))); + itemList.add(boldText(Math.round((float) i / outTotal * 100)+"%")); + }else { + itemList.add(s); + itemList.add(targetNumber); + itemList.add(outTotal); + itemList.add(targetNumber-outTotal); + itemList.add(Math.round((float) i / outTotal * 100)+"%"); + } + resultList.add(itemList); + } + return ResponseData.success(resultList); + } + + @ResponseBody + @CrossOrigin + @RequestMapping("/orderDescListFive") + public ResponseData orderDescListFive() { + List list = new ArrayList(); + List<ProductionOrdeInfoResult> results = productionOrdeInfoService.orderDescListFive(); + for (ProductionOrdeInfoResult result : results) { + Map itemMap = new HashMap(); + itemMap.put("value",result.getWorkOrderNo()); + itemMap.put("label",result.getWorkOrderNo()); + list.add(itemMap); + } + return ResponseData.success(list); + } + + public static List<String> getLocationList(){ + List<String> locationList = new ArrayList<>(); + locationList.add("OP070"); + locationList.add("OP100"); + locationList.add("OP140"); + locationList.add("OP150"); + locationList.add("EOP080"); + locationList.add("EOP090"); + return locationList; + } + + public static List<String> getZeroList(){ + List<String> locationList = new ArrayList<>(); + locationList.add("0"); + locationList.add("0"); + locationList.add("0"); + locationList.add("0"); + locationList.add("0"); + locationList.add("0"); + return locationList; + } + + public static List<String> getPercentageList(){ + List<String> locationList = new ArrayList<>(); + locationList.add("100"); + locationList.add("100"); + locationList.add("100"); + locationList.add("100"); + locationList.add("100"); + locationList.add("100"); + return locationList; + } + + + public static List<String> getCenterRightSpit(){ + List<String> locationList = new ArrayList<>(); + locationList.add("8:00"); + locationList.add("9:00"); + locationList.add("10:00"); + locationList.add("11:00"); + locationList.add("12:00"); + locationList.add("13:00"); + locationList.add("14:00"); + locationList.add("15:00"); + locationList.add("16:00"); + locationList.add("17:00"); + return locationList; + } + + public static String boldText(String param){ + return "<span style='font-size: 20px' class='colorRed'>"+param+"</span>"; + } + } -- Gitblit v1.9.3