This commit is contained in:
mashuai 2025-08-24 15:03:03 +08:00
parent 58245dd94c
commit e78a42de1f
4 changed files with 122 additions and 5 deletions

View File

@ -66,7 +66,7 @@ public class PushProDataUseInfoController extends BaseController {
@GetMapping(value = "getNumsByStatics")
public AjaxResult getNumsByStatics(ProIdsBean bean) {
try {
List<StaticsNumsBean> results = service.getNumsByStatics(bean);
HashMap<String, Object> results = service.getNumsByStatics(bean);
return AjaxResult.success(results);
} catch (Exception e) {
logger.error(e.toString(), e);

View File

@ -5,6 +5,7 @@ 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.List;
/**
@ -16,7 +17,12 @@ public interface ProDataUseInfoService {
List<MachineInfoBean> getMachineDetails(ProIdsBean bean);
List<StaticsNumsBean> getNumsByStatics(ProIdsBean bean);
/**
* 查询七大类设备保有量在用量再修量库存量
* @param bean
* @return
*/
HashMap<String, Object> getNumsByStatics(ProIdsBean bean);
List<StaticsNumsBean> getApproachingAndTimeout(ProIdsBean bean);

View File

@ -11,7 +11,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
@ -46,9 +48,24 @@ public class ProDataUseInfoImpl implements ProDataUseInfoService {
return machineDetails;
}
/**
* 统计数据
* @param bean
* @return
*/
@Override
public List<StaticsNumsBean> getNumsByStatics(ProIdsBean bean) {
return proDataUseInfoMapper.getNumsByStatics(bean);
public HashMap<String, Object> getNumsByStatics(ProIdsBean bean) {
HashMap<String, Object> hashMap = new HashMap<>(2);
BigDecimal totalNum = BigDecimal.ZERO.setScale(3, RoundingMode.HALF_UP);
List<StaticsNumsBean> list = proDataUseInfoMapper.getNumsByStatics(bean);
for (StaticsNumsBean staticsNumsBean : list) {
totalNum = totalNum.add(staticsNumsBean.getInventoryNum());
}
//总数量
hashMap.put("total", totalNum);
// 数据集合
hashMap.put("list", list);
return hashMap;
}
@Override

View File

@ -60,7 +60,101 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where mtk.type_id = #{typeId}
</select>
<select id="getNumsByStatics" resultType="com.bonus.material.push.domain.StaticsNumsBean">
select
SELECT
CASE mt.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0)
ELSE
IFNULL(mt.storage_num, 0)
END AS num,
IFNULL(subquery1.usNum, 0) AS useNum,
IFNULL(subquery2.repairNum, 0) AS repairNum,
CASE mt.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0) + IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0)
ELSE
IFNULL(mt.storage_num, 0) + IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0)
END AS inventoryNum
FROM ma_type mt
LEFT JOIN (
SELECT
mt.type_id,
mt4.type_name AS constructionType,
mt4.type_id AS firstTypeId,
mt3.type_name AS materialType,
mt3.type_id AS secondTypeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
count(mm.ma_id) AS num
FROM ma_machine mm
LEFT JOIN ma_type mt ON mt.type_id = mm.type_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 mt4 ON mt4.type_id = mt3.parent_id
WHERE mm.ma_code is not null and mm.ma_status in (1)
GROUP BY mt.type_id) AS subquery0 ON subquery0.type_id = mt.type_id
LEFT JOIN (
SELECT
mt.type_id,
mt4.type_name AS constructionType,
mt4.type_id AS firstTypeId,
mt3.type_name AS materialType,
mt3.type_id AS secondTypeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IFNULL( sai.num, 0 )) AS usNum
FROM
slt_agreement_info sai
left join bm_agreement_info bai on sai.agreement_id = bai.agreement_id
left join bm_project bp on bai.project_id = bp.pro_id
LEFT JOIN ma_type mt ON mt.type_id = sai.type_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 mt4 ON mt4.type_id = mt3.parent_id
WHERE
sai.`status` = '0' and sai.`is_slt` = '0'
AND bp.pro_id = #{proId}
AND sai.end_time IS NULL
AND sai.back_id IS NULL
GROUP BY mt.type_id
) AS subquery1
ON mt.type_id = subquery1.type_id
LEFT JOIN (
SELECT
mt.type_id,
mt4.type_name AS constructionType,
mt4.type_id AS firstTypeId,
mt3.type_name AS materialType,
mt3.type_id AS secondTypeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(
IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) -
IFNULL(rad.scrap_num, 0)) AS repairNum
FROM repair_apply_details rad
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 bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
LEFT JOIN ma_type mt ON mt.type_id = rad.type_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 mt4 ON mt4.type_id = mt3.parent_id
WHERE
rad.status = '0'
AND bp.pro_id = #{proId}
GROUP BY
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 mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
WHERE mt.del_flag = '0' and mt.`level` = '4'
<if test="isStatics != null">
and mt2.is_statics = #{isStatics}
</if>
</select>
<select id="getApproachingAndTimeout" resultType="com.bonus.material.push.domain.StaticsNumsBean">
SELECT