From 7cf78012b0ea21e84ae3d7d8a0b0250434a4d660 Mon Sep 17 00:00:00 2001 From: mashuai Date: Tue, 17 Dec 2024 09:34:07 +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 | 102 ++++++++ .../domain/MachineHistoryRecordBean.java | 91 +++++++ .../material/basic/domain/ProjUsingDto.java | 35 +++ .../basic/domain/ProjUsingRecord.java | 105 ++++++++ .../basic/mapper/ComplexQueryMapper.java | 28 +++ .../basic/service/ComplexQueryService.java | 37 +++ .../service/impl/ComplexQueryServiceImpl.java | 83 +++++++ .../material/basic/ComplexQueryMapper.xml | 233 ++++++++++++++++++ 8 files changed, 714 insertions(+) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/MachineHistoryRecordBean.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingDto.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java create mode 100644 bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml 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 new file mode 100644 index 00000000..44972953 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/ComplexQueryController.java @@ -0,0 +1,102 @@ +package com.bonus.material.basic.controller; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.basic.domain.MachineHistoryRecordBean; +import com.bonus.material.basic.domain.ProjUsingDto; +import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.vo.ProjUsingVo; +import com.bonus.material.basic.service.ComplexQueryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/12/16 10:52 + */ +@Api(tags = "综合查询") +@RestController +@RequestMapping("/complex_query") +public class ComplexQueryController extends BaseController { + + @Resource + private ComplexQueryService complexQueryService; + + /** + * 工程机具使用列表 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--工程机具使用列表") + @GetMapping("/getProjUsingRecordList") + public AjaxResult getProjUsingRecordList(ProjUsingRecord bean) { + startPage(); + List pageList = complexQueryService.getProjUsingRecordList(bean); + return AjaxResult.success(getDataTable(pageList)); + } + + /** + * 工程机具使用列表不带分页 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--工程机具使用列表不带分页") + @GetMapping("/getProjUsingRecordListNoPage") + public AjaxResult getProjUsingRecordListNoPage(ProjUsingRecord bean) { + List list = complexQueryService.exportProjUsingRecord(bean); + ProjUsingDto projUsingDto = new ProjUsingDto(); + if (CollectionUtils.isNotEmpty(list)) { + ProjUsingRecord projUsingRecord = list.get(0); + projUsingDto.setTotalLeaseNum(projUsingRecord.getLeaseNum()); + projUsingDto.setTotalBackNum(projUsingRecord.getBackNum()); + projUsingDto.setTotalUsNum(projUsingRecord.getUsNum()); + projUsingDto.setTotalUsPrice(projUsingRecord.getUsPrice()); + projUsingDto.setTotalTotalPrice(projUsingRecord.getTotalPrice()); + } + return AjaxResult.success(projUsingDto); + } + + /** + * 导出工程机具使用列表 + * @param response + * @param bean + */ + @ApiOperation("导出综合查询工程机具使用列表") + @PostMapping("/exportProjUsingRecord") + public void exportProjUsingRecord(HttpServletResponse response, ProjUsingRecord bean) + { + List list = complexQueryService.exportProjUsingRecord(bean); + ExcelUtil util = new ExcelUtil<>(ProjUsingRecord.class); + util.exportExcel(response, list, "综合查询--工程机具使用查询"); + } + + /** + * 设备使用追溯查询 + * @param bean + * @return + */ + @ApiOperation(value = "综合查询--设备使用追溯查询") + @GetMapping("/getMachineHistoryRecordList") + public AjaxResult getMachineHistoryRecordList(MachineHistoryRecordBean bean) { + startPage(); + List list = complexQueryService.getMachineHistoryRecordList(bean); + return AjaxResult.success(getDataTable(list)); + } + + @ApiOperation("导出综合查询设备使用追溯查询") + @PostMapping("/exportMachineHistoryRecord") + public void exportMachineHistoryRecord(HttpServletResponse response, MachineHistoryRecordBean bean) + { + List list = complexQueryService.getMachineHistoryRecordList(bean); + ExcelUtil util = new ExcelUtil<>(MachineHistoryRecordBean.class); + util.exportExcel(response, list, "综合查询--设备使用追溯查询"); + } + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/MachineHistoryRecordBean.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/MachineHistoryRecordBean.java new file mode 100644 index 00000000..04a65039 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/MachineHistoryRecordBean.java @@ -0,0 +1,91 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author ma_sh + * @create 2024/12/16 14:03 + */ +@Data +public class MachineHistoryRecordBean { + + @ApiModelProperty(value = "协议id") + private Integer agreementId; + + @ApiModelProperty(value = "协议号") + @Excel(name = "协议号") + private String agreementCode; + + @ApiModelProperty(value = "工程Id") + private Integer proId; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String proName; + + @ApiModelProperty(value = "往来单位Id") + private Integer unitId; + + + @ApiModelProperty(value = "往来单位") + @Excel(name = "往来单位") + private String unitName; + + @ApiModelProperty(value = "物资名称") + @Excel(name = "物资名称") + private String typeName; + + /** + * 规格ID + */ + @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 String maCode; + + @ApiModelProperty(value = "领用人员") + @Excel(name = "领用人员") + private String leaseMan; + + @ApiModelProperty(value = "领用时间") + @Excel(name = "领用时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date leaseDate; + + @ApiModelProperty(value = "退料人员") + @Excel(name = "退料人员") + private String backMan; + + @ApiModelProperty(value = "退料时间") + @Excel(name = "退料时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date backDate; + + @ApiModelProperty(value = "状态") + @Excel(name = "当前状态") + private String statusName; + + @ApiModelProperty(value="开始时间") + private String startTime; + + @ApiModelProperty(value="结束时间") + private String endTime; + + @ApiModelProperty(value="关键字") + private String keyWord; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingDto.java new file mode 100644 index 00000000..94c3ee58 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingDto.java @@ -0,0 +1,35 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author ma_sh + * @create 2024/12/16 13:44 + */ +@Data +public class ProjUsingDto { + + @ApiModelProperty(value = "领用数量") + @Excel(name = "领用数量") + private BigDecimal totalLeaseNum; + + @ApiModelProperty(value = "归还数量") + @Excel(name = "归还数量") + private BigDecimal totalBackNum; + + @ApiModelProperty(value = "在用数量") + @Excel(name = "在用数量") + private BigDecimal totalUsNum; + + @ApiModelProperty(value = "在用总价值") + @Excel(name = "在用总价值(元)") + private BigDecimal totalUsPrice; + + @ApiModelProperty(value = "投入总价值") + @Excel(name = "投入总价值(元)") + private BigDecimal totalTotalPrice; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java new file mode 100644 index 00000000..672f22fd --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/ProjUsingRecord.java @@ -0,0 +1,105 @@ +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 hay +* @date 2024/2/26 14:51 +*/ +@ApiModel(description = "退料查询") +@Data +public class ProjUsingRecord { + + private static final long serialVersionUID = 2227217051604273598L; + + @ApiModelProperty(value = "主键id") + private Integer id; + + @ApiModelProperty(value = "协议号") + @Excel(name = "协议号") + private String agreementCode; + + @ApiModelProperty(value = "工程Id") + private Integer proId; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String proName; + + @ApiModelProperty(value = "往来单位Id") + private Integer unitId; + + @ApiModelProperty(value = "往来单位") + @Excel(name = "往来单位") + private String unitName; + + @ApiModelProperty(value = "物资名称") + @Excel(name = "物资名称") + private String typeName; + + @ApiModelProperty(value = "规格ID") + private Integer typeId; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "设备编码") + private String maCode; + + @ApiModelProperty(value = "计量单位") + @Excel(name = "计量单位") + private String unit; + + @ApiModelProperty(value = "领用数量") + @Excel(name = "领用数量") + private BigDecimal leaseNum; + + @ApiModelProperty(value = "归还数量") + @Excel(name = "归还数量") + private BigDecimal backNum; + + @ApiModelProperty(value = "在用数量") + @Excel(name = "在用数量") + private BigDecimal usNum; + + @ApiModelProperty(value = "在用总价值(元)") + @Excel(name = "在用总价值(元)") + private BigDecimal usPrice; + + @ApiModelProperty(value = "投入总价值(元)") + @Excel(name = "投入总价值(元)") + private BigDecimal totalPrice; + + @ApiModelProperty(value = "关键字") + private String keyWord; + + @ApiModelProperty(value="开始时间") + private String startTime; + + @ApiModelProperty(value="结束时间") + private String endTime; + + @ApiModelProperty(value = "数据所属组织") + private Integer companyId; + + @ApiModelProperty(value = "装备管理方式(0编号 1计数)") + private String manageType; + + @ApiModelProperty(value = "是否结算 0否 1是") + private String isSlt; + + @ApiModelProperty(value = "是否结算 0否 1是") + @Excel(name = "协议状态") + private String isSltName; + +} \ 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 new file mode 100644 index 00000000..63b70dfe --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/ComplexQueryMapper.java @@ -0,0 +1,28 @@ +package com.bonus.material.basic.mapper; + +import com.bonus.material.basic.domain.MachineHistoryRecordBean; +import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.vo.ProjUsingVo; + +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/12/16 10:54 + */ +public interface ComplexQueryMapper { + + /** + * 获取工程机具使用列表 + * @param bean + * @return + */ + List getProjUsingRecordList(ProjUsingRecord bean); + + /** + * 设备使用追溯查询 + * @param bean + * @return + */ + List getMachineHistoryRecordList(MachineHistoryRecordBean 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 new file mode 100644 index 00000000..1ac91277 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/ComplexQueryService.java @@ -0,0 +1,37 @@ +package com.bonus.material.basic.service; + +import com.bonus.material.basic.domain.MachineHistoryRecordBean; +import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.vo.ProjUsingVo; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 综合查询 + * @Author ma_sh + * @create 2024/12/16 10:53 + */ +public interface ComplexQueryService { + + /** + * 工程机具使用列表 + * @param bean + * @return + */ + List getProjUsingRecordList(ProjUsingRecord bean); + + /** + * 设备使用追溯查询 + * @param bean + * @return + */ + List getMachineHistoryRecordList(MachineHistoryRecordBean bean); + + /** + * 导出综合查询工程机具使用列表 + * @param bean + */ + List exportProjUsingRecord(ProjUsingRecord 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 new file mode 100644 index 00000000..0ba48c98 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/ComplexQueryServiceImpl.java @@ -0,0 +1,83 @@ +package com.bonus.material.basic.service.impl; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.material.basic.domain.MachineHistoryRecordBean; +import com.bonus.material.basic.domain.ProjUsingDto; +import com.bonus.material.basic.domain.ProjUsingRecord; +import com.bonus.material.basic.domain.vo.ProjUsingVo; +import com.bonus.material.basic.mapper.ComplexQueryMapper; +import com.bonus.material.basic.service.ComplexQueryService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.*; + +/** + * 综合查询服务实现类 + * @Author ma_sh + * @create 2024/12/16 10:53 + */ +@Service +@Slf4j +public class ComplexQueryServiceImpl implements ComplexQueryService { + + @Resource + private ComplexQueryMapper complexQueryMapper; + + /** + * 工程机具使用列表 + * @param bean + * @return + */ + @Override + public List getProjUsingRecordList(ProjUsingRecord bean) { + return complexQueryMapper.getProjUsingRecordList(bean); + } + + /** + * 设备使用追溯查询 + * @param bean + * @return + */ + @Override + public List getMachineHistoryRecordList(MachineHistoryRecordBean bean) { + return complexQueryMapper.getMachineHistoryRecordList(bean); + } + + /** + * 导出工程机具使用列表 + * @param bean + */ + @Override + public List exportProjUsingRecord(ProjUsingRecord bean) { + // 使用 BigDecimal 常量初始化 + BigDecimal totalLeaseNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalBackNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalUsNum = BigDecimal.ZERO.setScale(3, BigDecimal.ROUND_HALF_UP); + BigDecimal totalUsPrice = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP); + BigDecimal totalTotalPrice = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP); + List list = complexQueryMapper.getProjUsingRecordList(bean); + if (CollectionUtils.isNotEmpty(list)) { + ProjUsingRecord projUsingRecord = new ProjUsingRecord(); + for (ProjUsingRecord record : list) { + totalLeaseNum = totalLeaseNum.add(record.getLeaseNum()); + totalBackNum = totalBackNum.add(record.getBackNum()); + totalUsNum = totalUsNum.add(record.getUsNum()); + totalUsPrice = totalUsPrice.add(record.getUsPrice()); + totalTotalPrice = totalTotalPrice.add(record.getTotalPrice()); + } + // 设置 ProjUsingDto 总结数据 + projUsingRecord.setLeaseNum(totalLeaseNum.setScale(3, BigDecimal.ROUND_HALF_UP)); + projUsingRecord.setBackNum(totalBackNum.setScale(3, BigDecimal.ROUND_HALF_UP)); + projUsingRecord.setUsNum(totalUsNum.setScale(3, BigDecimal.ROUND_HALF_UP)); + projUsingRecord.setUsPrice(totalUsPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + projUsingRecord.setTotalPrice(totalTotalPrice.setScale(2, BigDecimal.ROUND_HALF_UP)); + projUsingRecord.setUnit("合计"); + list.add(0,projUsingRecord); + } + return list; + } + +} 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 new file mode 100644 index 00000000..bc2ab0a1 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml @@ -0,0 +1,233 @@ + + + + + + + + +