宏源优化

This commit is contained in:
mashuai 2026-02-09 15:45:47 +08:00
parent d87b48f693
commit 2687a26327
6 changed files with 168 additions and 171 deletions

View File

@ -174,7 +174,11 @@ public class PushProDataUseInfoController extends BaseController {
}
}
// 检验临期和检验超期数量
/**
* 机具物资检验临期和检验超期数量
* @param bean
* @return
*/
@GetMapping(value = "getApproachingAndTimeout")
public AjaxResult getApproachingAndTimeout(ProIdsBean bean) {
try {
@ -194,40 +198,7 @@ public class PushProDataUseInfoController extends BaseController {
@GetMapping(value = "getHyCheckingTimeout")
public AjaxResult getHyCheckTimeout(ProIdsBean bean) {
try {
StaticsNumsBean results = new StaticsNumsBean();
Map<String, String> map = new HashMap<String, String>();
map.put("projectId", bean.getProjectId());
map.put("projectName", bean.getProjectName());
String body = JSONObject.toJSONString(map);
// 检验临期接口路径
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.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());
}
StaticsNumsBean results = service.getHyApproachingAndTimeout(bean);
return AjaxResult.success(results);
} catch (Exception e) {
logger.error(e.toString(), e);
@ -242,138 +213,10 @@ public class PushProDataUseInfoController extends BaseController {
*/
@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("projectId", bean.getProjectId());
map.put("projectName", bean.getProjectName());
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");
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());
}
}
}
}
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<MachineInfoBean> results = service.getHyApproachingDetails(bean);
return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, results));
} catch (Exception e) {
logger.error(e.toString(), e);
@ -381,7 +224,11 @@ public class PushProDataUseInfoController extends BaseController {
}
}
// 临期超期设备详情
/**
* 机具物资临期超期设备详情
* @param bean
* @return
*/
@GetMapping(value = "getApproachingDetails")
public TableDataInfo getApproachingDetails(ProIdsBean bean) {
try {

View File

@ -61,4 +61,18 @@ public interface ProDataUseInfoMapper {
List<TotalNumsBean> getDeviceNumByType(ProIdsBean bean);
List<MachineInfoBean> getProDataDetails(ProIdsBean bean);
/**
* 宏源物资检验临期和检验超期数量
* @param bean
* @return
*/
StaticsNumsBean getHyApproachingAndTimeout(ProIdsBean bean);
/**
* 宏源物资检验临期和检验超期详情
* @param bean
* @return
*/
List<MachineInfoBean> getHyApproachingDetails(ProIdsBean bean);
}

View File

@ -68,4 +68,18 @@ public interface ProDataUseInfoService {
* @return
*/
List<MaterialRetainedEquipmentInfo> getRetainedEquipmentList(MaterialRetainedEquipmentInfo bean);
/**
* 宏源物资检验临期和检验超期数量
* @param bean
* @return
*/
StaticsNumsBean getHyApproachingAndTimeout(ProIdsBean bean);
/**
* 宏源物资检验临期和检验超期数量详情
* @param bean
* @return
*/
List<MachineInfoBean> getHyApproachingDetails(ProIdsBean bean);
}

View File

@ -236,6 +236,26 @@ public class ProDataUseInfoImpl implements ProDataUseInfoService {
return usList;
}
/**
* 宏源物资检验临期和检验超期数量
* @param bean
* @return
*/
@Override
public StaticsNumsBean getHyApproachingAndTimeout(ProIdsBean bean) {
return proDataUseInfoMapper.getHyApproachingAndTimeout(bean);
}
/**
* 宏源物资检验临期和检验超期数量详情
* @param bean
* @return
*/
@Override
public List<MachineInfoBean> getHyApproachingDetails(ProIdsBean bean) {
return proDataUseInfoMapper.getHyApproachingDetails(bean);
}
/**
* 模糊查询
* @param item

View File

@ -537,8 +537,8 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult outerAudit(@NotNull List<RepairAuditDetails> repairAuditDetails) {
// 获取锁公平锁会按线程等待请求顺序分配锁
lock.lock();
/*// 获取锁公平锁会按线程等待请求顺序分配锁
lock.lock();*/
final List<Long> taskIds = repairAuditDetails.stream()
.filter(Objects::nonNull)
.map(RepairAuditDetails::getTaskId)
@ -631,10 +631,10 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
} catch (ServiceException e) {
log.error("修改维修审核状态失败", e);
throw new ServiceException("修饰审核失败,请联系管理员");
} finally {
} /*finally {
// 释放锁
lock.unlock();
}
}*/
return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg());
}

View File

@ -1347,4 +1347,106 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
GROUP BY bp.pro_name,mt.type_id,sai.ma_id
</select>
<select id="getHyApproachingAndTimeout" resultType="com.bonus.material.push.domain.StaticsNumsBean">
SELECT
COUNT(CASE
WHEN mm.next_check_time BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY)
THEN 1
ELSE NULL
END) AS ApproachingNum,
COUNT(CASE
WHEN mm.next_check_time &lt; NOW()
THEN 1
ELSE NULL
END) AS TimeoutNum
FROM ma_machine mm
LEFT JOIN slt_agreement_info sai on sai.ma_id = mm.ma_id and mm.type_id = sai.type_id
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 sai.type_id = mt.type_id
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
left join sys_dept sd ON sd.dept_id = bp.imp_unit
where mm.next_check_time is not null
AND mm.this_check_time is not null
AND bp.pro_name is not null
and sai.`status`='0'
and sai.is_slt = 0
and mm.ma_status = 2
and mt2.type_id not in (9021, 9035) and mt.company_id = 309
AND (sai.source = 1 OR sai.source is NULL)
<if test="deptId != null">
AND sd.dept_id = #{deptId}
</if>
<if test="projectId != null and projectId !=''">
AND bp.external_id = #{projectId}
</if>
<if test="projectName != null and projectName !=''">
AND bp.pro_name like concat ('%', #{projectName}, '%')
</if>
LIMIT 1
</select>
<select id="getHyApproachingDetails" resultType="com.bonus.material.push.domain.MachineInfoBean">
SELECT
sd.dept_name as deptName,
bp.pro_center as proCenter,
bp.pro_name as proName,
mt2.type_name as typeName,
mt.type_name as typeModelName,
mt.unit_name as unit,
mm.ma_code as maCode,
sai.start_time as leaseTime,
mm.next_check_time as expireTime,
CASE
WHEN #{type} = 0 THEN DATEDIFF(mm.next_check_time, NOW())
WHEN #{type} = 1 THEN DATEDIFF(NOW(), mm.next_check_time)
ELSE NULL
END AS daysDiff
FROM ma_machine mm
LEFT JOIN slt_agreement_info sai on sai.ma_id = mm.ma_id and mm.type_id = sai.type_id
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 sys_dept sd on bp.imp_unit = sd.dept_id
LEFT JOIN ma_type mt ON sai.type_id = mt.type_id
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
WHERE mm.next_check_time is not null
AND mm.this_check_time is not null
AND bp.pro_name is not null
and sai.`status`='0'
and sai.is_slt = 0
and mm.ma_status = 2
and mt2.type_id not in (9021, 9035) and mt.company_id = 309
AND (sai.source = 1 OR sai.source is NULL)
<if test="proId != null">
AND bp.pro_id = #{proId}
</if>
<if test="type != null and type == 0">
AND mm.next_check_time BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 30 DAY)
</if>
<if test="type != null and type == 1">
AND mm.next_check_time &lt; NOW()
</if>
<if test="deptName != null and deptName !=''">
AND sd.dept_name like concat ('%', #{deptName}, '%')
</if>
<if test="proCenter != null and proCenter !=''">
AND bp.pro_center like concat ('%', #{proCenter}, '%')
</if>
<if test="typeName != null and typeName !=''">
AND mt2.type_name like concat ('%', #{typeName}, '%')
</if>
<if test="typeModelName != null and typeModelName !=''">
AND mt.type_name like concat ('%', #{typeModelName}, '%')
</if>
<if test="proId != null">
GROUP BY bp.pro_id
</if>
<if test="projectId != null and projectId !=''">
AND bp.external_id = #{projectId}
</if>
<if test="projectName != null and projectName !=''">
AND bp.pro_name like concat ('%', #{projectName}, '%')
</if>
</select>
</mapper>