This commit is contained in:
mashuai 2025-03-12 17:42:45 +08:00
parent 0d53f44ee7
commit 4ea5a3686e
4 changed files with 79 additions and 0 deletions

View File

@ -162,5 +162,11 @@ public class DevInfoVo extends DevInfo {
@ApiModelProperty(value = "检修预报警天数")
private String maintenanceAlarmDay;
@ApiModelProperty(value = "装备数")
private Integer deviceNum;
@ApiModelProperty(value = "订单数")
private Integer orderNum;
}

View File

@ -228,5 +228,19 @@ public interface DevInfoMapper {
* @return
*/
List<DevInfoVo> getLeaseDevList(DevInfoVo devInfo);
/**
* 查询装备对应所属公司
* @return
*/
List<DevInfoVo> getCompanyList();
/**
* 查询装备对应所属公司
* @return
*/
List<DevInfoVo> getCompanyNum();
}

View File

@ -1,8 +1,10 @@
package com.bonus.material.largeScreen.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.bonus.common.biz.utils.MathUtil;
import com.bonus.common.core.web.domain.AjaxResult;
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.OrderData;
@ -155,6 +157,36 @@ public class LargeScreenController {
return AjaxResult.success(list);
}
@ApiOperation("租赁装备数及订单数")
@GetMapping("/getCompanyNum")
public AjaxResult getCompanyNum() {
// 查询装备对应订单数
List<DevInfoVo> list = devInfoMapper.getCompanyNum();
// 查询装备对应所属公司
List<DevInfoVo> companyList = devInfoMapper.getCompanyList();
// 使用 Map 存储每个公司 ID 对应的订单总数
Map<String, Integer> orderNumMap = new HashMap<>();
for (DevInfoVo devInfoVo : list) {
String companyId = devInfoVo.getCompanyId();
// 如果 Map 中已经存在该公司 ID则累加订单数否则将当前订单数作为初始值
orderNumMap.put(companyId, orderNumMap.getOrDefault(companyId, 0) + devInfoVo.getOrderNum());
}
if (CollectionUtil.isNotEmpty(companyList)) {
for (DevInfoVo infoVo : companyList) {
String companyId = infoVo.getCompanyId();
// Map 中获取该公司 ID 对应的订单总数
Integer orderNum = orderNumMap.getOrDefault(companyId, 0);
infoVo.setOrderNum(orderNum);
}
// 根据 orderNum 降序排序并取前 9 个元素
companyList = companyList.stream()
.sorted((vo1, vo2) -> Integer.compare(vo2.getOrderNum(), vo1.getOrderNum()))
.limit(9)
.collect(Collectors.toList());
}
return AjaxResult.success(companyList);
}
// @ApiOperation("订单数据")
// @GetMapping("/orderData")
// public AjaxResult getOrderData() {

View File

@ -1102,4 +1102,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
ORDER BY
d.create_time DESC
</select>
<select id="getCompanyList" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
SELECT
sd.dept_id AS companyId,
sd.dept_name AS companyName,
COUNT( mdi.ma_id ) AS deviceNum
FROM
sys_dept sd
LEFT JOIN ma_dev_info mdi ON sd.dept_id = mdi.own_co
GROUP BY
sd.dept_id
ORDER BY
COUNT( mdi.ma_id ) DESC
</select>
<select id="getCompanyNum" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
SELECT
md.ma_id AS maId,
COUNT( md.ma_id ) AS orderNum ,
mdi.own_co AS companyId
FROM
ma_order_details md
LEFT JOIN ma_dev_info mdi on md.ma_id = mdi.ma_id
WHERE md.order_status != 0 and md.order_status != 99
GROUP BY
md.ma_id
</select>
</mapper>