数据推送及优化

This commit is contained in:
mashuai 2025-11-18 18:18:08 +08:00
parent b7aae9dd66
commit 37f581eeeb
3 changed files with 216 additions and 51 deletions

View File

@ -128,7 +128,8 @@ public class BmProjectController extends BaseController
public AjaxResult getProjectList(String token)
{
try {
String url = "http://10.138.55.105:8097/data-center/dc-base/api/project/list";
String url = "http://10.138.55.128:30968/dc-base/api/project/list";
//String url = "http://10.138.55.105:8097/data-center/dc-base/api/project/list";
//String url = "http://192.168.1.167:8097/data-center/dc-base/api/project/list";
String res = HttpClient.sendGet(url,token);
JSONObject jsonObject = JSONObject.parseObject(res);

View File

@ -1,9 +1,12 @@
package com.bonus.material.push.controller;
import cn.hutool.core.convert.Convert;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bonus.common.biz.config.ListPagingUtil;
import com.bonus.common.biz.utils.HttpHelper;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.ServletUtils;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
@ -20,6 +23,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Authorliang.chao
@ -180,40 +184,193 @@ public class PushProDataUseInfoController extends BaseController {
}
}
// 检验临期和检验超期数量
/**
* 宏源物资检验临期和检验超期数量
* @param bean
* @return
*/
@GetMapping(value = "getHyCheckingTimeout")
public AjaxResult getHyCheckTimeout(ProIdsBean bean) {
try {
List<StaticsNumsBean> results = new ArrayList<>();
StaticsNumsBean results = new StaticsNumsBean();
Map<String, String> map = new HashMap<String, String>();
map.put("keyWord", "");
String body = JSONObject.toJSONString(map);
String url = "http://10.138.55.101:21021/iws/hystw/getHyNearWarnList";
//String url = "http://192.168.1.134:8036/micro-server/zzaqgjf/syncSafetyTool";
// 检验临期接口路径
String url = "http://10.138.55.101:21021/iws/hystw/backstage/machine/getHyNearWarnList";
String data = HttpHelper.sendHttpPost(url, body);
JSONObject object = JSONObject.parseObject(data);
System.err.println(data);
System.out.println(data);
String code = object.getString("res");
if ("1".equals(code)) {
JSONObject obj = object.getJSONObject("obj");
JSONArray dataArray = obj.getJSONArray("list");
// 临期数量
int num = dataArray.size();
results.setApproachingNum(BigDecimal.valueOf(num));
System.out.println("数组大小: " + dataArray.size());
}
// 检验超期接口路径
String url1 = "http://10.138.55.101:21021/iws/hystw/backstage/machine/getHyOverWarnList";
String overData = HttpHelper.sendHttpPost(url1, body);
JSONObject overObject = JSONObject.parseObject(overData);
System.out.println(overObject);
String overCode = overObject.getString("res");
if ("1".equals(overCode)) {
JSONObject obj = overObject.getJSONObject("obj");
JSONArray dataArray = obj.getJSONArray("list");
// 超期数量
int num = dataArray.size();
results.setTimeoutNum(BigDecimal.valueOf(num));
System.out.println("数组大小: " + dataArray.size());
}
return AjaxResult.success(results);
} catch (Exception e) {
logger.error(e.toString(), e);
throw new ServiceException("数据查询异常,请联系运维人员查询日志处理");
}
}
String code = object.getString("code");
if ("200".equals(code)) {
String dataResultString = object.getString("data");
JSONArray dataArray = JSONArray.parseArray(dataResultString);
if (dataArray != null && !dataArray.isEmpty()) {
// 有数据
for (int i = 0; i < dataArray.size(); i++) {
JSONObject dataObject = dataArray.getJSONObject(i);
String counts = dataObject.getString("counts");
StaticsNumsBean rs = new StaticsNumsBean();
rs.setTimeoutNum(BigDecimal.valueOf(Integer.parseInt(counts)));
results.add(rs);
/**
* 宏源物资临期超期设备详情
* @param bean
* @return
*/
@GetMapping(value = "getHyApproachingDetails")
public AjaxResult getHyApproachingDetails(ProIdsBean bean) {
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<MachineInfoBean> results = new ArrayList<>();
try {
Map<String, String> map = new HashMap<String, String>();
map.put("keyWord", "");
String body = JSONObject.toJSONString(map);
if (bean.getType() == null) {
return AjaxResult.success();
}
if (bean.getType() == 0) {
// 检验临期接口路径
String url = "http://10.138.55.101:21021/iws/hystw/backstage/machine/getHyNearWarnList";
String data = HttpHelper.sendHttpPost(url, body);
JSONObject object = JSONObject.parseObject(data);
String code = object.getString("res");
if ("1".equals(code)) {
JSONObject obj = object.getJSONObject("obj");
JSONArray dataArray = obj.getJSONArray("list");
System.out.println("数组大小: " + dataArray.size());
if (!dataArray.isEmpty()) {
// 有数据
for (int i = 0; i < dataArray.size(); i++) {
JSONObject item = dataArray.getJSONObject(i);
//物资名称
JSONObject typeObject = item.getJSONObject("type");
String typeName = (typeObject != null) ? typeObject.getString("parentName") : null;
// 规格型号
String typeModelName = (typeObject != null) ? typeObject.getString("name") : null;
// 计量单位
String unitName = (typeObject != null) ? typeObject.getString("unitName") : null;
// 设备编码
String maCode = item.getString("code");
// 工程名称
String projectName = item.getString("projectName");
// 下次检验时间
String nextCheckTime = item.getString("nextRepairTime");
// 领用时间
String leaseTime = item.getString("pickTime");
// 实施单位
String deptName = item.getString("deptName");
// 到期天数
Integer daysDiff = item.getInteger("days");
MachineInfoBean rs = new MachineInfoBean();
rs.setTypeName(typeName);
rs.setTypeModelName(typeModelName);
rs.setUnit(unitName);
rs.setMaCode(maCode);
rs.setProName(projectName);
rs.setExpireTime(nextCheckTime);
rs.setLeaseTime(leaseTime);
rs.setDeptName(deptName);
rs.setDaysDiff(daysDiff);
results.add(rs);
}
// 根据前端传入的类型或者规格型号查询相关设备
if (StringUtils.isNotBlank(bean.getTypeName()) || StringUtils.isNotBlank(bean.getTypeModelName())) {
results = results.stream().filter(item -> {
boolean isTypeNameMatch = StringUtils.isBlank(bean.getTypeName())
|| (item.getTypeName() != null && item.getTypeName().contains(bean.getTypeName()));
boolean isModelNameMatch = StringUtils.isBlank(bean.getTypeModelName())
|| (item.getTypeModelName() != null && item.getTypeModelName().contains(bean.getTypeModelName()));
return isTypeNameMatch && isModelNameMatch;
}).collect(Collectors.toList());
}
}
}
}
if (bean.getType() == 1) {
// 检验超期接口路径
String url1 = "http://10.138.55.101:21021/iws/hystw/backstage/machine/getHyOverWarnList";
String overData = HttpHelper.sendHttpPost(url1, body);
JSONObject overObject = JSONObject.parseObject(overData);
String overCode = overObject.getString("res");
return AjaxResult.success(results);
if ("1".equals(overCode)) {
JSONObject obj = overObject.getJSONObject("obj");
JSONArray dataArray = obj.getJSONArray("list");
System.out.println("数组大小: " + dataArray.size());
if (!dataArray.isEmpty()) {
// 有数据
for (int i = 0; i < dataArray.size(); i++) {
JSONObject item = dataArray.getJSONObject(i);
//物资名称
JSONObject typeObject = item.getJSONObject("type");
String typeName = (typeObject != null) ? typeObject.getString("parentName") : null;
// 规格型号
String typeModelName = (typeObject != null) ? typeObject.getString("name") : null;
// 计量单位
String unitName = (typeObject != null) ? typeObject.getString("unitName") : null;
// 设备编码
String maCode = item.getString("code");
// 工程名称
String projectName = item.getString("projectName");
// 下次检验时间
String nextCheckTime = item.getString("nextRepairTime");
// 领用时间
String leaseTime = item.getString("pickTime");
// 实施单位
String deptName = item.getString("deptName");
// 到期天数
Integer daysDiff = item.getInteger("days");
MachineInfoBean rs = new MachineInfoBean();
rs.setTypeName(typeName);
rs.setTypeModelName(typeModelName);
rs.setUnit(unitName);
rs.setMaCode(maCode);
rs.setProName(projectName);
rs.setExpireTime(nextCheckTime);
rs.setLeaseTime(leaseTime);
rs.setDeptName(deptName);
rs.setDaysDiff(daysDiff);
results.add(rs);
}
// 根据前端传入的类型或者规格型号查询相关设备
if (StringUtils.isNotBlank(bean.getTypeName()) || StringUtils.isNotBlank(bean.getTypeModelName())) {
results = results.stream().filter(item -> {
boolean isTypeNameMatch = StringUtils.isBlank(bean.getTypeName())
|| (item.getTypeName() != null && item.getTypeName().contains(bean.getTypeName()));
boolean isModelNameMatch = StringUtils.isBlank(bean.getTypeModelName())
|| (item.getTypeModelName() != null && item.getTypeModelName().contains(bean.getTypeModelName()));
return isTypeNameMatch && isModelNameMatch;
}).collect(Collectors.toList());
}
}
}
}
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, results));
} catch (Exception e) {
logger.error(e.toString(), e);
throw new ServiceException("数据查询异常,请联系运维人员查询日志处理");

View File

@ -696,11 +696,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
IFNULL(subquery4.inputNum, 0) AS inputNum,
CASE mt.manage_type
WHEN 0 THEN
IFNULL(subquery0.num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0)
+ IFNULL(subquery4.inputNum, 0) + IFNULL(subquery6.pendingScrapNum, 0)
IFNULL(subquery0.num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.dsNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0)
+ IFNULL(subquery12.repairAuditNum, 0)
ELSE
IFNULL(mt.storage_num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0)
+ IFNULL(subquery4.inputNum, 0) + IFNULL(subquery6.pendingScrapNum, 0)
IFNULL(mt.storage_num, 0)+ IFNULL(subquery1.usNum, 0) + IFNULL(subquery2.dsNum, 0) + IFNULL(subquery2.repairNum, 0) + IFNULL(subquery3.repairInputNum, 0)
+ IFNULL(subquery12.repairAuditNum, 0)
END AS allNum
FROM ma_type mt
LEFT JOIN (
@ -733,6 +733,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE
sai.`status` = '0' and sai.`is_slt` = '0'
AND (sai.source = 1 OR sai.source is NULL)
AND sai.end_time IS NULL
AND sai.back_id IS NULL
and mt.type_id =#{typeId}
@ -742,26 +743,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN (
SELECT
mt.type_id,
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
SUM(CASE WHEN tt.task_status = 0 and rad.is_ds = 1 THEN (IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) - IFNULL(rad.scrap_num, 0)) ELSE 0 END) AS dsNum,
SUM(CASE WHEN tt.task_status = 4 and rad.is_ds = 0 THEN (IFNULL(rad.repair_num, 0) - IFNULL(rad.repaired_num, 0) - IFNULL(rad.scrap_num, 0)) ELSE 0 END) AS repairNum
FROM repair_apply_details rad
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
INNER JOIN tm_task tt ON rad.task_id = tt.task_id
WHERE
rad.status = '0'
tt.task_status IN (0, 4)
and tt.code is not null
and mt.type_id =#{typeId}
GROUP BY
mt.type_id) AS subquery2 ON subquery2.type_id = mt.type_id
LEFT JOIN (
SELECT
mt.type_id,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IFNULL(rad.repair_num, 0) ) AS repairAuditNum
FROM repair_audit_details rad
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
LEFT JOIN tm_task tt ON rad.task_id = tt.task_id
WHERE
tt.code is not null
and rad.`status` = '0'
GROUP BY
mt.type_id) AS subquery12 ON subquery12.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,
@ -770,8 +793,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM repair_input_details rid
LEFT JOIN ma_type mt ON mt.type_id = rid.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
LEFT JOIN tm_task tt ON rid.task_id = tt.task_id
WHERE IFNULL(rid.repair_num, 0) - IFNULL(rid.input_num, 0) - IFNULL(rid.reject_num, 0) > 0
and tt.task_status = 0
and mt.type_id =#{typeId}
GROUP BY
mt.type_id) AS subquery3 ON subquery3.type_id = mt.type_id
@ -793,25 +819,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and mt.type_id =#{typeId}
GROUP BY
mt.type_id) AS subquery4 ON subquery4.type_id = mt.type_id
LEFT JOIN (
SELECT
mt.type_id AS typeId,
mt2.type_name AS typeName,
mt2.type_id AS thirdTypeId,
mt.type_name AS typeModelName,
SUM(IF(sad.ledger_status = '0', IFNULL(sad.scrap_num, 0), 0)) AS pendingScrapNum,
SUM(IF(sad.ledger_status = '1', IFNULL(sad.scrap_num, 0), 0)) AS scrapNum
FROM scrap_apply_details sad
LEFT JOIN ma_type mt ON mt.type_id = sad.type_id
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
WHERE
1=1
and mt.type_id =#{typeId}
GROUP BY
mt.type_id
) subquery6 ON subquery6.typeId = mt.type_id
LEFT JOIN ma_type mt2 on mt2.type_id = mt.parent_id
WHERE mt.del_flag = '0'