From 9edf649b72fb60a6758cafa608ddcb6eecf034c2 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Sat, 16 Dec 2023 13:01:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/utils/DateTimeHelper.java | 21 +- .../controller/LargeScreenController.java | 56 ++++ .../sgzb/largeScreen/domain/CarUseVo.java | 20 ++ .../largeScreen/domain/CommonConstants.java | 20 ++ .../largeScreen/domain/EquipmentDisVo.java | 23 ++ .../sgzb/largeScreen/domain/MaTypeDo.java | 26 ++ .../largeScreen/domain/MaterialDataVo.java | 17 + .../sgzb/largeScreen/domain/ParamsDto.java | 24 ++ .../largeScreen/domain/ScrapAnalysisVo.java | 34 ++ .../largeScreen/domain/TotalOwnershipVo.java | 30 ++ .../largeScreen/mapper/LargeScreenMapper.java | 84 +++++ .../service/ILargeScreenService.java | 73 +++++ .../service/impl/LargeScreenServiceImpl.java | 299 +++++++++++++++++- .../sgzb/largeScreen/util/CommonUtil.java | 256 +++++++++++++++ .../mapper/largeScreen/LargeScreenMapper.xml | 266 ++++++++++++++++ 15 files changed, 1240 insertions(+), 9 deletions(-) create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CarUseVo.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CommonConstants.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/EquipmentDisVo.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaTypeDo.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaterialDataVo.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ParamsDto.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ScrapAnalysisVo.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/TotalOwnershipVo.java create mode 100644 sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/util/CommonUtil.java diff --git a/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/DateTimeHelper.java b/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/DateTimeHelper.java index c6371e35..f956153b 100644 --- a/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/DateTimeHelper.java +++ b/sgzb-common/sgzb-common-core/src/main/java/com/bonus/sgzb/common/core/utils/DateTimeHelper.java @@ -581,13 +581,11 @@ public class DateTimeHelper { Calendar thisMonthFirstDateCal = Calendar.getInstance(); thisMonthFirstDateCal.set(Calendar.DAY_OF_MONTH, 1); String thisMonthFirstTime = format.format(thisMonthFirstDateCal.getTime()); - System.out.println("本月起始:" + thisMonthFirstTime); // 本月末尾 Calendar thisMonthEndDateCal = Calendar.getInstance(); thisMonthEndDateCal.set(Calendar.DAY_OF_MONTH, thisMonthEndDateCal.getActualMaximum(Calendar.DAY_OF_MONTH)); String thisMonthEndTime = format.format(thisMonthEndDateCal.getTime()); - System.out.println("本月末尾:" + thisMonthEndTime); map.put("beginDate", thisMonthFirstTime); map.put("endDate", thisMonthEndTime); @@ -742,6 +740,11 @@ public class DateTimeHelper { return lastDayOfMonth; } + public static void main(String[] args) { + System.err.println(getFisrtDayOfMonth(2023,11)); + System.err.println(getLastDayOfMonth(2023,11)); + } + /** * @return int * @description 获取当前月的天数 @@ -854,5 +857,17 @@ public class DateTimeHelper { } } - + public static List getYearMonth() { + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + List list = new ArrayList<>(); + for (int i = 1; i < 13; i++) { + String month = i + ""; + if (i < 10) { + month = "0" + i; + } + list.add(year + "-" + month); + } + return list; + } } diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/controller/LargeScreenController.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/controller/LargeScreenController.java index 5014f00e..2f242d6f 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/controller/LargeScreenController.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/controller/LargeScreenController.java @@ -4,6 +4,7 @@ import com.bonus.sgzb.common.core.web.controller.BaseController; import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.enums.BusinessType; +import com.bonus.sgzb.largeScreen.domain.ParamsDto; import com.bonus.sgzb.largeScreen.service.ILargeScreenService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -27,4 +28,59 @@ public class LargeScreenController extends BaseController { public AjaxResult getMaterialReqData() { return service.getMaterialReqData(); } + + @Log(title = "退料数据", businessType = BusinessType.QUERY) + @PostMapping("getMaterialReturnData") + public AjaxResult getMaterialReturnData() { + return service.getMaterialReturnData(); + } + + @Log(title = "设备分布图",businessType = BusinessType.QUERY) + @PostMapping("getEquipmentDisByMap") + public AjaxResult getEquipmentDisByMap(ParamsDto dto) { + return service.getEquipmentDisByMap(dto); + } + + @Log(title = "施工机具/安全工器具总保有量",businessType = BusinessType.QUERY) + @PostMapping("getTotalOwnership") + public AjaxResult getTotalOwnership() { + return service.getTotalOwnership(); + } + + @Log(title = "当月报废分析", businessType = BusinessType.QUERY) + @PostMapping("getScrapAnalysisByMonth") + public AjaxResult getScrapAnalysisByMonth(ParamsDto dto) { + return service.getScrapAnalysisByMonth(dto); + } + + @Log(title = "新购验收入库分析",businessType = BusinessType.QUERY) + @PostMapping("getAcceptanceStorage") + public AjaxResult getAcceptanceStorage(ParamsDto dto) { + return service.getAcceptanceStorage(dto); + } + + @Log(title = "当月领料分析", businessType = BusinessType.QUERY) + @PostMapping("getPickingAnalysisByMonth") + public AjaxResult getPickingAnalysisByMonth(ParamsDto dto) { + return service.getPickingAnalysisByMonth(dto); + } + + @Log(title = "当月退料分析", businessType = BusinessType.QUERY) + @PostMapping("getMaterialReturnByMonth") + public AjaxResult getMaterialReturnByMonth(ParamsDto dto) { + return service.getMaterialReturnByMonth(dto); + } + + @Log(title = "当月维修分析", businessType = BusinessType.QUERY) + @PostMapping("getMaintenanceByMonth") + public AjaxResult getMaintenanceByMonth(ParamsDto dto) { + return service.getMaintenanceByMonth(dto); + } + + @Log(title = "当月车辆使用", businessType = BusinessType.QUERY) + @PostMapping("getCarUseByMonth") + public AjaxResult getCarUseByMonth() { + return service.getCarUseByMonth(); + } + } diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CarUseVo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CarUseVo.java new file mode 100644 index 00000000..b70dd52f --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CarUseVo.java @@ -0,0 +1,20 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 车辆使用-VO + */ +@Data +public class CarUseVo { + + /** 车牌号*/ + private String carNo; + + /** 使用频次油耗*/ + private int useNum; + + /** 油耗*/ + private double squander; +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CommonConstants.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CommonConstants.java new file mode 100644 index 00000000..15739b19 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/CommonConstants.java @@ -0,0 +1,20 @@ +package com.bonus.sgzb.largeScreen.domain; + + +/** + * @author 10488 + * 常量信息 + */ +public class CommonConstants { + + /** 施工机具*/ + public static final String SGJJ = "施工机具"; + /** 安全工器具*/ + public static final String AQGQJ = "安全工器具"; + /** 机具分公司*/ + public static final String JJ = "机具分公司"; + /** 调试分公司*/ + public static final String TS = "调试分公司"; + + +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/EquipmentDisVo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/EquipmentDisVo.java new file mode 100644 index 00000000..2f1017b5 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/EquipmentDisVo.java @@ -0,0 +1,23 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 设备分布-VO + */ +@Data +public class EquipmentDisVo { + + /** 经度*/ + private String lon; + + /** 维度*/ + private String lat; + + /** 工程名称*/ + private String lotName; + + /** 机具类型名称*/ + private String typeName; +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaTypeDo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaTypeDo.java new file mode 100644 index 00000000..474272f1 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaTypeDo.java @@ -0,0 +1,26 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 机具类型-DO + */ +@Data +public class MaTypeDo { + + /** 机具类型名称*/ + private String typeName; + + /** 数量*/ + private double num; + + /** 管理方式(0编号 1计数)*/ + private String manageType; + + /** 机具分公司id*/ + private String companyId; + + /** 机具分公司名称*/ + private String companyName; +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaterialDataVo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaterialDataVo.java new file mode 100644 index 00000000..1b468f5e --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/MaterialDataVo.java @@ -0,0 +1,17 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 报废 + */ +@Data +public class MaterialDataVo { + + /** 往来单位名称*/ + private String unitName; + + /** 数量*/ + private double num; +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ParamsDto.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ParamsDto.java new file mode 100644 index 00000000..3e0d57e2 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ParamsDto.java @@ -0,0 +1,24 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 接受前端-参数 + */ +@Data +public class ParamsDto { + + /** 1.施工机具 2.安全工器具*/ + private String maType; + + private String maTypeName; + + /** 开始日期*/ + private String startDate; + /** 结束日期*/ + private String endDate; + + /** 类型*/ + private String type; +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ScrapAnalysisVo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ScrapAnalysisVo.java new file mode 100644 index 00000000..53009462 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/ScrapAnalysisVo.java @@ -0,0 +1,34 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 当月退料分析-VO + */ +@Data +public class ScrapAnalysisVo { + + /** 计划退料数量*/ + private double planNum; + + /** 实际退料数量*/ + private double realityNum; + + /** 维修总量*/ + private double repairNum; + /** 维修合格*/ + private double repairedNum; + /** 维修报废数量*/ + private double scrapNum; + + /** 数量*/ + private double num; + + /** 数量2*/ + private double num2; + + /** 机具类型名称*/ + private String typeName; + +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/TotalOwnershipVo.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/TotalOwnershipVo.java new file mode 100644 index 00000000..bc83f550 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/domain/TotalOwnershipVo.java @@ -0,0 +1,30 @@ +package com.bonus.sgzb.largeScreen.domain; + +import lombok.Data; + +/** + * @author 10488 + * 总保有量-VO + */ +@Data +public class TotalOwnershipVo { + + /** 总保有量*/ + private int totalOwnershipNum; + + /** 在库机具/工器具*/ + private int stockNum; + + /** 待入库机具/工器具*/ + private int storedNum; + + /** 在用机具/工器具*/ + private int useNum; + + /** 在修机具/工器具*/ + private int repairNum; + + /** 报废机具/工器具*/ + private int scrapNum; + +} diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/mapper/LargeScreenMapper.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/mapper/LargeScreenMapper.java index 32e789b3..c3e9dd29 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/mapper/LargeScreenMapper.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/mapper/LargeScreenMapper.java @@ -1,11 +1,95 @@ package com.bonus.sgzb.largeScreen.mapper; +import com.bonus.sgzb.largeScreen.domain.*; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Map; + /** * @author 10488 * 大屏 */ @Repository("LargeScreenMapper") public interface LargeScreenMapper { + + /** + * @param nowDate + * @return List + * @description 领料数据 + * @author cwchen + * @date 2023/12/13 10:56 + */ + List getMaterialReqData(String nowDate); + + /** + * @param nowDate + * @return List + * @description 退料数据 + * @author cwchen + * @date 2023/12/13 14:24 + */ + List getMaterialReturnData(String nowDate); + + /** + * @param dto + * @return List + * @description 当月领料分析 + * @author cwchen + * @date 2023/12/15 15:57 + */ + List getPickingAnalysisByMonth(ParamsDto dto); + + /** + * @param dto + * @return List + * @description 设备分布 + * @author cwchen + * @date 2023/12/13 15:04 + */ + List getEquipmentDisByMap(ParamsDto dto); + + /** + * @param dto + * @return List + * @description 新购验收入库分析 + * @author cwchen + * @date 2023/12/14 16:06 + */ + List> getAcceptanceStorage(ParamsDto dto); + + /** + * @param dto + * @return List + * @description 当月报废分析 + * @author cwchen + * @date 2023/12/15 9:46 + */ + List getScrapAnalysisByMonth(ParamsDto dto); + + /** + * @param dto + * @return List + * @description 当月退料分析 + * @author cwchen + * @date 2023/12/15 14:31 + */ + List getMaterialReturnByMonth(ParamsDto dto); + + /** + * @param dto + * @return List + * @description 当月维修分析 + * @author cwchen + * @date 2023/12/15 15:12 + */ + List getMaintenanceByMonth(ParamsDto dto); + + /** + * @param dto + * @description 施工机具/工器具总保有量 + * @author cwchen + * @date 2023/12/15 18:57 + */ + List getTotalOwnership(ParamsDto dto); } diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/ILargeScreenService.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/ILargeScreenService.java index 145f83ca..aed55273 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/ILargeScreenService.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/ILargeScreenService.java @@ -1,6 +1,7 @@ package com.bonus.sgzb.largeScreen.service; import com.bonus.sgzb.common.core.web.domain.AjaxResult; +import com.bonus.sgzb.largeScreen.domain.ParamsDto; /** * @author 10488 @@ -15,4 +16,76 @@ public interface ILargeScreenService { * @date 2023/12/11 15:34 */ AjaxResult getMaterialReqData(); + + /** + * @return AjaxResult + * @description 退料数据 + * @author cwchen + * @date 2023/12/11 17:00 + */ + AjaxResult getMaterialReturnData(); + + /** + * @return AjaxResult + * @description 当月报废分析 + * @author cwchen + * @date 2023/12/12 9:28 + */ + AjaxResult getScrapAnalysisByMonth(ParamsDto dto); + + /** + * @return AjaxResult + * @description 设备分布图 + * @author cwchen + * @date 2023/12/13 14:56 + */ + AjaxResult getEquipmentDisByMap(ParamsDto dto); + + /** + * @return AjaxResult + * @description 新购验收入库分析 + * @author cwchen + * @date 2023/12/12 9:34 + */ + AjaxResult getAcceptanceStorage(ParamsDto dto); + + /** + * @return AjaxResult + * @description 当月领料分析 + * @author cwchen + * @date 2023/12/12 9:36 + */ + AjaxResult getPickingAnalysisByMonth(ParamsDto dto); + + /** + * @return AjaxResult + * @description 当月退料分析 + * @author cwchen + * @date 2023/12/12 9:40 + */ + AjaxResult getMaterialReturnByMonth(ParamsDto dto); + + /** + * @return AjaxResult + * @description 当月维修分析 + * @author cwchen + * @date 2023/12/12 9:42 + */ + AjaxResult getMaintenanceByMonth(ParamsDto dto); + + /** + * @return AjaxResult + * @description 施工机具/安全工器具总保有量 + * @author cwchen + * @date 2023/12/13 15:26 + */ + AjaxResult getTotalOwnership(); + + /** + * @return AjaxResult + * @description 当月车辆使用分析 + * @author cwchen + * @date 2023/12/13 15:40 + */ + AjaxResult getCarUseByMonth(); } diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/impl/LargeScreenServiceImpl.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/impl/LargeScreenServiceImpl.java index e040573a..62cec8c9 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/impl/LargeScreenServiceImpl.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/service/impl/LargeScreenServiceImpl.java @@ -1,31 +1,318 @@ package com.bonus.sgzb.largeScreen.service.impl; +import com.bonus.sgzb.common.core.utils.DateTimeHelper; import com.bonus.sgzb.common.core.web.domain.AjaxResult; +import com.bonus.sgzb.largeScreen.domain.*; import com.bonus.sgzb.largeScreen.mapper.LargeScreenMapper; import com.bonus.sgzb.largeScreen.service.ILargeScreenService; +import com.bonus.sgzb.largeScreen.util.CommonUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.HashMap; +import java.util.*; /** * @author 10488 * 大屏 */ @Service("ILargeScreenService") +@Slf4j public class LargeScreenServiceImpl implements ILargeScreenService { @Resource(name = "LargeScreenMapper") private LargeScreenMapper mapper; + @Autowired + private CommonUtil commonUtil; + @Override public AjaxResult getMaterialReqData() { HashMap map = new HashMap<>(2); - int a = 1/0; - // 施工工具今日出库 - map.put("num", 330); - // 工器具今日出库 - map.put("num2", 201); + // 施工工具、安全工器具数量 + int num = 0, num2 = 0; + try { + List list = mapper.getMaterialReqData(DateTimeHelper.getNowDate()); + List valueList = commonUtil.totalValue3(list); + num = valueList.get(0); + num2 = valueList.get(1); + } catch (Exception e) { + log.error("领料数据", e); + } + map.put("num", num); + map.put("num2", num2); return AjaxResult.success(map); } + + @Override + public AjaxResult getMaterialReturnData() { + HashMap map = new HashMap<>(2); + // 施工工具、安全工器具数量 + int num = 0, num2 = 0; + try { + List list = mapper.getMaterialReturnData(DateTimeHelper.getNowDate()); + List valueList = commonUtil.totalValue3(list); + num = valueList.get(0); + num2 = valueList.get(1); + } catch (Exception e) { + log.error("退料数据", e); + } + map.put("num", num); + map.put("num2", num2); + return AjaxResult.success(map); + } + + @Override + public AjaxResult getEquipmentDisByMap(ParamsDto dto) { + List list = new ArrayList<>(); + try { + + } catch (Exception e) { + log.error("设备分布", e); + } + return AjaxResult.success(list); + } + + @Override + public AjaxResult getTotalOwnership() { + List list = new ArrayList<>(); + ParamsDto dto = new ParamsDto(); + try { + // 施工机具 + + // 施工机具-在库 + dto.setMaTypeName(CommonConstants.SGJJ); + dto.setType("1"); + List zkValueList = mapper.getTotalOwnership(dto); + + // 安全工器具 + TotalOwnershipVo vo2 = new TotalOwnershipVo(); + // 工器具-在库 + dto.setMaTypeName(CommonConstants.AQGQJ); + dto.setType("1"); + List zkValueList2 = mapper.getTotalOwnership(dto); + + vo2.setTotalOwnershipNum(2000); + vo2.setStockNum(220); + vo2.setStoredNum(280); + vo2.setUseNum(600); + vo2.setRepairNum(450); + vo2.setScrapNum(450); + list.add(vo2); + } catch (Exception e) { + list.removeAll(list); + TotalOwnershipVo vo = new TotalOwnershipVo(); + TotalOwnershipVo vo2 = new TotalOwnershipVo(); + list.add(vo); + list.add(vo2); + log.error("施工机具总保有量/安全工器具总保有量", e); + } + return AjaxResult.success(list); + } + + /** + * @param maTypeName + * @return TotalOwnershipVo + * @description 保有量统计 + * @author cwchen + * @date 2023/12/15 19:33 + */ + public TotalOwnershipVo countNum(String maType,String maTypeName) { + TotalOwnershipVo vo = new TotalOwnershipVo(); + ParamsDto dto = new ParamsDto(); + dto.setMaType(maType); + dto.setMaTypeName(maTypeName); + // 在库数量 + dto.setType("1"); + List zkValueList = mapper.getTotalOwnership(dto); + Integer zkValue = commonUtil.setZKData(zkValueList); + vo.setStockNum(zkValue); + // 待入库数量 + dto.setType("2"); + List drkValueList = mapper.getTotalOwnership(dto); + return vo; + } + + @Override + public AjaxResult getScrapAnalysisByMonth(ParamsDto dto) { + List nameList = new ArrayList<>(); + List valueList = new ArrayList<>(); + List valueList2 = new ArrayList<>(); + HashMap map = new HashMap<>(3); + try { + dto.setType("1"); + dto.setMaTypeName(Objects.equals("1", dto.getMaType()) ? CommonConstants.SGJJ : Objects.equals("2", dto.getMaType()) ? CommonConstants.AQGQJ : null); + List lyList = mapper.getScrapAnalysisByMonth(dto); + dto.setType("2"); + List bfList = mapper.getScrapAnalysisByMonth(dto); + List objectList = commonUtil.setScrapAnalysisData(lyList, bfList); + nameList = (List) objectList.get(0); + valueList = (List) objectList.get(1); + valueList2 = (List) objectList.get(2); + } catch (Exception e) { + log.error("当月报废分析", e); + } + map.put("nameList", nameList); + map.put("valueList", valueList); + map.put("valueList2", valueList2); + return AjaxResult.success(map); + } + + @Override + public AjaxResult getAcceptanceStorage(ParamsDto dto) { + HashMap map = new HashMap<>(3); + List yearMonthList = DateTimeHelper.getYearMonth(); + List valueList = new ArrayList<>(); + List valueList2 = new ArrayList<>(); + dto.setMaTypeName(Objects.equals("1", dto.getMaType()) ? CommonConstants.SGJJ : Objects.equals("2", dto.getMaType()) ? CommonConstants.AQGQJ : null); + try { + for (String date : yearMonthList) { + String year = date.substring(0, 4); + String month = date.substring(5, 7); + // 验收数量 + dto.setType("1"); + dto.setStartDate(DateTimeHelper.getFisrtDayOfMonth(Integer.parseInt(year), Integer.parseInt(month))); + dto.setEndDate(DateTimeHelper.getLastDayOfMonth(Integer.parseInt(year), Integer.parseInt(month))); + List> checkList = mapper.getAcceptanceStorage(dto); + valueList.add(commonUtil.totalValue(checkList, dto.getMaType())); + // 入库数量 + dto.setType("2"); + List> warehousingList = mapper.getAcceptanceStorage(dto); + valueList2.add(commonUtil.totalValue(warehousingList, dto.getMaType())); + } + } catch (Exception e) { + log.error("新购验收入库分析", e); + valueList.removeAll(valueList); + valueList2.removeAll(valueList2); + yearMonthList.forEach(item -> { + valueList.add(0); + valueList2.add(0); + }); + } + map.put("nameList", yearMonthList); + map.put("valueList", valueList); + map.put("valueList2", valueList2); + return AjaxResult.success(map); + } + + @Override + public AjaxResult getPickingAnalysisByMonth(ParamsDto dto) { + HashMap map = new HashMap<>(4); + Map monthDayMap = DateTimeHelper.getNowOneMonthDay(); + // 数量领料、编码领料 + int num = 0, num2 = 0; + String rate = "0%", rate2 = "0%"; + try { + dto.setMaTypeName(Objects.equals("1", dto.getMaType()) ? CommonConstants.SGJJ : Objects.equals("2", dto.getMaType()) ? CommonConstants.AQGQJ : null); + dto.setStartDate(monthDayMap.get("beginDate")); + dto.setEndDate(monthDayMap.get("endDate")); + List list = mapper.getPickingAnalysisByMonth(dto); + List valueList = commonUtil.totalValue2(list, dto.getMaType()); + num = valueList.get(0); + num2 = valueList.get(1); + rate = commonUtil.getRate(valueList.get(0), valueList.get(0) + valueList.get(1)); + rate2 = commonUtil.getRate(valueList.get(1), valueList.get(0) + valueList.get(1)); + } catch (Exception e) { + log.error("当月领料分析", e); + } + map.put("num", num); + map.put("num2", num2); + map.put("rate", rate); + map.put("rate2", rate2); + return AjaxResult.success(map); + } + + @Override + public AjaxResult getMaterialReturnByMonth(ParamsDto dto) { + HashMap map = new HashMap<>(4); + int num = 0, num2 = 0; + String rate = "0%"; + Map monthDayMap = DateTimeHelper.getNowOneMonthDay(); + dto.setStartDate(monthDayMap.get("beginDate")); + dto.setEndDate(monthDayMap.get("endDate")); + dto.setMaTypeName(Objects.equals("1", dto.getMaType()) ? CommonConstants.SGJJ : Objects.equals("2", dto.getMaType()) ? CommonConstants.AQGQJ : null); + try { + List list = mapper.getMaterialReturnByMonth(dto); + List valueList = commonUtil.setMaterialReturnData(list); + num = valueList.get(0); + num2 = valueList.get(1); + rate = commonUtil.getRate(num, num + num2); + } catch (Exception e) { + log.error("当月退料分析", e); + } + map.put("num", num); + map.put("num2", num2); + map.put("rate", rate); + return AjaxResult.success(map); + } + + @Override + public AjaxResult getMaintenanceByMonth(ParamsDto dto) { + HashMap map = new HashMap<>(6); + int num = 0, num2 = 0, num3 = 0, num4 = 0; + String rate = "0%", rate2 = "0%", rate3 = "0%"; + Map monthDayMap = DateTimeHelper.getNowOneMonthDay(); + dto.setStartDate(monthDayMap.get("beginDate")); + dto.setEndDate(monthDayMap.get("endDate")); + dto.setMaTypeName(Objects.equals("1", dto.getMaType()) ? CommonConstants.SGJJ : Objects.equals("2", dto.getMaType()) ? CommonConstants.AQGQJ : null); + try { + List list = mapper.getMaintenanceByMonth(dto); + List valueList = commonUtil.setMaintenanceData(list); + num = valueList.get(0); + num2 = valueList.get(1); + num3 = valueList.get(2); + num4 = valueList.get(3); + rate = commonUtil.getRate(num4, num); + rate2 = commonUtil.getRate(num2, num); + rate3 = commonUtil.getRate(num3, num); + } catch (Exception e) { + log.error("当月维修分析", e); + } + map.put("num", num4); + map.put("num2", num2); + map.put("num3", num3); + map.put("rate", rate); + map.put("rate2", rate2); + map.put("rate3", rate3); + return AjaxResult.success(map); + } + + @Override + public AjaxResult getCarUseByMonth() { + List list = new ArrayList<>(); + CarUseVo carUseVo = new CarUseVo(); + carUseVo.setCarNo("鲁VL6562"); + carUseVo.setUseNum(24); + carUseVo.setSquander(173.0); + CarUseVo carUseVo2 = new CarUseVo(); + carUseVo2.setCarNo("宁CY33G7"); + carUseVo2.setUseNum(26); + carUseVo2.setSquander(98.0); + CarUseVo carUseVo3 = new CarUseVo(); + carUseVo3.setCarNo("黑LB686Y"); + carUseVo3.setUseNum(10); + carUseVo3.setSquander(193.0); + CarUseVo carUseVo4 = new CarUseVo(); + carUseVo4.setCarNo("川S03VT5"); + carUseVo4.setUseNum(12); + carUseVo4.setSquander(282.0); + CarUseVo carUseVo5 = new CarUseVo(); + carUseVo5.setCarNo("苏K2J2W6"); + carUseVo5.setUseNum(19); + carUseVo5.setSquander(105.0); + CarUseVo carUseVo6 = new CarUseVo(); + carUseVo6.setCarNo("川UYA990"); + carUseVo6.setUseNum(8); + carUseVo6.setSquander(261.1); + list.add(carUseVo); + list.add(carUseVo2); + list.add(carUseVo3); + list.add(carUseVo4); + list.add(carUseVo5); + list.add(carUseVo6); + return AjaxResult.success(list); + } } + + diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/util/CommonUtil.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/util/CommonUtil.java new file mode 100644 index 00000000..5a1d6852 --- /dev/null +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/largeScreen/util/CommonUtil.java @@ -0,0 +1,256 @@ +package com.bonus.sgzb.largeScreen.util; + +import com.bonus.sgzb.common.core.utils.StringUtils; +import com.bonus.sgzb.largeScreen.domain.CommonConstants; +import com.bonus.sgzb.largeScreen.domain.MaTypeDo; +import com.bonus.sgzb.largeScreen.domain.MaterialDataVo; +import com.bonus.sgzb.largeScreen.domain.ScrapAnalysisVo; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * @author 10488 + * 大屏公共util + */ +@Component +public class CommonUtil { + + /** + * @param num + * @param totalNum + * @return String + * @description 百分比 + * @author cwchen + * @date 2023/12/12 9:39 + */ + public String getRate(int num, int totalNum) { + DecimalFormat decimalFormat = new DecimalFormat("0.00%"); + if (totalNum == 0 || num == 0) { + return "0%"; + } else { + return decimalFormat.format(num * 1.0 / totalNum * 1.0); + } + } + + + /** + * @param list + * @param maType + * @return Integer + * @description 新购验收入库分析-统计数量 + * @author cwchen + * @date 2023/12/14 18:54 + */ + public Integer totalValue(List> list, String maType) { + if (CollectionUtils.isEmpty(list) || StringUtils.isEmpty(maType)) return 0; + BigDecimal value = new BigDecimal(new Double(0).toString()); + for (int i = 0; i < list.size(); i++) { + Map map = list.get(i); + BigDecimal value2 = new BigDecimal(new Double(String.valueOf(map.get("num")))); + value = value.add(value2); + } + double doubleValue = value.doubleValue(); + return (int) Math.round(doubleValue); + } + + /** + * @param list + * @param maType + * @return Integer + * @description 当月领料分析-统计数量 + * @author cwchen + * @date 2023/12/14 18:57 + */ + public List totalValue2(List list, String maType) { + List valueList = new ArrayList<>(); + if (CollectionUtils.isEmpty(list) || StringUtils.isEmpty(maType)) { + valueList.add(0); + valueList.add(0); + return valueList; + } + ; + BigDecimal numberValue = new BigDecimal(new Double(0).toString()); + BigDecimal countValue = new BigDecimal(new Double(0).toString()); + for (int i = 0; i < list.size(); i++) { + if (Objects.nonNull(list.get(i).getNum()) && Objects.equals("0", list.get(i).getManageType())) { + // 编号 + BigDecimal value = new BigDecimal(new Double(list.get(i).getNum()).toString()); + numberValue = numberValue.add(value); + } else if (Objects.nonNull(list.get(i).getNum()) && Objects.equals("1", list.get(i).getManageType())) { + // 计数 + BigDecimal value = new BigDecimal(new Double(list.get(i).getNum()).toString()); + countValue = countValue.add(value); + } + } + double doubleNumberValue = numberValue.doubleValue(); + double doubleCountValue = countValue.doubleValue(); + valueList.add((int) Math.round(doubleNumberValue)); + valueList.add((int) Math.round(doubleCountValue)); + return valueList; + } + + /** + * @param list + * @return List + * @description 领料数据-统计 + * @author cwchen + * @date 2023/12/14 19:42 + */ + public List totalValue3(List list) { + List valueList = new ArrayList<>(); + if (CollectionUtils.isEmpty(list)) { + valueList.add(0); + valueList.add(0); + return valueList; + } + BigDecimal jjValue = new BigDecimal(new Double(0).toString()); + BigDecimal tsValue = new BigDecimal(new Double(0).toString()); + for (int i = 0; i < list.size(); i++) { + if (Objects.equals(list.get(i).getCompanyName(), CommonConstants.JJ)) { + BigDecimal value = new BigDecimal(new Double(list.get(i).getNum()).toString()); + jjValue = jjValue.add(value); + } else if (Objects.equals(list.get(i).getCompanyName(), CommonConstants.TS)) { + BigDecimal value = new BigDecimal(new Double(list.get(i).getNum()).toString()); + tsValue = tsValue.add(value); + } + } + double doubleJJValue = jjValue.doubleValue(); + double doubleTSValue = tsValue.doubleValue(); + valueList.add((int) Math.round(doubleJJValue)); + valueList.add((int) Math.round(doubleTSValue)); + return valueList; + } + + /** + * @param lyList + * @param bfList + * @return List + * @description 当月报废分析-数据统计 + * @author cwchen + * @date 2023/12/15 10:02 + */ + public List setScrapAnalysisData(List lyList, List bfList) { + List list = new ArrayList<>(); + // 单位、领用数量、报废数量 + List nameList = new ArrayList<>(); + List valueList = new ArrayList<>(); + List valueList2 = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(lyList)) { + for (int i = 0; i < lyList.size(); i++) { + MaterialDataVo vo = lyList.get(i); + if (Objects.nonNull(vo.getUnitName())) { + nameList.add(vo.getUnitName()); + valueList.add((int) Math.round(vo.getNum())); + for (int j = 0; j < bfList.size(); j++) { + MaterialDataVo vo2 = bfList.get(j); + if (Objects.nonNull(vo2.getUnitName()) && Objects.equals(vo.getUnitName(), vo2.getUnitName())) { + valueList2.add((int) Math.round(vo2.getNum())); + } + } + } + } + } + list.add(nameList); + list.add(valueList); + list.add(valueList2); + return list; + } + + /** + * @param list + * @return List + * @description 当月退料分析-统计 + * @author cwchen + * @date 2023/12/15 14:59 + */ + public List setMaterialReturnData(List list) { + List valueList = new ArrayList<>(); + if (CollectionUtils.isEmpty(list)) { + valueList.add(0); + valueList.add(0); + return valueList; + } + BigDecimal planValue = new BigDecimal(new Double(0).toString()); + BigDecimal realityValue = new BigDecimal(new Double(0).toString()); + for (int i = 0; i < list.size(); i++) { + ScrapAnalysisVo vo = list.get(i); + BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getPlanNum()))); + BigDecimal value2 = new BigDecimal(new Double(String.valueOf(vo.getRealityNum()))); + planValue = planValue.add(value); + realityValue = realityValue.add(value2); + } + double doublePlanValue = planValue.doubleValue(); + double doubleRealityValue = realityValue.doubleValue(); + valueList.add((int) Math.round(doublePlanValue)); + valueList.add((int) Math.round(doubleRealityValue)); + return valueList; + } + + /** + * @param list + * @return List + * @description 当月维修分析-统计 + * @author cwchen + * @date 2023/12/15 15:20 + */ + public List setMaintenanceData(List list) { + List valueList = new ArrayList<>(); + if (CollectionUtils.isEmpty(list)) { + for (int i = 0; i < 4; i++) { + valueList.add(0); + } + return valueList; + } + /*维修总量/维修合格数量/维修报废数量/待维修数量*/ + BigDecimal repairValue = new BigDecimal(new Double(0).toString()); + BigDecimal repairedValue = new BigDecimal(new Double(0).toString()); + BigDecimal scrapValue = new BigDecimal(new Double(0).toString()); + BigDecimal waitRepairedValue = new BigDecimal(new Double(0).toString()); + for (int i = 0; i < list.size(); i++) { + ScrapAnalysisVo vo = list.get(i); + BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getRepairNum()))); + BigDecimal value2 = new BigDecimal(new Double(String.valueOf(vo.getRepairedNum()))); + BigDecimal value3 = new BigDecimal(new Double(String.valueOf(vo.getScrapNum()))); + repairValue = repairValue.add(value); + repairedValue = repairedValue.add(value2); + scrapValue = scrapValue.add(value3); + } + waitRepairedValue = repairValue.subtract(repairedValue).subtract(scrapValue); + double doubleRepairValue = repairValue.doubleValue(); + double doubleRepairedValue = repairedValue.doubleValue(); + double doubleScrapValue = scrapValue.doubleValue(); + double doubleWaitRepairedValue = waitRepairedValue.doubleValue(); + + valueList.add((int) Math.round(doubleRepairValue)); + valueList.add((int) Math.round(doubleRepairedValue)); + valueList.add((int) Math.round(doubleScrapValue)); + valueList.add((int) Math.round(doubleWaitRepairedValue)); + return valueList; + } + + /** + * @param list + * @return Integer + * @description 保有量-在库 + * @author cwchen + * @date 2023/12/15 19:21 + */ + public Integer setZKData(List list) { + if(CollectionUtils.isEmpty(list)) return 0; + BigDecimal totalValue = new BigDecimal(new Double(0).toString()); + for (int i = 0; i < list.size(); i++) { + ScrapAnalysisVo vo = list.get(i); + BigDecimal value = new BigDecimal(new Double(String.valueOf(vo.getNum()))); + totalValue = totalValue.add(value); + } + double doubleTotalValue = totalValue.doubleValue(); + return (int) Math.round(doubleTotalValue); + } +} diff --git a/sgzb-modules/sgzb-base/src/main/resources/mapper/largeScreen/LargeScreenMapper.xml b/sgzb-modules/sgzb-base/src/main/resources/mapper/largeScreen/LargeScreenMapper.xml index 0d9d6037..5807bcfe 100644 --- a/sgzb-modules/sgzb-base/src/main/resources/mapper/largeScreen/LargeScreenMapper.xml +++ b/sgzb-modules/sgzb-base/src/main/resources/mapper/largeScreen/LargeScreenMapper.xml @@ -4,4 +4,270 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + \ No newline at end of file