From 057d4df78bcc5b34ca7c6897918946c4a9e65d18 Mon Sep 17 00:00:00 2001 From: Fancy <Fancy.fx@outlook.com> Date: 星期二, 14 一月 2025 13:52:06 +0800 Subject: [PATCH] queryStatisticOrder --- pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java | 152 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 133 insertions(+), 19 deletions(-) diff --git a/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java b/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java index 1150855..34cfb76 100644 --- a/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java +++ b/pms-parent/pms-web-other/src/main/java/com/dy/pmsOther/screen/ScreenReportSv.java @@ -1,21 +1,33 @@ package com.dy.pmsOther.screen; +import cn.hutool.core.date.DateTime; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.dy.common.springUtil.SpringContextUtil; +import com.dy.pmsGlobal.daoOth.OthStatisticWorkloadMapper; import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper; +import com.dy.pmsGlobal.daoPr.PrOrderItemMapper; +import com.dy.pmsGlobal.daoPr.PrOrderMapper; import com.dy.pmsGlobal.daoSta.*; +import com.dy.pmsGlobal.pojoPr.PrOrder; +import com.dy.pmsGlobal.pojoPr.PrOrderItem; import com.dy.pmsGlobal.pojoSta.*; +import com.dy.pmsGlobal.util.UserUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAccessor; import java.util.Date; import java.util.HashMap; @@ -33,6 +45,17 @@ private StaDeviceProductionLogMapper deviceProductionLogDao; private StaRepairInfoMapper repairInfoDao; private PrAssemblyPlanMapper assemblyPlanDao; + private StaAssemblyWorkLastMapper assemblyWorkLastDao; + + private OthStatisticWorkloadMapper workloadDao; + private PrOrderMapper orderDao; + private OthStatisticWorkloadMapper statisticWorkDao; + + @Autowired + public void setOrderDao(PrOrderMapper orderDao) { + this.orderDao = orderDao; + } + @Autowired public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) { this.deviceLastDao = deviceLastDao; @@ -59,8 +82,23 @@ } @Autowired + public void setAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao) { + this.assemblyWorkLastDao = assemblyWorkLastDao; + } + + @Autowired public void setRepairInfoDao(StaRepairInfoMapper repairInfoDao) { this.repairInfoDao = repairInfoDao; + } + + @Autowired + public void setWorkloadDao(OthStatisticWorkloadMapper workloadDao) { + this.workloadDao = workloadDao; + } + + @Autowired + public void setStatisticWorkDao(OthStatisticWorkloadMapper statisticWorkDao) { + this.statisticWorkDao = statisticWorkDao; } public Map<String, Object> getDeviceInfo(String deviceNo) { @@ -72,7 +110,7 @@ if (deviceLast == null) { return null; } - Map<String, Object> deviceInfo =new HashMap<>(); + Map<String, Object> deviceInfo = new HashMap<>(); deviceInfo.put("deviceInfo", deviceLast); //鏌ヨ璁惧鏃ュ織 List<StaDeviceProductionLog> log = deviceProductionLogDao.selectByDeviceNo(deviceNo); @@ -90,21 +128,21 @@ } public List<StaDeviceProductionLog> queryDeviceLog(String startTime, String endTime) { - Date startDt = parseToDate(startTime,0); - Date endDt = parseToDate(endTime,1); + Date startDt = parseToDate(startTime, 0); + Date endDt = parseToDate(endTime, 1); //鏌ヨ璁惧鏃ュ織 - List<StaDeviceProductionLog> log = deviceProductionLogDao.selectProductLog("",startDt,endDt); + List<StaDeviceProductionLog> log = deviceProductionLogDao.selectProductLog("", startDt, endDt); return log; } - private Date parseToDate(String strDt,long offDays) { - LocalDateTime dt = LocalDateTime.of(LocalDate.now().plusDays(offDays), LocalTime.of(0,0,0)); // 浠婂ぉ24鐐� + private Date parseToDate(String strDt, long offDays) { + LocalDateTime dt = LocalDateTime.of(LocalDate.now().plusDays(offDays), LocalTime.of(0, 0, 0)); // 浠婂ぉ24鐐� DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); if (strDt.matches("\\d{4}(-\\d{2}){2} \\d{2}(:\\d{2}){2}")) {//2024-08-15 00:00:00 - dt = LocalDateTime.parse(strDt,dtf); - }else if (strDt.matches("\\d{4}(-\\d{2}){2}")){ - dt = LocalDateTime.of(LocalDate.parse(strDt,dtf1), LocalTime.of(0,0,0)); + dt = LocalDateTime.parse(strDt, dtf); + } else if (strDt.matches("\\d{4}(-\\d{2}){2}")) { + dt = LocalDateTime.of(LocalDate.parse(strDt, dtf1), LocalTime.of(0, 0, 0)); } Date date = Date.from(dt.atZone(ZoneId.systemDefault()).toInstant()); return date; @@ -112,30 +150,106 @@ public List<JSONObject> queryPlanList() { List<JSONObject> list = assemblyPlanDao.queryPlanList(); - Map<String, JSONObject> map = new ConcurrentHashMap<>(); // 浣跨敤骞跺彂瀹夊叏鐨凪ap - for(JSONObject item:list){ + /*Map<String, JSONObject> map = new ConcurrentHashMap<>(); // 浣跨敤骞跺彂瀹夊叏鐨凪ap + for (JSONObject item : list) { String planId = String.valueOf(item.getObj("planId")); JSONObject innerObject = new JSONObject() .set("nodeId", String.valueOf(item.getObj("nodeId"))) .set("content", item.getObj("content")); - if(map.containsKey(planId)){ - JSONArray array = (JSONArray)map.get(planId).get("nodes"); + if (map.containsKey(planId)) { + JSONArray array = (JSONArray) map.get(planId).get("nodes"); array.add(innerObject); - }else{ + } else { JSONArray array = new JSONArray(); array.add(innerObject); - JSONObject outObject= new JSONObject() + JSONObject outObject = new JSONObject() .set("planId", planId) .set("planName", item.getObj("planName")) .set("nodes", array); - map.put(planId,outObject); + map.put(planId, outObject); } } - return map.values().stream().collect(Collectors.toList()); + return map.values().stream().collect(Collectors.toList());*/ + return list; + } + public List<JSONObject> queryWorkList() { + List<JSONObject> list = assemblyWorkLastDao.queryWorkList(); + return list; } + //娌″啓瀹� + public List<JSONObject> queryOrderList() { + List<JSONObject> list = assemblyPlanDao.queryPlanList(); + /* Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(); + List<PrOrder> orderList = orderDao.selectAll(params); + for (PrOrder prOrder : orderList) { + changeRate(prOrder); + }*/ + return null; + } + private void changeRate(PrOrder prOrder) { + if (prOrder != null && prOrder.items != null) { + List<PrOrderItem> items = prOrder.items; + for (int i = 1; i < items.size(); i++) { + for (int j = i - 1; j >= 0; j--) { + //鎷跨潃i渚濇璺熶笂涓�涓瘮杈�,濡傛灉浜у搧鐩稿悓,鍒欎笂涓�涓褰昪omplete_number - number 濡傛灉 > 0 鍒嗙粰i ,濡傛灉 < 0 鍒欏皢 complete_number 缃负0 + if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) { + int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber(); + if (remainNumber > 0) { + items.get(j).setCompleteNumber(items.get(j).getNumber()); + items.get(j).setCompleteRate("100.00%"); + items.get(i).setCompleteNumber(remainNumber); + BigDecimal remainBig = new BigDecimal(remainNumber * 100); + BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber()); + BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP); + items.get(i).setCompleteRate(result.toString() + "%"); + } else { + items.get(i).setCompleteNumber(0); + items.get(i).setCompleteRate("0.00%"); + } + break; + } + } + } + } + } + public List<JSONObject> queryTopError() { + Date startDt = Date.from(LocalDateTime.of(LocalDate.now().minusDays(2000), LocalTime.of(0, 0, 0)).atZone(ZoneId.systemDefault()).toInstant()); + Date endDt = new Date(); + List<JSONObject> list = deviceProductionLogDao.queryTopError(startDt, endDt); + return list; + } + public JSONObject queryAttendUser() { + Date startDt = Date.from(LocalDateTime.of(LocalDate.now().minusDays(2000), LocalTime.of(0, 0, 0)).atZone(ZoneId.systemDefault()).toInstant()); + Date endDt = new Date(); + Date todayDt = Date.from(LocalDateTime.of(LocalDate.now(), LocalTime.of(0, 0, 0)).atZone(ZoneId.systemDefault()).toInstant()); + List<JSONObject> list = assemblyWorkLastDao.queryAttendUser(startDt, endDt,todayDt); + if(list.size() == 0){ + JSONObject obj = new JSONObject(); + obj.set("require_attend", "0"); + obj.set("actual_attend", "0"); + return obj; + } + return list.get(0); + } - - + public List<JSONObject> queryStatisticWork() { + Date startDt = Date.from(LocalDateTime.of(LocalDate.now(), LocalTime.of(0, 0, 0)).atZone(ZoneId.systemDefault()).toInstant()); + Date endDt = new Date(); + List<JSONObject> list = statisticWorkDao.queryStatisticWork(startDt, endDt); + return list; + } + public JSONObject queryStatisticOrder() { + List<JSONObject> list = orderDao.queryStatisticOrder(); + if(list.size() == 0){ + JSONObject obj = new JSONObject(); + obj.set("total", "0"); + obj.set("year_total", "0"); + obj.set("complete", "0"); + obj.set("uncomplete", "0"); + return obj; + } + return list.get(0); + } } -- Gitblit v1.8.0