大屏二级页面

This commit is contained in:
mashuai 2025-03-18 12:18:22 +08:00
parent 266bd0f4ce
commit 56ce9e8f12
4 changed files with 171 additions and 0 deletions

View File

@ -9,6 +9,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;
@ -374,4 +375,30 @@ public class LargeScreenController extends BaseController {
.atZone(ZoneId.systemDefault())
.toLocalDate();
}
/**
* 装备利用率
* @param dto
* @return
*/
@ApiOperation("装备利用率")
@GetMapping("/getDevRate")
public AjaxResult getDevRate(MaDevRateInfo dto) {
startPage();
List<MaDevRateInfo> list = leaseInfoMapper.getDevRate(dto);
return AjaxResult.success(getDataTable(list));
}
/**
* 退租装备
* @param dto
* @return
*/
@ApiOperation("退租装备")
@GetMapping("/getReturnDev")
public AjaxResult getReturnDev(MaDevRateInfo dto) {
startPage();
List<MaDevRateInfo> list = leaseInfoMapper.getReturnDev(dto);
return AjaxResult.success(getDataTable(list));
}
}

View File

@ -0,0 +1,70 @@
package com.bonus.material.largeScreen.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 装备利用率
* @Author ma_sh
* @create 2025/3/18 11:05
*/
@Data
public class MaDevRateInfo {
/**
* 装备类型
*/
private String typeName;
/**
* 装备名称
*/
private String deviceName;
/**
* 装备规格型号
*/
private String modelCode;
/**
* 装备上架时长
*/
private Integer upTotal;
/**
* 装备租赁时长
*/
private Integer leaseTotal;
/**
* 利用率
*/
private String rate;
/**
* 关键字
*/
private String keyWord;
@ApiModelProperty(value = "唯一标识符")
private String identifyCode;
/**
* 订单号
*/
private String orderCode;
/**
* 退租人
*/
private String returnUser;
/**
* 退租时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date returnTime;
}

View File

@ -1,5 +1,6 @@
package com.bonus.material.lease.mapper;
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.lease.domain.MaLease;
@ -168,4 +169,18 @@ public interface MaLeaseInfoMapper {
* @return
*/
List<MaLeaseOnlyInfo> getLeaseTypeList(MaLeaseOnlyInfo dto);
/**
* 装备利用率
* @param dto
* @return
*/
List<MaDevRateInfo> getDevRate(MaDevRateInfo dto);
/**
* 退租装备
* @param dto
* @return
*/
List<MaDevRateInfo> getReturnDev(MaDevRateInfo dto);
}

View File

@ -591,6 +591,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
GROUP BY
ml.id
ORDER BY
ml.start_time DESC
</select>
<select id="getLeaseTypeList" resultType="com.bonus.material.largeScreen.entity.MaLeaseOnlyInfo">
@ -606,4 +608,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY
ml.id
</select>
<select id="getDevRate" resultType="com.bonus.material.largeScreen.entity.MaDevRateInfo">
SELECT
mt1.type_name AS typeName,
md.device_name AS deviceName,
mt.type_name AS modelCode,
md.total_up_day AS upTotal,
md.total_lease_day AS leaseTotal,
CASE
WHEN ( md.total_lease_day + md.total_up_day ) = 0 THEN
NULL ELSE ROUND(( md.total_lease_day / ( md.total_lease_day + md.total_up_day )) * 100, 2 )
END AS rate
FROM
ma_dev_info md
LEFT JOIN ma_type mt ON md.type_id = mt.type_id
AND mt.`level` = '4'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.`level` = '3'
WHERE 1 =1
<if test="keyWord != null and keyWord != ''">
and mt1.type_name like concat('%', #{keyWord}, '%') or
md.device_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%')
</if>
GROUP BY
md.device_name
</select>
<select id="getReturnDev" resultType="com.bonus.material.largeScreen.entity.MaDevRateInfo">
SELECT
mdi.device_name AS deviceName,
mt.type_name AS modelCode,
mdi.identify_code AS identifyCode,
mi.`code` AS orderCode,
md.rent_over_user AS returnUser,
md.rent_over_time AS returnTime
FROM
ma_order_details md
LEFT JOIN ma_dev_info mdi ON md.ma_id = mdi.ma_id
LEFT JOIN ma_type mt ON mdi.type_id = mt.type_id
LEFT JOIN ma_order_info mi ON md.order_id = mi.order_id
AND mt.`level` = '4'
WHERE
md.order_status = '5'
<if test="keyWord != null and keyWord != ''">
and mdi.device_name like concat('%', #{keyWord}, '%') or
mt.type_name like concat('%', #{keyWord}, '%') or
mdi.identify_code like concat('%', #{keyWord}, '%') or
mi.`code` like concat('%', #{keyWord}, '%') or
md.rent_over_user like concat('%', #{keyWord}, '%')
</if>
GROUP BY
md.ma_id
ORDER BY
md.rent_over_time DESC
</select>
</mapper>