diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/domain/DevInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/domain/DevInfo.java index 7e090e3..8cfcc4c 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/domain/DevInfo.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/domain/DevInfo.java @@ -68,7 +68,7 @@ public class DevInfo extends BaseEntity { private String ratioRange; @ApiModelProperty(value = "比率,比如: 80%") - private double ratio; + private BigDecimal ratio; @ApiModelProperty(value = "单位") @NotBlank(message = "单位不能为空") diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java index af29a4d..29703cd 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevInfoMapper.java @@ -10,6 +10,8 @@ import com.bonus.material.device.domain.dto.InfoMotionDto; import com.bonus.material.device.domain.vo.DevInfoPropertyVo; import com.bonus.material.device.domain.vo.DevInfoVo; import com.bonus.material.device.domain.vo.LeaseVo; +import com.bonus.material.largeScreen.entity.LeaseInfo; +import com.bonus.material.largeScreen.entity.RentInfo; import org.apache.ibatis.annotations.Param; import java.util.Date; @@ -262,5 +264,15 @@ public interface DevInfoMapper { List getMaTypeLeasingNumList(DevInfoVo devInfoVo); List getDevLeasingNumList(DevInfoVo devInfoVo); + + Integer getRentToalNum(); + + List getDevLeaseCount(); + + List getDevRentCount(); + + List getMaTypeLeasingDetail(DevInfoVo devInfoVo); + + List getDemandUnit(DevInfoVo devInfoVo); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java index ff89bc9..5ec417d 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/controller/LargeScreenController.java @@ -1,6 +1,7 @@ package com.bonus.material.largeScreen.controller; import cn.hutool.core.collection.CollectionUtil; +import com.bonus.common.biz.domain.SysDept; import com.bonus.common.biz.utils.MathUtil; import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.web.controller.BaseController; @@ -9,10 +10,7 @@ import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.vo.DevInfoVo; import com.bonus.material.device.mapper.DevInfoMapper; import com.bonus.material.device.service.DevInfoService; -import com.bonus.material.largeScreen.entity.MaDevRateInfo; -import com.bonus.material.largeScreen.entity.MaLeaseAnswerInfo; -import com.bonus.material.largeScreen.entity.MaLeaseOnlyInfo; -import com.bonus.material.largeScreen.entity.OrderData; +import com.bonus.material.largeScreen.entity.*; import com.bonus.material.largeScreen.service.LargeScreenService; import com.bonus.material.lease.domain.MaLeaseInfo; import com.bonus.material.lease.mapper.MaLeaseInfoMapper; @@ -76,7 +74,7 @@ public class LargeScreenController extends BaseController { try { DevInfo list = largeScreenService.getIdleDevRatio(); return AjaxResult.success(list); - }catch (Exception e){ + } catch (Exception e) { return AjaxResult.error("闲置装备分析异常"); } } @@ -89,7 +87,9 @@ public class LargeScreenController extends BaseController { list.forEach(item -> { double ratio = total == 0 ? 0 : (double) item.getDeviceCount() / total; double ratioPercent = ratio * 100; - item.setRatio(ratioPercent); + + BigDecimal bd = new BigDecimal(ratioPercent).setScale(2, RoundingMode.HALF_UP); + item.setRatio(bd); }); return AjaxResult.success(list); } @@ -139,13 +139,24 @@ public class LargeScreenController extends BaseController { orderData.setDevLeasingNum(devLeasingNum); Integer repairingDevNum = devInfoMapper.getRepairingDevNum(); orderData.setDevRepairingNum(repairingDevNum); + Integer rentToalNum = devInfoMapper.getRentToalNum(); + orderData.setRentToalNum(rentToalNum); DevInfo devInfo = devInfoMapper.getDevUsageRatio(); - if(devInfo != null){ + if (devInfo != null) { orderData.setDevUsageRatio(MathUtil.calculatePercentage(devInfo.getTotalLeaseDay(), devInfo.getTotalUpDay() + devInfo.getTotalLeaseDay())); } return AjaxResult.success(orderData); } + + @ApiOperation("公司出租/租赁数") + @GetMapping("/devLeaseAndRentCount") + public AjaxResult devLeaseAndRentCount() { + List leaseInfo = devInfoMapper.getDevLeaseCount(); + List rentInfo = devInfoMapper.getDevRentCount(); + return AjaxResult.success(new LeaseAndRentInfo(leaseInfo, rentInfo)); + } + @ApiOperation("装备需求统计") @GetMapping("/demandCount") public AjaxResult demandCount() { @@ -154,10 +165,12 @@ public class LargeScreenController extends BaseController { Integer leaseOrderNum = leaseInfoMapper.getLeaseOrderCount(); Integer maTypeCountFromLease = leaseInfoMapper.getMaTypeCountFromLease(); String topPopularTypeName = leaseInfoMapper.getTopPopularTypeName(); + Integer demandUnitNum = leaseInfoMapper.getDemandUnit(); orderData.setLeaseNum(leaseNum); orderData.setMaTypeCountFromLease(maTypeCountFromLease); orderData.setLeaseOrderRatio(MathUtil.calculatePercentage(leaseOrderNum, leaseNum)); orderData.setTopPopularTypeName(topPopularTypeName); + orderData.setDemandUnitNum(demandUnitNum); return AjaxResult.success(orderData); } @@ -266,6 +279,20 @@ public class LargeScreenController extends BaseController { List list = devInfoMapper.getMaTypeLeasingNumList(devInfoVo); return AjaxResult.success(getDataTable(list)); } + @ApiOperation("装备租赁-累计数二级页面") + @GetMapping("/getMaTypeLeasingDetail") + public AjaxResult getMaTypeLeasingDetail(DevInfoVo devInfoVo) { + startPage(); + List list = devInfoMapper.getMaTypeLeasingDetail(devInfoVo); + return AjaxResult.success(getDataTable(list)); + } + @ApiOperation("装备需求-需求单位二级页面") + @GetMapping("/getDemandUnit") + public AjaxResult getDemandUnit(DevInfoVo devInfoVo) { + startPage(); + List list = devInfoMapper.getDemandUnit(devInfoVo); + return AjaxResult.success(getDataTable(list)); + } @ApiOperation("在租赁装备数二级页面") @GetMapping("/getDevLeasingNum") @@ -309,6 +336,7 @@ public class LargeScreenController extends BaseController { /** * 应答率二级页面 + * * @param dto * @return */ @@ -339,6 +367,7 @@ public class LargeScreenController extends BaseController { /** * 总应答率二级页面 + * * @param dto * @return */ @@ -382,6 +411,7 @@ public class LargeScreenController extends BaseController { /** * 判断关键字 + * * @param item * @param keyWord * @return @@ -393,6 +423,7 @@ public class LargeScreenController extends BaseController { /** * 最需装备二级页面 + * * @param dto * @return */ @@ -411,6 +442,7 @@ public class LargeScreenController extends BaseController { /** * 需求装备种类 + * * @param dto * @return */ @@ -457,6 +489,7 @@ public class LargeScreenController extends BaseController { /** * 判断关键字 + * * @param item * @param keyWord * @return @@ -468,6 +501,7 @@ public class LargeScreenController extends BaseController { /** * 计算租赁天数差 + * * @param startTime * @param rentEndTime * @return @@ -488,6 +522,7 @@ public class LargeScreenController extends BaseController { /** * 将 java.util.Date 转换为 java.time.LocalDate + * * @param date * @return */ @@ -499,6 +534,7 @@ public class LargeScreenController extends BaseController { /** * 装备利用率 + * * @param dto * @return */ @@ -533,6 +569,7 @@ public class LargeScreenController extends BaseController { /** * 退租装备 + * * @param dto * @return */ diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/LeaseAndRentInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/LeaseAndRentInfo.java new file mode 100644 index 0000000..d0a7b00 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/LeaseAndRentInfo.java @@ -0,0 +1,17 @@ +package com.bonus.material.largeScreen.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * @Author:liang.chao + * @Date:2025/7/3 - 14:10 + */ +@Data +@AllArgsConstructor +public class LeaseAndRentInfo { + private List LeaseInfos; + private List RentInfos; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/LeaseInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/LeaseInfo.java new file mode 100644 index 0000000..baffe60 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/LeaseInfo.java @@ -0,0 +1,14 @@ +package com.bonus.material.largeScreen.entity; + +import lombok.Data; + +/** + * @Author:liang.chao + * @Date:2025/7/3 - 14:10 + * 租赁信息 + */ +@Data +public class LeaseInfo { + private Integer leaseNum; + private String leaseCompanyName; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java index d2ca3da..dbd2290 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/OrderData.java @@ -67,6 +67,12 @@ public class OrderData { @ApiModelProperty(value = "订单总数") private Integer orderNum; + @ApiModelProperty(value = "租赁总数") + private Integer rentToalNum; + + @ApiModelProperty(value = "需求单位数") + private Integer demandUnitNum; + @ApiModelProperty(value = "装备利用率") private BigDecimal devUsageRatio; diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/RentInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/RentInfo.java new file mode 100644 index 0000000..7052431 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/largeScreen/entity/RentInfo.java @@ -0,0 +1,14 @@ +package com.bonus.material.largeScreen.entity; + +import lombok.Data; + +/** + * @Author:liang.chao + * @Date:2025/7/3 - 14:10 + * 出租信息 + */ +@Data +public class RentInfo { + private Integer rentNum; + private String rentCompanyName; +} diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java index d8739f9..d7b2138 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/lease/mapper/MaLeaseInfoMapper.java @@ -183,4 +183,6 @@ public interface MaLeaseInfoMapper { * @return */ List getReturnDev(MaDevRateInfo dto); + + Integer getDemandUnit(); } diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml index b78e4e1..f50f466 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevInfoMapper.xml @@ -1026,14 +1026,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml index 6a49ff5..8e00a56 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/lease/MaLeaseInfoMapper.xml @@ -683,4 +683,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY md.rent_over_time DESC +