From dd0dc21126801d3737da5ce52f9333f5dfcbfcaf Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 18 Dec 2024 17:56:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ComplexQueryController.java | 53 +++++ .../basic/domain/RetainedEquipmentInfo.java | 137 +++++++++++++ .../basic/mapper/ComplexQueryMapper.java | 12 +- .../basic/service/ComplexQueryService.java | 12 +- .../service/impl/ComplexQueryServiceImpl.java | 99 ++++++++- .../material/basic/BmStorageLogMapper.xml | 28 +-- .../material/basic/ComplexQueryMapper.xml | 190 +++++++++++++++++- 7 files changed, 503 insertions(+), 28 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/RetainedEquipmentInfo.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java index 909a950d..5275cfa9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java @@ -26,6 +26,59 @@ public class ComplexQueryController extends BaseController { @Resource private ComplexQueryService complexQueryService; + /** + * 保有设备总量查询 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--保有设备总量查询") + @GetMapping("/getRetainedEquipmentList") + public AjaxResult getRetainedEquipmentList(RetainedEquipmentInfo bean) { + startPage(); + List pageList = complexQueryService.getRetainedEquipmentList(bean); + return AjaxResult.success(getDataTable(pageList)); + } + + /** + * 保有设备总量查询不带分页 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--保有设备总量查询不带分页") + @GetMapping("/getRetainedEquipmentListNoPage") + public AjaxResult getRetainedEquipmentListNoPage(RetainedEquipmentInfo bean) { + List list = complexQueryService.getRetainedEquipmentList(bean); + RetainedEquipmentInfo dto = new RetainedEquipmentInfo(); + if (CollectionUtils.isNotEmpty(list)) { + RetainedEquipmentInfo retainedEquipmentInfo = list.get(0); + dto.setStoreNum(retainedEquipmentInfo.getStoreNum()); + dto.setUsNum(retainedEquipmentInfo.getUsNum()); + dto.setRepairNum(retainedEquipmentInfo.getRepairNum()); + dto.setInputNum(retainedEquipmentInfo.getInputNum()); + dto.setRepairInputNum(retainedEquipmentInfo.getRepairInputNum()); + dto.setAllNum(retainedEquipmentInfo.getAllNum()); + dto.setTotalPrice(retainedEquipmentInfo.getTotalPrice()); + dto.setFiveReplacementRate(retainedEquipmentInfo.getFiveReplacementRate()); + dto.setTenReplacementRate(retainedEquipmentInfo.getTenReplacementRate()); + dto.setTenPlusReplacementRate(retainedEquipmentInfo.getTenPlusReplacementRate()); + } + return AjaxResult.success(dto); + } + + /** + * 导出综合查询保有设备总量查询 + * @param response + * @param bean + */ + @ApiOperation("导出综合查询保有设备总量查询") + @PostMapping("/exportRetainedEquipmentList") + public void exportRetainedEquipmentList(HttpServletResponse response, RetainedEquipmentInfo bean) + { + List list = complexQueryService.getRetainedEquipmentList(bean); + ExcelUtil util = new ExcelUtil<>(RetainedEquipmentInfo.class); + util.exportExcel(response, list, "综合查询--保有设备总量查询"); + } + /** * 工程机具使用列表 * @param bean diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/RetainedEquipmentInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/RetainedEquipmentInfo.java new file mode 100644 index 00000000..a0341e4e --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/RetainedEquipmentInfo.java @@ -0,0 +1,137 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.util.Date; + +/** +* @description 综合查询--保有设备总量查询 +* @author ma_sh +* @date 2024/2/26 14:51 +*/ +@ApiModel(description = "保有设备总量查询") +@Data +public class RetainedEquipmentInfo { + + private static final long serialVersionUID = 2227217051604273598L; + + @ApiModelProperty(value = "主键id") + private Integer id; + + @ApiModelProperty(value = "仓库信息") + @Excel(name = "仓库信息") + private String whHouseName; + + @ApiModelProperty(value = "施工类型") + @Excel(name = "施工类型") + private String constructionType; + + @ApiModelProperty(value = "物资类型") + @Excel(name = "物资类型") + private String materialType; + + @ApiModelProperty(value = "物资名称") + @Excel(name = "物资名称") + private String typeName; + + @ApiModelProperty(value = "规格ID") + private Integer typeId; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "计量单位") + @Excel(name = "计量单位") + private String unit; + + @ApiModelProperty(value = "在库数量") + @Excel(name = "在库数量") + private BigDecimal storeNum; + + @ApiModelProperty(value = "在用数量") + @Excel(name = "在用数量") + private BigDecimal usNum; + + @ApiModelProperty(value = "在修数量") + @Excel(name = "在修数量") + private BigDecimal repairNum; + + @ApiModelProperty(value = "新购待入库") + @Excel(name = "新购待入库数量") + private BigDecimal inputNum; + + @ApiModelProperty(value = "修试后待入库") + @Excel(name = "修试待入库数量") + private BigDecimal repairInputNum; + + @ApiModelProperty(value = "总保有量") + @Excel(name = "总保有数量") + private BigDecimal allNum; + + @ApiModelProperty(value = "购置单价") + private BigDecimal buyPrice; + + @ApiModelProperty(value = "投入总价值") + @Excel(name = "总保有量资产(万元)") + private BigDecimal totalPrice; + + @ApiModelProperty(value = "五年以内成新率") + @Excel(name = "五年以内成新率") + private String fiveReplacementRate; + + @ApiModelProperty(value = "五年以内设备数量") + private BigDecimal fiveReplacementNum; + + @ApiModelProperty(value = "五年至十年成新率") + @Excel(name = "五年至十年成新率") + private String tenReplacementRate; + + @ApiModelProperty(value = "五年至十年设备数量") + private BigDecimal tenReplacementNum; + + @ApiModelProperty(value = "十年以上成新率") + @Excel(name = "十年以上成新率") + private String tenPlusReplacementRate; + + @ApiModelProperty(value = "十年以上设备数量") + private BigDecimal tenPlusReplacementNum; + + @ApiModelProperty(value = "管理模式") + @Excel(name = "管理模式") + private String manageType; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间 ") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + @ApiModelProperty(value = "关键字") + private String keyWord; + + @ApiModelProperty(value = "数据所属组织") + private Integer companyId; + + /** 1.机具仓储 2.调试仓储 */ + private String maType; + + private String maTypeName; + +} \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java index bbd018e9..67ee91d8 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java @@ -1,9 +1,6 @@ package com.bonus.material.basic.mapper; -import com.bonus.material.basic.domain.InputRecordInfo; -import com.bonus.material.basic.domain.MachineHistoryRecordBean; -import com.bonus.material.basic.domain.OutRecordInfo; -import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.*; import java.util.List; @@ -40,4 +37,11 @@ public interface ComplexQueryMapper { * @return */ List getOutRecordList(OutRecordInfo bean); + + /** + * 保有设备总量查询 + * @param bean + * @return + */ + List getRetainedEquipmentList(RetainedEquipmentInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java index 5026dd95..ddfc4fb9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java @@ -1,9 +1,6 @@ package com.bonus.material.basic.service; -import com.bonus.material.basic.domain.InputRecordInfo; -import com.bonus.material.basic.domain.MachineHistoryRecordBean; -import com.bonus.material.basic.domain.OutRecordInfo; -import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.*; import java.util.List; @@ -47,4 +44,11 @@ public interface ComplexQueryService { * @return */ List getOutRecordList(OutRecordInfo bean); + + /** + * 保有设备总量查询 + * @param bean + * @return + */ + List getRetainedEquipmentList(RetainedEquipmentInfo bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java index da66ea6e..fd931e6f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java @@ -2,10 +2,7 @@ package com.bonus.material.basic.service.impl; import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.StringUtils; -import com.bonus.material.basic.domain.InputRecordInfo; -import com.bonus.material.basic.domain.MachineHistoryRecordBean; -import com.bonus.material.basic.domain.OutRecordInfo; -import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.*; import com.bonus.material.basic.mapper.ComplexQueryMapper; import com.bonus.material.basic.service.ComplexQueryService; import lombok.extern.slf4j.Slf4j; @@ -155,4 +152,98 @@ public class ComplexQueryServiceImpl implements ComplexQueryService { return list; } + /** + * 保有设备总量查询 + * @param bean + * @return + */ + @Override + public List getRetainedEquipmentList(RetainedEquipmentInfo bean) { + BigDecimal totalPrice = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal totalStoreNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalRepairNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalInputNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalRepairInputNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalAllNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal fiveReplacementNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal tenReplacementNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal tenPlusReplacementNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + String fiveReplacementRate = "0%"; + String tenReplacementRate = "0%"; + String tenPlusReplacementRate = "0%"; + List recordList = complexQueryMapper.getRetainedEquipmentList(bean); + if (CollectionUtils.isNotEmpty(recordList)) { + for (RetainedEquipmentInfo retainedEquipmentInfo : recordList) { + totalStoreNum = totalStoreNum.add(retainedEquipmentInfo.getStoreNum()); + totalUsNum = totalUsNum.add(retainedEquipmentInfo.getUsNum()); + totalRepairNum = totalRepairNum.add(retainedEquipmentInfo.getRepairNum()); + totalInputNum = totalInputNum.add(retainedEquipmentInfo.getInputNum()); + totalRepairInputNum = totalRepairInputNum.add(retainedEquipmentInfo.getRepairInputNum()); + totalAllNum = totalAllNum.add(retainedEquipmentInfo.getAllNum()); + fiveReplacementNum = fiveReplacementNum.add(retainedEquipmentInfo.getFiveReplacementNum()); + tenReplacementNum = tenReplacementNum.add(retainedEquipmentInfo.getTenReplacementNum()); + tenPlusReplacementNum = tenPlusReplacementNum.add(retainedEquipmentInfo.getTenPlusReplacementNum()); + BigDecimal equipmentPrice = retainedEquipmentInfo.getAllNum() + .multiply(retainedEquipmentInfo.getBuyPrice()) + .divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); + totalPrice = totalPrice.add(equipmentPrice); + BigDecimal allNum = retainedEquipmentInfo.getAllNum(); + if (allNum.compareTo(BigDecimal.ZERO) == 0) { + fiveReplacementRate = "0%"; + tenReplacementRate = "0%"; + tenPlusReplacementRate = "0%"; + } else { + fiveReplacementRate = retainedEquipmentInfo.getFiveReplacementNum() + .divide(allNum, 4, BigDecimal.ROUND_HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; + tenReplacementRate = retainedEquipmentInfo.getTenReplacementNum() + .divide(allNum, 4, BigDecimal.ROUND_HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; + tenPlusReplacementRate = retainedEquipmentInfo.getTenPlusReplacementNum() + .divide(allNum, 4, BigDecimal.ROUND_HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; + } + retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate); + retainedEquipmentInfo.setTenReplacementRate(tenReplacementRate); + retainedEquipmentInfo.setTenPlusReplacementRate(tenPlusReplacementRate); + } + RetainedEquipmentInfo retainedEquipmentInfo = new RetainedEquipmentInfo(); + if (totalAllNum.compareTo(BigDecimal.ZERO) == 0) { + fiveReplacementRate = "0%"; + tenReplacementRate = "0%"; + tenPlusReplacementRate = "0%"; + } else { + fiveReplacementRate = fiveReplacementNum + .divide(totalAllNum, 4, BigDecimal.ROUND_HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; + tenReplacementRate = tenReplacementNum + .divide(totalAllNum, 4, BigDecimal.ROUND_HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; + tenPlusReplacementRate = tenPlusReplacementNum + .divide(totalAllNum, 4, BigDecimal.ROUND_HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(2, BigDecimal.ROUND_HALF_UP) + "%"; + } + retainedEquipmentInfo.setStoreNum(totalStoreNum); + retainedEquipmentInfo.setUsNum(totalUsNum); + retainedEquipmentInfo.setRepairNum(totalRepairNum); + retainedEquipmentInfo.setInputNum(totalInputNum); + retainedEquipmentInfo.setRepairInputNum(totalRepairInputNum); + retainedEquipmentInfo.setAllNum(totalAllNum); + retainedEquipmentInfo.setTotalPrice(totalPrice); + retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate); + retainedEquipmentInfo.setTenReplacementRate(tenReplacementRate); + retainedEquipmentInfo.setTenPlusReplacementRate(tenPlusReplacementRate); + retainedEquipmentInfo.setUnit("合计"); + recordList.add(0, retainedEquipmentInfo); + } + return recordList; + } + } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmStorageLogMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmStorageLogMapper.xml index 81828829..205a7532 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmStorageLogMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmStorageLogMapper.xml @@ -42,25 +42,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml index 4e3be870..e54998f3 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml @@ -232,8 +232,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + +