package org.jeecg.modules.eam.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.dto.EamReportProductHazardsDto; import org.jeecg.modules.eam.entity.EamReportProductHazards; import org.jeecg.modules.eam.entity.EamReportRepair; import org.jeecg.modules.eam.mapper.EamReportProductHazardsMapper; import org.jeecg.modules.eam.request.EamReportProductHazardsQuery; import org.jeecg.modules.eam.service.IEamReportProductHazardsService; import org.jeecg.modules.eam.service.IEamReportRepairService; import org.jeecg.modules.system.entity.BaseFactory; import org.jeecg.modules.system.entity.BaseFactoryUser; import org.jeecg.modules.system.service.IBaseFactoryService; import org.jeecg.modules.system.service.IBaseFactoryUserService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * @Description: 产品安全隐患确认 * @Author: jeecg-boot * @Date: 2025-07-17 * @Version: V1.0 */ @Service("IEamReportProductHazardsService") public class EamReportProductHazardsServiceImpl extends ServiceImpl implements IEamReportProductHazardsService { @Autowired private IBaseFactoryUserService baseFactoryUserService; @Autowired private IBaseFactoryService baseFactoryService; @Autowired @Lazy private IEamReportRepairService iEamReportRepairService; /** * 分页列表 * @param page * @param eamReportProductHazardsQuery * @return */ @Override public IPage pageList(Page page, EamReportProductHazardsQuery eamReportProductHazardsQuery){ QueryWrapper queryWrapper = new QueryWrapper<>(); //用户数据权限 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser == null) { return page; } if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { //选择了设备,根据设备id过滤设备 List equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); queryWrapper.in("e.equipment_code", equipArr); } else { //没有选择设备,根据中心过滤设备 List baseFactoryUserList = baseFactoryUserService. list(new LambdaQueryWrapper().eq(BaseFactoryUser::getUserId, sysUser.getId())); if (!CollectionUtils.isEmpty(baseFactoryUserList)) { Set factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); Set factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); queryWrapper.in("e.factory_org_code", factoryCode); } else { return page; } } //查询条件过滤 if (eamReportProductHazardsQuery != null) { if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getEquipmentId())) { queryWrapper.eq("erph.equipment_id", eamReportProductHazardsQuery.getEquipmentId()); } if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getEquipmentCode())) { queryWrapper.like("e.equipment_code", eamReportProductHazardsQuery.getEquipmentCode()); } if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getEquipmentName())) { queryWrapper.like("e.equipment_name", eamReportProductHazardsQuery.getEquipmentName()); } //排序 if (StringUtils.isNotBlank(eamReportProductHazardsQuery.getColumn()) && StringUtils.isNotBlank(eamReportProductHazardsQuery.getOrder())) { String column = eamReportProductHazardsQuery.getColumn(); if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); } if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamReportProductHazardsQuery.getOrder())) { queryWrapper.orderByAsc("erph." + oConvertUtils.camelToUnderline(column)); } else { queryWrapper.orderByDesc("erph." + oConvertUtils.camelToUnderline(column)); } } else { queryWrapper.orderByDesc("erph.create_time"); } } else { queryWrapper.orderByDesc("erph.create_time"); } return baseMapper.queryPageList(page, queryWrapper); } /** * 操作工填报 * @param eamReportProductHazardsDto * @return */ @Override public boolean report(EamReportProductHazardsDto eamReportProductHazardsDto){ EamReportProductHazards eamReportProductHazards=this.getById(eamReportProductHazardsDto.getId()); if (eamReportProductHazards==null){ return false; } BeanUtils.copyProperties(eamReportProductHazardsDto,eamReportProductHazards); this.updateById(eamReportProductHazards); return true; } /** * 操作工提交-发起流程 * @param id * @return */ @Override public Result submit(String id){ return null; } /** * 删除 * @param id * @return */ @Override public boolean cancelled(String id){ //双控故障报修,作废后故障保修数据同步修改 EamReportProductHazards eamReportProductHazards=this.getById(id); if (eamReportProductHazards==null){ return false; } EamReportRepair eamReportRepair=iEamReportRepairService.getById(eamReportProductHazards.getReportId()); if (eamReportRepair==null) { return false; } UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("id",eamReportRepair.getId()); updateWrapper.set("is_processed","2"); updateWrapper.set("batch_number",null); updateWrapper.set("processing_part",null); updateWrapper.set("quantity",null); iEamReportRepairService.update(updateWrapper); this.removeById(id); return true; } }