This commit is contained in:
mashuai 2025-08-26 09:25:06 +08:00
parent 876b06ab01
commit b7d861f9b6
8 changed files with 139 additions and 41 deletions

View File

@ -192,12 +192,12 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
BigDecimal totalPendingScrapNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal totalPendingScrapNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalScrapNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal totalScrapNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal totalAllNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal totalAllNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal fiveReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); /*BigDecimal fiveReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal tenReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal tenReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
BigDecimal tenPlusReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal tenPlusReplacementNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
String fiveReplacementRate = "0%"; String fiveReplacementRate = "0%";
String tenReplacementRate = "0%"; String tenReplacementRate = "0%";
String tenPlusReplacementRate = "0%"; String tenPlusReplacementRate = "0%";*/
List<RetainedEquipmentInfo> recordList = complexQueryMapper.getRetainedEquipmentList(bean); List<RetainedEquipmentInfo> recordList = complexQueryMapper.getRetainedEquipmentList(bean);
if (CollectionUtils.isNotEmpty(recordList)) { if (CollectionUtils.isNotEmpty(recordList)) {
for (RetainedEquipmentInfo retainedEquipmentInfo : recordList) { for (RetainedEquipmentInfo retainedEquipmentInfo : recordList) {
@ -209,15 +209,15 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
totalPendingScrapNum = totalPendingScrapNum.add(retainedEquipmentInfo.getPendingScrapNum()); totalPendingScrapNum = totalPendingScrapNum.add(retainedEquipmentInfo.getPendingScrapNum());
totalScrapNum = totalScrapNum.add(retainedEquipmentInfo.getScrapNum()); totalScrapNum = totalScrapNum.add(retainedEquipmentInfo.getScrapNum());
totalAllNum = totalAllNum.add(retainedEquipmentInfo.getAllNum()); totalAllNum = totalAllNum.add(retainedEquipmentInfo.getAllNum());
fiveReplacementNum = fiveReplacementNum.add(retainedEquipmentInfo.getFiveReplacementNum()); /*fiveReplacementNum = fiveReplacementNum.add(retainedEquipmentInfo.getFiveReplacementNum());
tenReplacementNum = tenReplacementNum.add(retainedEquipmentInfo.getTenReplacementNum()); tenReplacementNum = tenReplacementNum.add(retainedEquipmentInfo.getTenReplacementNum());
tenPlusReplacementNum = tenPlusReplacementNum.add(retainedEquipmentInfo.getTenPlusReplacementNum()); tenPlusReplacementNum = tenPlusReplacementNum.add(retainedEquipmentInfo.getTenPlusReplacementNum());*/
BigDecimal equipmentPrice = retainedEquipmentInfo.getAllNum() BigDecimal equipmentPrice = retainedEquipmentInfo.getAllNum()
.multiply(retainedEquipmentInfo.getBuyPrice()) .multiply(retainedEquipmentInfo.getBuyPrice())
.divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP); .divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP);
totalPrice = totalPrice.add(equipmentPrice); totalPrice = totalPrice.add(equipmentPrice);
BigDecimal allNum = retainedEquipmentInfo.getAllNum(); BigDecimal allNum = retainedEquipmentInfo.getAllNum();
if (allNum.compareTo(BigDecimal.ZERO) == 0) { /*if (allNum.compareTo(BigDecimal.ZERO) == 0) {
fiveReplacementRate = "0%"; fiveReplacementRate = "0%";
tenReplacementRate = "0%"; tenReplacementRate = "0%";
tenPlusReplacementRate = "0%"; tenPlusReplacementRate = "0%";
@ -234,13 +234,13 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
.divide(allNum, 4, RoundingMode.HALF_DOWN) .divide(allNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, RoundingMode.HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
} }*/
retainedEquipmentInfo.setTotalPrice(equipmentPrice); retainedEquipmentInfo.setTotalPrice(equipmentPrice);
retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate); /*retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate);
retainedEquipmentInfo.setTenReplacementRate(tenReplacementRate); retainedEquipmentInfo.setTenReplacementRate(tenReplacementRate);
retainedEquipmentInfo.setTenPlusReplacementRate(tenPlusReplacementRate); retainedEquipmentInfo.setTenPlusReplacementRate(tenPlusReplacementRate);*/
} }
if (totalAllNum.compareTo(BigDecimal.ZERO) == 0) { /*if (totalAllNum.compareTo(BigDecimal.ZERO) == 0) {
fiveReplacementRate = "0%"; fiveReplacementRate = "0%";
tenReplacementRate = "0%"; tenReplacementRate = "0%";
tenPlusReplacementRate = "0%"; tenPlusReplacementRate = "0%";
@ -257,7 +257,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
.divide(totalAllNum, 4, RoundingMode.HALF_DOWN) .divide(totalAllNum, 4, RoundingMode.HALF_DOWN)
.multiply(new BigDecimal(100)) .multiply(new BigDecimal(100))
.setScale(2, RoundingMode.HALF_UP) + "%"; .setScale(2, RoundingMode.HALF_UP) + "%";
} }*/
if (bean.getIsExport() == 0) { if (bean.getIsExport() == 0) {
RetainedEquipmentInfo retainedEquipmentInfo = new RetainedEquipmentInfo(); RetainedEquipmentInfo retainedEquipmentInfo = new RetainedEquipmentInfo();
retainedEquipmentInfo.setStoreNum(totalStoreNum); retainedEquipmentInfo.setStoreNum(totalStoreNum);
@ -269,9 +269,9 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
retainedEquipmentInfo.setScrapNum(totalScrapNum); retainedEquipmentInfo.setScrapNum(totalScrapNum);
retainedEquipmentInfo.setAllNum(totalAllNum); retainedEquipmentInfo.setAllNum(totalAllNum);
retainedEquipmentInfo.setTotalPrice(totalPrice); retainedEquipmentInfo.setTotalPrice(totalPrice);
retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate); /*retainedEquipmentInfo.setFiveReplacementRate(fiveReplacementRate);
retainedEquipmentInfo.setTenReplacementRate(tenReplacementRate); retainedEquipmentInfo.setTenReplacementRate(tenReplacementRate);
retainedEquipmentInfo.setTenPlusReplacementRate(tenPlusReplacementRate); retainedEquipmentInfo.setTenPlusReplacementRate(tenPlusReplacementRate);*/
retainedEquipmentInfo.setUnit("合计"); retainedEquipmentInfo.setUnit("合计");
recordList.add(0, retainedEquipmentInfo); recordList.add(0, retainedEquipmentInfo);
} }
@ -397,6 +397,10 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
Map<Long, UseStorageInfo> leaseInfoMap = Collections.emptyMap(); Map<Long, UseStorageInfo> leaseInfoMap = Collections.emptyMap();
if (!leaseIds.isEmpty()) { if (!leaseIds.isEmpty()) {
leaseInfoMap = complexQueryMapper.batchSelectInfo(leaseIds).stream() leaseInfoMap = complexQueryMapper.batchSelectInfo(leaseIds).stream()
// 先过滤掉null元素避免后续调用方法时空指针
.filter(Objects::nonNull)
// 再过滤LeaseId为null的元素
.filter(info -> info.getLeaseId() != null)
.collect(Collectors.toMap( .collect(Collectors.toMap(
UseStorageInfo::getLeaseId, UseStorageInfo::getLeaseId,
info -> info, info -> info,

View File

@ -62,11 +62,15 @@ public class PushProDataUseInfoController extends BaseController {
} }
} }
// 查询七大类设备保有量在用量再修量库存量 /**
* 查询七大类设备保有量在用量再修量库存量
* @param bean
* @return
*/
@GetMapping(value = "getNumsByStatics") @GetMapping(value = "getNumsByStatics")
public AjaxResult getNumsByStatics(ProIdsBean bean) { public AjaxResult getNumsByStatics(ProIdsBean bean) {
try { try {
HashMap<String, Object> results = service.getNumsByStatics(bean); List<TotalNumsBean> results = service.getNumsByStatics(bean);
return AjaxResult.success(results); return AjaxResult.success(results);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString(), e); logger.error(e.toString(), e);

View File

@ -21,9 +21,19 @@ public class ProIdsBean {
private String proCenter; private String proCenter;
private Integer deptId; private Integer deptId;
private BigDecimal typeNum; private BigDecimal typeNum;
// 1 牵张设备 2 抱杆 3动力设备 4 变电专业设备 5安全工器具 6自主创新设备 7其他
/**
* 1 牵张设备 2 抱杆 3动力设备 4 变电专业设备 5安全工器具 6自主创新设备 7其他
*/
private Integer isStatics; private Integer isStatics;
// 0 检验临期 1 检验超期 /**
* 0 检验临期 1 检验超期
*/
private Integer type; private Integer type;
/**
* 公司名称
*/
private String unitName;
} }

View File

@ -14,8 +14,24 @@ public class StaticsNumsBean {
private BigDecimal useNum; private BigDecimal useNum;
private BigDecimal repairNum; private BigDecimal repairNum;
private BigDecimal num; private BigDecimal num;
// 检验临期数量
/**
* 检验临期数量
*/
private BigDecimal ApproachingNum; private BigDecimal ApproachingNum;
// 检验超期数量
/**
* 检验超期数量
*/
private BigDecimal TimeoutNum; private BigDecimal TimeoutNum;
/**
* 1 牵张设备 2 抱杆 3动力设备 4 变电专业设备 5安全工器具 6自主创新设备 7其他
*/
private Integer isStatics;
/**
* 单位名称
*/
private String unitName;
} }

View File

@ -0,0 +1,47 @@
package com.bonus.material.push.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @Authorliang.chao
* @Date2025/8/23 - 16:29
*/
@Data
@ApiModel("装备总览")
public class TotalNumsBean {
@ApiModelProperty(value = "装备总览")
private BigDecimal total;
@ApiModelProperty("分层列表")
List<SingleEquipmentStatistic> list;
/**
* 单个分层
*/
@Data
@ApiModel("单个分层实体vo")
public static class SingleEquipmentStatistic {
@ApiModelProperty("类别名称")
private String equipmentName;
@ApiModelProperty("保有量")
private BigDecimal inventoryNum;
@ApiModelProperty("在用量")
private BigDecimal useNum;
@ApiModelProperty("维修数量")
private BigDecimal repairNum;
@ApiModelProperty("库存量")
private BigDecimal num;
}
}

View File

@ -1,9 +1,6 @@
package com.bonus.material.push.service; package com.bonus.material.push.service;
import com.bonus.material.push.domain.InventoryAlertBean; import com.bonus.material.push.domain.*;
import com.bonus.material.push.domain.ProIdsBean;
import com.bonus.material.push.domain.MachineInfoBean;
import com.bonus.material.push.domain.StaticsNumsBean;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -22,7 +19,7 @@ public interface ProDataUseInfoService {
* @param bean * @param bean
* @return * @return
*/ */
HashMap<String, Object> getNumsByStatics(ProIdsBean bean); List<TotalNumsBean> getNumsByStatics(ProIdsBean bean);
List<StaticsNumsBean> getApproachingAndTimeout(ProIdsBean bean); List<StaticsNumsBean> getApproachingAndTimeout(ProIdsBean bean);

View File

@ -1,10 +1,8 @@
package com.bonus.material.push.service.impl; package com.bonus.material.push.service.impl;
import com.bonus.material.push.domain.InventoryAlertBean; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.material.push.domain.MachineInfoBean; import com.bonus.material.push.domain.*;
import com.bonus.material.push.domain.ProIdsBean;
import com.bonus.material.push.domain.StaticsNumsBean;
import com.bonus.material.push.mapper.ProDataUseInfoMapper; import com.bonus.material.push.mapper.ProDataUseInfoMapper;
import com.bonus.material.push.service.ProDataUseInfoService; import com.bonus.material.push.service.ProDataUseInfoService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -54,18 +52,18 @@ public class ProDataUseInfoImpl implements ProDataUseInfoService {
* @return * @return
*/ */
@Override @Override
public HashMap<String, Object> getNumsByStatics(ProIdsBean bean) { public List<TotalNumsBean> getNumsByStatics(ProIdsBean bean) {
HashMap<String, Object> hashMap = new HashMap<>(2); TotalNumsBean totalNumsBean = new TotalNumsBean();
List<TotalNumsBean> beans = new ArrayList<>();
BigDecimal totalNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP); BigDecimal totalNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
List<StaticsNumsBean> list = proDataUseInfoMapper.getNumsByStatics(bean); List<StaticsNumsBean> list = proDataUseInfoMapper.getNumsByStatics(bean);
if (CollectionUtils.isNotEmpty(list)) {
for (StaticsNumsBean staticsNumsBean : list) { for (StaticsNumsBean staticsNumsBean : list) {
totalNum = totalNum.add(staticsNumsBean.getInventoryNum()); totalNum = totalNum.add(staticsNumsBean.getInventoryNum());
} }
//总数量 }
hashMap.put("total", totalNum); return beans;
// 数据集合
hashMap.put("list", list);
return hashMap;
} }
@Override @Override

View File

@ -74,7 +74,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
IFNULL(subquery0.num, 0) + IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) IFNULL(subquery0.num, 0) + IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0)
ELSE ELSE
IFNULL(mt.storage_num, 0) + IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) IFNULL(mt.storage_num, 0) + IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0)
END AS inventoryNum END AS inventoryNum,
subquery1.unitName AS unitName,
mt2.is_statics AS isStatics
FROM ma_type mt FROM ma_type mt
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
@ -104,7 +106,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt2.type_name AS typeName, mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId, mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName, mt.type_name AS typeModelName,
SUM(IFNULL( sai.num, 0 )) AS usNum SUM(IFNULL( sai.num, 0 )) AS usNum,
sd.dept_name AS unitName
FROM FROM
slt_agreement_info sai slt_agreement_info sai
left join bm_agreement_info bai on sai.agreement_id = bai.agreement_id left join bm_agreement_info bai on sai.agreement_id = bai.agreement_id
@ -113,9 +116,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
WHERE WHERE
sai.`status` = '0' and sai.`is_slt` = '0' sai.`status` = '0' and sai.`is_slt` = '0'
<if test="unitName != null and unitName !=''">
AND sd.dept_name = #{unitName}
</if>
<if test="proId != null">
AND bp.pro_id = #{proId} AND bp.pro_id = #{proId}
</if>
<if test="isStatics != null">
and mt2.is_statics = #{isStatics}
</if>
AND sai.end_time IS NULL AND sai.end_time IS NULL
AND sai.back_id IS NULL AND sai.back_id IS NULL
GROUP BY mt.type_id GROUP BY mt.type_id
@ -133,7 +145,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.type_name AS typeModelName, mt.type_name AS typeModelName,
SUM( SUM(
IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) - IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) -
IFNULL(rad.scrap_num, 0)) AS repairNum IFNULL(rad.scrap_num, 0)) AS repairNum,
sd.dept_name AS unitName
FROM repair_apply_details rad FROM repair_apply_details rad
LEFT JOIN tm_task tt ON rad.task_id = tt.task_id LEFT JOIN tm_task tt ON rad.task_id = tt.task_id
LEFT JOIN tm_task_agreement tta ON tt.task_id = tta.task_id LEFT JOIN tm_task_agreement tta ON tt.task_id = tta.task_id
@ -143,9 +156,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
LEFT JOIN sys_dept sd ON sd.dept_id = bp.imp_unit
WHERE WHERE
rad.status = '0' rad.status = '0'
<if test="unitName != null and unitName !=''">
AND sd.dept_name = #{unitName}
</if>
<if test="proId != null">
AND bp.pro_id = #{proId} AND bp.pro_id = #{proId}
</if>
<if test="isStatics != null">
and mt2.is_statics = #{isStatics}
</if>
GROUP BY GROUP BY
mt.type_id) AS subquery2 ON subquery2.type_id = mt.type_id mt.type_id) AS subquery2 ON subquery2.type_id = mt.type_id
LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id