From 37f581eeeb9c06a980d8ba5b77d7d58950c0b22d Mon Sep 17 00:00:00 2001 From: mashuai Date: Tue, 18 Nov 2025 18:18:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81=E5=8F=8A?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/BmProjectController.java | 3 +- .../PushProDataUseInfoController.java | 195 ++++++++++++++++-- .../material/basic/ComplexQueryMapper.xml | 69 ++++--- 3 files changed, 216 insertions(+), 51 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProjectController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProjectController.java index dd88aadb..6fd3c645 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProjectController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmProjectController.java @@ -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); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/push/controller/PushProDataUseInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/push/controller/PushProDataUseInfoController.java index 00d22ee5..5ac2142b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/push/controller/PushProDataUseInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/push/controller/PushProDataUseInfoController.java @@ -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; /** * @Author:liang.chao @@ -180,40 +184,193 @@ public class PushProDataUseInfoController extends BaseController { } } - - // 检验临期和检验超期数量 + /** + * 宏源物资检验临期和检验超期数量 + * @param bean + * @return + */ @GetMapping(value = "getHyCheckingTimeout") public AjaxResult getHyCheckTimeout(ProIdsBean bean) { try { - List results = new ArrayList<>(); + StaticsNumsBean results = new StaticsNumsBean(); Map map = new HashMap(); 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 results = new ArrayList<>(); + try { + Map map = new HashMap(); + 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("数据查询异常,请联系运维人员查询日志处理"); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml index 5a679c33..9912fd5f 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/ComplexQueryMapper.xml @@ -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'