This commit is contained in:
mashuai 2025-03-17 13:06:03 +08:00
parent c230d6b179
commit 69938dc39f
5 changed files with 62 additions and 87 deletions

View File

@ -168,5 +168,7 @@ public class DevInfoVo extends DevInfo {
@ApiModelProperty(value = "订单数") @ApiModelProperty(value = "订单数")
private Integer orderNum; private Integer orderNum;
private Long orderId;
} }

View File

@ -229,12 +229,6 @@ public interface DevInfoMapper {
*/ */
List<DevInfoVo> getLeaseDevList(DevInfoVo devInfo); List<DevInfoVo> getLeaseDevList(DevInfoVo devInfo);
/**
* 查询装备对应所属公司
* @return
*/
List<DevInfoVo> getCompanyList();
/** /**
* 查询装备对应所属公司 * 查询装备对应所属公司
@ -244,6 +238,8 @@ public interface DevInfoMapper {
List<DevInfoVo> selectDevInfoHotListRatio(DevInfoVo devInfoVo); List<DevInfoVo> selectDevInfoHotListRatio(DevInfoVo devInfoVo);
List<DevInfoVo> getOrderByCompanyId(int companyId); List<DevInfoVo> getOrderByCompanyId(String companyId);
DevInfoVo getBuyCompanyList(DevInfoVo infoVo);
} }

View File

@ -8,7 +8,6 @@ import com.bonus.material.device.domain.vo.DevInfoVo;
import com.bonus.material.device.mapper.DevInfoMapper; import com.bonus.material.device.mapper.DevInfoMapper;
import com.bonus.material.device.service.DevInfoService; import com.bonus.material.device.service.DevInfoService;
import com.bonus.material.largeScreen.entity.OrderData; import com.bonus.material.largeScreen.entity.OrderData;
import com.bonus.material.largeScreen.entity.OrderDto;
import com.bonus.material.largeScreen.service.LargeScreenService; import com.bonus.material.largeScreen.service.LargeScreenService;
import com.bonus.material.lease.domain.MaLeaseInfo; import com.bonus.material.lease.domain.MaLeaseInfo;
import com.bonus.material.lease.mapper.MaLeaseInfoMapper; import com.bonus.material.lease.mapper.MaLeaseInfoMapper;
@ -167,64 +166,43 @@ public class LargeScreenController {
@ApiOperation("租赁装备数及订单数") @ApiOperation("租赁装备数及订单数")
@GetMapping("/getCompanyNum") @GetMapping("/getCompanyNum")
public AjaxResult getCompanyNum() { public AjaxResult getCompanyNum(DevInfoVo dto) {
// 查询装备对应订单数 List<DevInfoVo> infoVos = new ArrayList<>();
List<DevInfoVo> list = devInfoMapper.getCompanyNum(); // 查询公司对应订单数
// 查询装备对应所属公司 List<DevInfoVo> list = devInfoMapper.getOrderByCompanyId(dto.getCompanyId());
List<DevInfoVo> companyList = devInfoMapper.getCompanyList();
// 使用 Map 存储每个公司 ID 对应的订单总数
Map<String, Integer> orderNumMap = new HashMap<>(); Map<String, Integer> orderNumMap = new HashMap<>();
for (DevInfoVo devInfoVo : list) { if (CollectionUtil.isNotEmpty(list)) {
String companyId = devInfoVo.getCompanyId(); for (DevInfoVo infoVo : list) {
// 如果 Map 中已经存在该公司 ID则累加订单数否则将当前订单数作为初始值 // 根据订单id查询所买公司id和名称
orderNumMap.put(companyId, orderNumMap.getOrDefault(companyId, 0) + devInfoVo.getOrderNum()); DevInfoVo infoVo1 = devInfoMapper.getBuyCompanyList(infoVo);
} // 如果 Map 中已经存在该公司 ID,则数量增加1
if (CollectionUtil.isNotEmpty(companyList)) { orderNumMap.compute(infoVo1.getCompanyId(), (key, value) -> value == null ? 1 : value + 1);
for (DevInfoVo infoVo : companyList) {
String companyId = infoVo.getCompanyId();
// Map 中获取该公司 ID 对应的订单总数
Integer orderNum = orderNumMap.getOrDefault(companyId, 0);
infoVo.setOrderNum(orderNum);
} }
// 根据 orderNum 降序排序并取前 9 个元素 }
companyList = companyList.stream() // 根据orderNumMap去遍历查询公司名称
if (CollectionUtil.isNotEmpty(orderNumMap)) {
for (Map.Entry<String, Integer> entry : orderNumMap.entrySet()) {
DevInfoVo vo = new DevInfoVo();
DevInfoVo devInfoVo = devInfoMapper.selectCompanyById(entry.getKey());
vo.setCompanyId(devInfoVo.getCompanyId());
vo.setCompanyName(devInfoVo.getCompanyName());
vo.setOrderNum(entry.getValue());
infoVos.add(vo);
}
if (CollectionUtil.isNotEmpty(list)) {
DevInfoVo infoVo = list.get(0);
infoVo.setOrderNum(list.size());
infoVos.add(0, infoVo);
}
// 根据 orderNum 降序排序并取前 10 个元素
infoVos = infoVos.stream()
.sorted((vo1, vo2) -> Integer.compare(vo2.getOrderNum(), vo1.getOrderNum())) .sorted((vo1, vo2) -> Integer.compare(vo2.getOrderNum(), vo1.getOrderNum()))
.limit(9) .limit(10)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
return AjaxResult.success(companyList); return AjaxResult.success(infoVos);
} }
/* @ApiOperation("租赁装备数及订单数")
@GetMapping("/getCompanyNum")
public AjaxResult getCompanyNum(int companyId) {
// 查询装备对应订单数
List<DevInfoVo> list = devInfoMapper.getOrderByCompanyId(companyId);
// 查询装备对应所属公司
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("订单数据") // @ApiOperation("订单数据")
// @GetMapping("/orderData") // @GetMapping("/orderData")
// public AjaxResult getOrderData() { // public AjaxResult getOrderData() {

View File

@ -1,5 +1,9 @@
package com.bonus.material.notice.service.impl; package com.bonus.material.notice.service.impl;
import cn.hutool.json.JSONObject;
import com.ah.sbd.SmsTool;
import com.ah.sbd.utils.param.SmsParam;
import com.bonus.common.biz.constant.BmConfigItems;
import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.HttpCodeEnum;
import com.bonus.common.biz.enums.NoticeSmsEnum; import com.bonus.common.biz.enums.NoticeSmsEnum;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
@ -130,9 +134,10 @@ public class NoticeServiceImpl implements NoticeService {
phoneNumber = Sm4Utils.decrypt(info.getPhoneNumber()); phoneNumber = Sm4Utils.decrypt(info.getPhoneNumber());
} }
// 根据电话号码数量发送短信 // 根据电话号码数量发送短信
//JSONObject sendResult = SmsTool.sendSms(new SmsParam(phoneNumber, notice.getNoticeContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY); JSONObject sendResult = SmsTool.sendSms(new SmsParam(phoneNumber, notice.getNoticeContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
String sendResult = SmsUtils.smsToken(phoneNumber, notice.getNoticeContent(), ""); // 公司内部短信发送
if (StringUtils.isBlank(sendResult)) { //String sendResult = SmsUtils.smsToken(phoneNumber, notice.getNoticeContent(), "");
if (StringUtils.isBlank(sendResult.toString())) {
return AjaxResult.error("短信发送失败"); return AjaxResult.error("短信发送失败");
} else { } else {
System.out.println("短信发送成功:" + sendResult); System.out.println("短信发送成功:" + sendResult);
@ -195,9 +200,9 @@ public class NoticeServiceImpl implements NoticeService {
phoneNumber = Sm4Utils.decrypt(notice1.getPhoneNumber()); phoneNumber = Sm4Utils.decrypt(notice1.getPhoneNumber());
} }
// 根据电话号码数量发送短信 // 根据电话号码数量发送短信
//JSONObject sendResult = SmsTool.sendSms(new SmsParam(phoneNumber, notice.getNoticeContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY); JSONObject sendResult = SmsTool.sendSms(new SmsParam(phoneNumber, notice.getNoticeContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY);
String sendResult = SmsUtils.smsToken(phoneNumber, notice.getNoticeContent(), ""); //String sendResult = SmsUtils.smsToken(phoneNumber, notice.getNoticeContent(), "");
if (StringUtils.isBlank(sendResult)) { if (StringUtils.isBlank(sendResult.toString())) {
return AjaxResult.error("短信发送失败"); return AjaxResult.error("短信发送失败");
} else { } else {
System.out.println("短信发送成功:" + sendResult); System.out.println("短信发送成功:" + sendResult);

View File

@ -1105,31 +1105,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
d.create_time DESC d.create_time DESC
</select> </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 id="getCompanyNum" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
SELECT SELECT
md.ma_id AS maId, order_id as orderId
COUNT( md.ma_id ) AS orderNum ,
mdi.own_co AS companyId
FROM FROM
ma_order_details md ma_order_details
LEFT JOIN ma_dev_info mdi on md.ma_id = mdi.ma_id WHERE order_status != 0 and order_status != 99
WHERE md.order_status != 0 and md.order_status != 99
GROUP BY GROUP BY
md.ma_id order_id
</select> </select>
<select id="selectDevInfoHotListRatio" resultType="com.bonus.material.device.domain.vo.DevInfoVo"> <select id="selectDevInfoHotListRatio" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
SELECT SELECT
@ -1183,13 +1166,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
md.ma_id AS maId, md.ma_id AS maId,
COUNT( md.order_id ) AS orderNum , COUNT( md.order_id ) AS orderNum ,
mdi.own_co AS companyId, mdi.own_co AS companyId,
md.order_id AS orderCode md.order_id AS orderId,
sd.dept_name AS companyName
FROM FROM
ma_order_details md ma_order_details md
LEFT JOIN ma_dev_info mdi on md.ma_id = mdi.ma_id LEFT JOIN ma_dev_info mdi on md.ma_id = mdi.ma_id
LEFT JOIN sys_dept sd on mdi.own_co = sd.dept_id
WHERE md.order_status != 0 and md.order_status != 99 and mdi.own_co =#{companyId} WHERE md.order_status != 0 and md.order_status != 99 and mdi.own_co =#{companyId}
GROUP BY GROUP BY
md.order_id md.order_id
</select> </select>
<select id="getBuyCompanyList" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
SELECT
moi.buyer_company as companyId,
sd.dept_name as companyName
FROM
ma_order_info moi
LEFT JOIN sys_dept sd ON moi.buyer_company = sd.dept_id
WHERE moi.order_id = #{orderId}
</select>
</mapper> </mapper>