AI分析硬件设备名称

This commit is contained in:
guoshengxiong 2024-05-06 18:43:30 +08:00
parent d9b32e1972
commit d43dd3f0b3
15 changed files with 201 additions and 6 deletions

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.handler.DataPermissionHandler;
import com.zhgd.annotation.DataScope;
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper;
import com.zhgd.xmgl.modules.worker.service.impl.UserDevAuthorityServiceImpl;
@ -111,6 +112,12 @@ public class DataScopeHandler implements DataPermissionHandler {
return tables;
}
private HashMap<String, String> getFieldAiTables() {
HashMap<String, String> tables = new HashMap<>();
tables.put("ai_analyse_hard_ware_alarm_record", "hardware_id");
return tables;
}
public PlainSelect getSqlSegment(PlainSelect plainSelect, Object obj) {
UserInfo user = SecurityUtils.getUser();
if (user == null) {
@ -124,6 +131,9 @@ public class DataScopeHandler implements DataPermissionHandler {
//}
}
@Autowired
IAiAnalyseHardWareRecordService aiAnalyseHardWareRecordService;
private PlainSelect dataScopeFilterByProject(PlainSelect plainSelect, UserInfo user, Object obj) {
JSONObject jo = (JSONObject) obj;
Object parameter = jo.get("parameter");
@ -148,6 +158,14 @@ public class DataScopeHandler implements DataPermissionHandler {
}
}
List<String> filterAis = getNeedFilterLeftExpression(plainSelect, getFieldAiTables(), ds);
if (CollUtil.isNotEmpty(filterAis)) {
List<String> videoItems = aiAnalyseHardWareRecordService.getAiAnalyseHardIdsByUserId();
for (String item : filterAis) {
inExpression(item, videoItems, plainSelect);
}
}
} else if (user.getAccountType() == 11) {
List<String> filterEnterprises = getNeedFilterLeftExpression(plainSelect, getFieldEnterpriseTables(), ds);
EnterpriseInfo ei = enterpriseInfoMapper.getXzSupplierByUserId(SecurityUtils.getUser().getUserId());

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -96,6 +97,8 @@ public class QualityRegion implements Serializable {
@TableField(exist = false)
private List<SystemUser> systemUsers;
@TableField(exist = false)
private List<AiAnalyseHardWareRecord> aiAnalyseHardWareRecords;
@TableField(exist = false)
@ApiModelProperty(value = "负责人名称(逗号分割)")
@ -105,4 +108,8 @@ public class QualityRegion implements Serializable {
@ApiModelProperty(value = "分包单位名称(逗号分割)")
private java.lang.String enterpriseName;
@TableField(exist = false)
@ApiModelProperty(value = "AI分析硬件设备名称逗号分割")
private java.lang.String aiAnalyseHardName;
}

View File

@ -0,0 +1,62 @@
package com.zhgd.xmgl.modules.quality.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @Description: 区域和AI分析硬件设备中间表
* @author pds
* @date 2024-05-06
* @version V1.0
*/
@Data
@TableName("quality_region_to_ai_analyse_hard")
@ApiModel(value = "QualityRegionToAiAnalyseHard实体类", description = "QualityRegionToAiAnalyseHard")
public class QualityRegionToAiAnalyseHard implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.Long id;
/**
* 区域id
*/
@Excel(name = "区域id", width = 15)
@ApiModelProperty(value = "区域id")
private java.lang.Long qualityRegionId;
/**
* AI分析硬件设备id
*/
@Excel(name = "AI分析硬件设备id", width = 15)
@ApiModelProperty(value = "AI分析硬件设备id")
private java.lang.Long aiAnalyseHardWareRecordId;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
@Excel(name = "创建时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间 yyyy-MM-dd HH:mm:ss")
private java.util.Date createTime;
/**
* 更新时间 yyyy-MM-dd HH:mm:ss
*/
@Excel(name = "更新时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss")
private java.util.Date updateTime;
}

View File

@ -0,0 +1,16 @@
package com.zhgd.xmgl.modules.quality.mapper;
import com.zhgd.xmgl.modules.quality.entity.QualityRegionToAiAnalyseHard;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 区域和AI分析硬件设备中间表
* @author pds
* @date 2024-05-06
* @version V1.0
*/
@Mapper
public interface QualityRegionToAiAnalyseHardMapper extends BaseMapper<QualityRegionToAiAnalyseHard> {
}

View File

@ -15,17 +15,25 @@
<id property="realName" column="real_name"/>
<id property="enterpriseId" column="enterprise_info_id"/>
</collection>
<collection property="aiAnalyseHardWareRecords"
ofType="com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord">
<id property="id" column="ai_analyse_hard_ware_record_id"/>
<id property="hardwareName" column="hardware_name"/>
<id property="hardwareId" column="hardware_id"/>
</collection>
</resultMap>
<select id="selectQualityRegionList" resultMap="selectQualityRegionListRm">
SELECT qr.*,ei.id as enterprise_info_id,ei.enterprise_name as
enterpriseName,su.user_id,su.real_name,ei.enterprise_sn
enterpriseName,su.user_id,su.real_name,ei.enterprise_sn,qrtaah.ai_analyse_hard_ware_record_id,aahwr.hardware_name,aahwr.hardware_id
from quality_region qr
LEFT JOIN quality_region_to_enterprise te ON te.quality_region_id=qr.id
LEFT JOIN enterprise_info ei on ei.id=te.enterprise_id
LEFT JOIN quality_region_to_user qrtu on qr.id = qrtu.quality_region_id and te.enterprise_id =
qrtu.enterprise_id
LEFT JOIN system_user su ON su.user_id = qrtu.user_id
left join quality_region_to_ai_analyse_hard qrtaah on qr.id = qrtaah.quality_region_id
left join ai_analyse_hard_ware_record aahwr on aahwr.id=qrtaah.ai_analyse_hard_ware_record_id
WHERE qr.project_sn = #{projectSn}
order by qr.region_code
</select>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.quality.mapper.QualityRegionToAiAnalyseHardMapper">
</mapper>

View File

@ -9,12 +9,15 @@ import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.service.impl.SystemUserServiceImpl;
import com.zhgd.xmgl.modules.quality.entity.QualityRegion;
import com.zhgd.xmgl.modules.quality.entity.QualityRegionToAiAnalyseHard;
import com.zhgd.xmgl.modules.quality.entity.QualityRegionToEnterprise;
import com.zhgd.xmgl.modules.quality.entity.QualityRegionToUser;
import com.zhgd.xmgl.modules.quality.mapper.QualityRegionMapper;
import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToAiAnalyseHardMapper;
import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToEnterpriseMapper;
import com.zhgd.xmgl.modules.quality.mapper.QualityRegionToUserMapper;
import com.zhgd.xmgl.modules.quality.service.IQualityRegionService;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
import com.zhgd.xmgl.util.ListUtils;
@ -44,6 +47,8 @@ public class QualityRegionServiceImpl extends ServiceImpl<QualityRegionMapper, Q
@Autowired
SystemUserServiceImpl systemUserService;
@Autowired
QualityRegionToAiAnalyseHardMapper toAiAnalyseHardMapper;
@Autowired
private QualityRegionMapper qualityRegionMapper;
@Autowired
private EnterpriseInfoServiceImpl enterpriseInfoService;
@ -66,6 +71,10 @@ public class QualityRegionServiceImpl extends ServiceImpl<QualityRegionMapper, Q
if (CollUtil.isNotEmpty(enterpriseInfos)) {
qualityRegion.setEnterpriseName(StrUtil.join(",", enterpriseInfos.stream().map(EnterpriseInfo::getEnterpriseName).collect(Collectors.toList())));
}
List<AiAnalyseHardWareRecord> aiAnalyseHardWareRecords = qualityRegion.getAiAnalyseHardWareRecords();
if (CollUtil.isNotEmpty(aiAnalyseHardWareRecords)) {
qualityRegion.setAiAnalyseHardName(StrUtil.join(",", aiAnalyseHardWareRecords.stream().map(AiAnalyseHardWareRecord::getHardwareName).collect(Collectors.toList())));
}
}
return list;
}
@ -156,8 +165,12 @@ public class QualityRegionServiceImpl extends ServiceImpl<QualityRegionMapper, Q
.eq(QualityRegionToEnterprise::getQualityRegionId, qualityRegion.getId()));
qualityRegionToUserMapper.delete(new LambdaQueryWrapper<QualityRegionToUser>()
.eq(QualityRegionToUser::getQualityRegionId, qualityRegion.getId()));
toAiAnalyseHardMapper.delete(new LambdaQueryWrapper<QualityRegionToAiAnalyseHard>()
.eq(QualityRegionToAiAnalyseHard::getQualityRegionId, qualityRegion.getId()));
List<SystemUser> systemUsers = qualityRegion.getSystemUsers();
List<EnterpriseInfo> enterpriseInfos = qualityRegion.getEnterpriseInfos();
List<AiAnalyseHardWareRecord> aiAnalyseHardWareRecords = qualityRegion.getAiAnalyseHardWareRecords();
if (CollUtil.isNotEmpty(enterpriseInfos)) {
for (EnterpriseInfo systemUser : enterpriseInfos) {
Long userId = systemUser.getId();
@ -192,6 +205,18 @@ public class QualityRegionServiceImpl extends ServiceImpl<QualityRegionMapper, Q
qualityRegionToUserMapper.insert(entity);
}
}
if (CollUtil.isNotEmpty(aiAnalyseHardWareRecords)) {
for (AiAnalyseHardWareRecord aiAnalyseHardWareRecord : aiAnalyseHardWareRecords) {
Long id = aiAnalyseHardWareRecord.getId();
if (id == null) {
throw new OpenAlertException("aiAnalyseHardWareRecords[i].id不能为空");
}
QualityRegionToAiAnalyseHard entity = new QualityRegionToAiAnalyseHard();
entity.setQualityRegionId(qualityRegion.getId());
entity.setAiAnalyseHardWareRecordId(id);
toAiAnalyseHardMapper.insert(entity);
}
}
}
@Override

View File

@ -2,6 +2,7 @@ package com.zhgd.xmgl.modules.video.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.annotation.DataScope;
import com.zhgd.jeecg.common.mybatis.EntityMap;
import com.zhgd.xmgl.base.entity.vo.SectorOneVo;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord;
@ -21,11 +22,11 @@ import java.util.Map;
* @version V1.0
*/
@Mapper
@DataScope(includeTable = "ai_analyse_hard_ware_alarm_record")
public interface AiAnalyseHardWareAlarmRecordMapper extends BaseMapper<AiAnalyseHardWareAlarmRecord> {
List<EntityMap> queryAiAnalyseHardWareAlarmPageList(Page<EntityMap> page, @Param("param") Map<String, Object> map);
List<AiAnalyseHardWareAlarmRecord> queryAiAnalyseHardWareAlarmPageListTwo(Page<AiAnalyseHardWareAlarmRecord> page, @Param("param") Map<String, Object> map);
@MapKey("dayTitle")

View File

@ -4,6 +4,8 @@ import org.apache.ibatis.annotations.Mapper;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Description: AI分析硬件设备
* @author pds
@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface AiAnalyseHardWareRecordMapper extends BaseMapper<AiAnalyseHardWareRecord> {
List<String> getAiAnalyseHardIdsByUserId(Long userId);
}

View File

@ -2,4 +2,11 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareRecordMapper">
<select id="getAiAnalyseHardIdsByUserId" resultType="java.lang.String">
select distinct aahwr.hardware_id
from ai_analyse_hard_ware_record aahwr
join quality_region_to_ai_analyse_hard qrtaah on aahwr.id = qrtaah.ai_analyse_hard_ware_record_id
join quality_region_to_user qrtu on qrtaah.quality_region_id = qrtu.quality_region_id
where qrtu.user_id=#{userId}
</select>
</mapper>

View File

@ -1,7 +1,7 @@
package com.zhgd.xmgl.modules.video.service;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import java.util.List;
import java.util.Map;
@ -21,4 +21,13 @@ public interface IAiAnalyseHardWareRecordService extends IService<AiAnalyseHardW
void editAiAnalyseHardWareRecord(AiAnalyseHardWareRecord aiAnalyseHardWareRecord);
void deleteAiAnalyseHardWareRecord(String id);
/**
* 获取自己的AI分析硬件设备id列表
*
* @return
*/
List<String> getAiAnalyseHardIdsByUserId();
List<String> getAiAnalyseHardIdsByUserId(Long userId);
}

View File

@ -1,11 +1,14 @@
package com.zhgd.xmgl.modules.video.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareRecord;
import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareRecordMapper;
import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareRecordService;
import com.zhgd.xmgl.security.entity.UserInfo;
import com.zhgd.xmgl.security.util.SecurityUtils;
import com.zhgd.xmgl.util.MessageUtil;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
@ -14,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @Description: AI分析硬件设备
@ -65,4 +69,24 @@ public class AiAnalyseHardWareRecordServiceImpl extends ServiceImpl<AiAnalyseHar
}
aiAnalyseHardWareRecordMapper.deleteById(id);
}
@Override
public List<String> getAiAnalyseHardIdsByUserId() {
UserInfo user = SecurityUtils.getUser();
if (Objects.equals(user.getAccountType(), 6)) {
//项目子账号就筛选自己能看到的
Long userId = user.getUserId();
List<String> hardIds = this.getAiAnalyseHardIdsByUserId(userId);
if (CollUtil.isEmpty(hardIds)) {
hardIds.add("0");
}
return hardIds;
}
return null;
}
@Override
public List<String> getAiAnalyseHardIdsByUserId(Long userId) {
return baseMapper.getAiAnalyseHardIdsByUserId(userId);
}
}

View File

@ -149,6 +149,7 @@ public class WorkerInfoController {
@ApiImplicitParam(name = "workerInfos", value = "劳务人员id多个分割", paramType = "body", required = false, dataType = "String"),
@ApiImplicitParam(name = "presence", value = "1在场2离场", paramType = "body", required = false, dataType = "Integer"),
@ApiImplicitParam(name = "attendance", value = "1今日出勤", paramType = "body", required = false, dataType = "Integer"),
@ApiImplicitParam(name = "isFilterQualityRegionEnterprise", value = "是否查询过滤区域管理下的企业1是", paramType = "body", required = false, dataType = "Integer"),
})
@PostMapping(value = "/selectWorkerInfoList")
public Result<IPage<WorkerInfo>> selectWorkerInfoList(@RequestBody Map<String, Object> map) {

View File

@ -48,6 +48,12 @@
and create_time>=current_date group by person_sn ) wa on wa.person_sn = a.person_sn
</if>
WHERE 1 = 1
<if test="param.isFilterQualityRegionEnterprise != null and param.isFilterQualityRegionEnterprise == '1'.toString() and param.accountType == '6'.toString()">
and a.enterprise_id in(
select distinct qrte.enterprise_id from quality_region_to_enterprise qrte join quality_region_to_user qrtu
on qrte.quality_region_id = qrtu.quality_region_id where qrtu.user_id=#{param.userId}
)
</if>
<if test="param.enterpriseId != null and param.enterpriseId != ''">
and a.enterprise_id = #{param.enterpriseId}
</if>

View File

@ -181,6 +181,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
public IPage<WorkerInfo> selectWorkerInfoList(Map<String, Object> map) {
int pageNo = Integer.parseInt(map.getOrDefault("pageNo", 1).toString());
int pageSize = Integer.parseInt(map.getOrDefault("pageSize", 10000).toString());
if (SecurityUtils.getUser() != null) {
map.put("userId", SecurityUtils.getUser().getUserId());
map.put("accountType", SecurityUtils.getUser().getAccountType());
}
Page<WorkerInfo> page = new Page<>(pageNo, pageSize);
List<WorkerInfo> list = new ArrayList<>();
if (systemUserService.isSupplier()) {