装备需求统计

This commit is contained in:
sxu 2024-12-31 14:29:25 +08:00
parent cde70380a4
commit 2a15873c62
9 changed files with 73 additions and 40 deletions

View File

@ -1,6 +1,5 @@
package com.bonus.material.largeScreen.controller;
import com.bonus.common.biz.domain.TypeInfo;
import com.bonus.common.biz.utils.MathUtil;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.device.domain.DevInfo;
@ -17,8 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* @Authorliang.chao
@ -60,11 +57,11 @@ public class LargeScreenController {
Integer devCount = devInfoMapper.getTodayDevCount();
OrderData orderData = new OrderData();
//今日订单成交数今日成交金额数
OrderDto orderDto = orderMapper.getTodayOderCount();
OrderDto orderDto = orderMapper.getTodayOrderCount();
// 今日需求发布数
Integer leaseNum = leaseInfoMapper.getTodayLeaseCount();
//今日需求接单数
Integer leaseOrderNum = leaseInfoMapper.getTodayLeaseOderCount();
Integer leaseOrderNum = leaseInfoMapper.getTodayLeaseOrderCount();
orderData.setTodayDevNum(devCount);
orderData.setTodayOrderNum(orderDto.getOrderNum());
orderData.setTodayCost(orderDto.getCost());
@ -91,7 +88,7 @@ public class LargeScreenController {
@ApiOperation("装备租赁统计")
@GetMapping("/devLeaseCount")
public AjaxResult devRentalCount() {
OrderDto orderDto = orderMapper.getOderCount();
OrderDto orderDto = orderMapper.getOrderCount();
OrderData orderData = new OrderData();
orderData.setOrderNum(orderDto.getOrderNum());
Integer devLeasingNum = devInfoMapper.getDevLeasingNum();
@ -101,6 +98,17 @@ public class LargeScreenController {
return AjaxResult.success(orderData);
}
@ApiOperation("装备需求统计")
@GetMapping("/demandCount")
public AjaxResult demandCount() {
OrderData orderData = new OrderData();
Integer leaseNum = leaseInfoMapper.getLeaseCount();
Integer leaseOrderNum = leaseInfoMapper.getLeaseOrderCount();
String topPopularTypeName = leaseInfoMapper.getTopPopularTypeName();
orderData.setLeaseNum(leaseNum);
orderData.setLeaseOrderRatio(MathUtil.calculatePercentage(leaseOrderNum, leaseNum));
orderData.setTopPopularTypeName(topPopularTypeName);
return AjaxResult.success(orderData);
}
}

View File

@ -55,4 +55,16 @@ public class OrderData {
@ApiModelProperty(value = "装备利用率")
private BigDecimal devUsageRatio;
@ApiModelProperty(value = "总需求数")
private Integer leaseNum;
@ApiModelProperty(value = "总接单数")
private Integer leaseOrderNum;
@ApiModelProperty(value = "接单率")
private BigDecimal leaseOrderRatio;
@ApiModelProperty(value = "最需装备")
private String topPopularTypeName;
}

View File

@ -1,6 +1,5 @@
package com.bonus.material.lease.mapper;
import com.bonus.material.largeScreen.entity.OrderData;
import com.bonus.material.lease.domain.MaLease;
import com.bonus.material.lease.domain.MaLeaseDetails;
import com.bonus.material.lease.domain.MaLeaseDto;
@ -117,7 +116,13 @@ public interface MaLeaseInfoMapper {
Integer getTodayLeaseCount();
Integer getTodayLeaseOderCount();
Integer getLeaseCount();
Integer getLeaseOrderCount();
String getTopPopularTypeName();
Integer getTodayLeaseOrderCount();
MaLeaseInfo getDevInfoById(Integer id);
}

View File

@ -1,6 +1,5 @@
package com.bonus.material.lease.service.impl;
import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.domain.BmFileInfo;
import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.OrderStatusEnum;
@ -104,7 +103,7 @@ public class LeaseRepairRecordServiceImpl implements LeaseRepairRecordService {
leaseRecordDto.setMaNumber(orderInfoDto.getMaNumber());
leaseRecordDto.setLeaseCompany(orderInfoDto.getCzcompanyName());
}
List<OrderDetailDto> orderDetailList = orderMapper.selectOrderDetailsByOderId(dto.getOrderId());
List<OrderDetailDto> orderDetailList = orderMapper.selectOrderDetailsByOrderId(dto.getOrderId());
if (CollectionUtils.isNotEmpty(orderDetailList)) {
for (OrderDetailDto detailDto : orderDetailList) {
detailDto.setDays(detailDto.getDateDays() == null ? detailDto.getDays() : String.valueOf(detailDto.getDateDays()));

View File

@ -1,50 +1,32 @@
package com.bonus.material.order.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.text.StrBuilder;
import com.bonus.common.biz.enums.MaStatusEnum;
import com.bonus.common.biz.enums.OrderStatusEnum;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.book.domain.BookCarInfoDto;
import com.bonus.material.contract.domain.BmContract;
import com.bonus.material.contract.service.BmContractService;
import com.bonus.material.device.domain.vo.DevInfoVo;
import com.bonus.material.lease.domain.LeaseRepairRecord;
import com.bonus.material.lease.mapper.LeaseRepairRecordMapper;
import com.bonus.material.order.domain.OrderDetailDto;
import com.bonus.material.order.domain.OrderInfoDto;
import com.bonus.material.order.mapper.OrderMapper;
import com.bonus.material.order.service.OrderService;
import com.bonus.system.api.RemoteFileService;
import com.bonus.system.api.domain.SysFile;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.text.StrSubstitutor;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -170,7 +152,7 @@ public class OrderController extends BaseController {
@GetMapping("/leaseAgreement")
public AjaxResult leaseAgreement(String orderId, Map<String, String> replacements) throws IOException, ParseException {
OrderInfoDto orderInfoDto = orderService.getAgreementByOrderId(orderId);
List<OrderDetailDto> orderDetailsByOrderId = orderMapper.selectOrderDetailsByOderId(orderId);
List<OrderDetailDto> orderDetailsByOrderId = orderMapper.selectOrderDetailsByOrderId(orderId);
BmContract bmContract = new BmContract();
bmContract.setStatus(1);
bmContract.setOwnerCom(orderInfoDto.getCompanyId().longValue());

View File

@ -39,7 +39,7 @@ public interface OrderMapper {
Integer updateDevCount(OrderDetailDto orderDetailDto);
Integer updateAddDevCount(OrderDetailDto orderDetailDto);
List<OrderDetailDto> selectOrderDetailsByOderId(String orderId);
List<OrderDetailDto> selectOrderDetailsByOrderId(String orderId);
List<OrderDetailDto> getOrderDetailsByOrderId(Integer orderId);
@ -61,7 +61,7 @@ public interface OrderMapper {
OrderData getCompanysCost();
OrderDto getTodayOderCount();
OrderDto getTodayOrderCount();
OrderDto getOderCount();
OrderDto getOrderCount();
}

View File

@ -8,7 +8,6 @@ import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.encryption.Sm4Utils;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.comprehensive.entity.RentDetailDto;
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.largeScreen.entity.OrderData;
@ -203,7 +202,7 @@ public class OrderServiceImpl implements OrderService {
@Override
public OrderInfoDto getOrderDetailsById(OrderDetailDto dto) throws Exception {
OrderInfoDto orderInfoDto = orderMapper.getOrderDetailsById(dto);
List<OrderDetailDto> list = orderMapper.selectOrderDetailsByOderId(dto.getOrderId().toString());
List<OrderDetailDto> list = orderMapper.selectOrderDetailsByOrderId(dto.getOrderId().toString());
Optional<OrderDetailDto> minOrderStatus = list.stream()
.min((p1, p2) -> Integer.compare(Integer.parseInt(p1.getOrderStatus()), Integer.parseInt(p2.getOrderStatus())));
if (minOrderStatus.isPresent()) {

View File

@ -413,15 +413,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE
DATE_FORMAT( create_time, '%Y-%m-%d' ) = DATE_FORMAT(NOW(),'%Y-%m-%d')
</select>
<select id="getTodayLeaseOderCount" resultType="java.lang.Integer">
<select id="getTodayLeaseOrderCount" resultType="java.lang.Integer">
SELECT
COUNT(1) as leaseOrderNum
FROM
ma_lease_info
WHERE
DATE_FORMAT( order_time, '%Y-%m-%d' ) = DATE_FORMAT(NOW(),'%Y-%m-%d')
and lease_status in (1,3)
and lease_status in (1,3)
</select>
<select id="getLeaseCount" resultType="java.lang.Integer">
SELECT
COUNT(1) as leaseNum
FROM
ma_lease_info
</select>
<select id="getLeaseOrderCount" resultType="java.lang.Integer">
SELECT
COUNT(1) as leaseOrderNum
FROM
ma_lease_info
WHERE
lease_status in (1,3)
</select>
<select id="getTopPopularTypeName" resultType="java.lang.String">
select mt.type_name from (
SELECT type_id
FROM ma_lease_details
group by type_id
order by count(type_id) desc limit 1
) a
left join ma_type mt on mt.type_id = a.type_id
</select>
<select id="getDevInfoById" resultType="com.bonus.material.lease.domain.MaLeaseInfo">
SELECT
mli.*,

View File

@ -255,7 +255,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE
mt.del_flag = '0' and moi.order_id = #{orderId} limit 1
</select>
<select id="selectOrderDetailsByOderId" resultType="com.bonus.material.order.domain.OrderDetailDto">
<select id="selectOrderDetailsByOrderId" resultType="com.bonus.material.order.domain.OrderDetailDto">
SELECT
mdi.ma_id as maId,
mdi.code as code,
@ -421,7 +421,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
GROUP BY
mdi.own_co
</select>
<select id="getTodayOderCount" resultType="com.bonus.material.largeScreen.entity.OrderDto">
<select id="getTodayOrderCount" resultType="com.bonus.material.largeScreen.entity.OrderDto">
SELECT
count( moi.order_id ) orderNum,
ifnull(SUM( moi.cost ), 0) cost
@ -431,7 +431,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
DATE_FORMAT( moi.create_time, '%Y-%m-%d' ) = DATE_FORMAT(NOW(),'%Y-%m-%d')
</select>
<select id="getOderCount" resultType="com.bonus.material.largeScreen.entity.OrderDto">
<select id="getOrderCount" resultType="com.bonus.material.largeScreen.entity.OrderDto">
SELECT
count( moi.order_id ) orderNum,
ifnull(SUM( moi.cost ), 0) cost