|
|
|
|
@ -1,17 +1,35 @@ |
|
|
|
|
package org.springblade.desk.jobtransfer.service.impl; |
|
|
|
|
|
|
|
|
|
import com.alibaba.nacos.common.utils.CollectionUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import jakarta.annotation.Resource; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.desk.device.mapper.EquipmentMapper; |
|
|
|
|
import org.springblade.desk.device.pojo.entity.EquipmentEntity; |
|
|
|
|
import org.springblade.desk.jobtransfer.mapper.PostHandleMapper; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.entity.CertificateMaintenanceEntity; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.entity.EquipmentMaintenanceEntity; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.entity.PostHandleEntity; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.enums.MaintenanceStatusEnum; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.enums.PostHandleStatusEnum; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.enums.StaffTypeEnum; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.excel.CertificateMaintenanceImport; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.excel.EquipmentMaintenanceExcel; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.excel.EquipmentMaintenanceImport; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.request.EquipmentMaintenanceQuery; |
|
|
|
|
import org.springblade.desk.jobtransfer.pojo.vo.EquipmentMaintenanceListVO; |
|
|
|
|
import org.springblade.desk.jobtransfer.mapper.EquipmentMaintenanceMapper; |
|
|
|
|
import org.springblade.desk.jobtransfer.service.IEquipmentMaintenanceService; |
|
|
|
|
import org.springblade.system.cache.UserCache; |
|
|
|
|
import org.springblade.system.pojo.entity.UserInfo; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 岗位设备维护 服务实现类 |
|
|
|
|
@ -22,6 +40,12 @@ import java.util.List; |
|
|
|
|
@Service |
|
|
|
|
public class EquipmentMaintenanceServiceImpl extends BaseServiceImpl<EquipmentMaintenanceMapper, EquipmentMaintenanceEntity> implements IEquipmentMaintenanceService { |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private PostHandleMapper postHandleMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private EquipmentMapper equipmentMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public IPage<EquipmentMaintenanceListVO> selectEquipmentMaintenancePage(IPage<EquipmentMaintenanceListVO> page, EquipmentMaintenanceQuery equipmentMaintenanceQuery) { |
|
|
|
|
return page.setRecords(baseMapper.selectEquipmentMaintenancePage(page, equipmentMaintenanceQuery)); |
|
|
|
|
@ -50,4 +74,63 @@ public class EquipmentMaintenanceServiceImpl extends BaseServiceImpl<EquipmentMa |
|
|
|
|
baseMapper.updateMaintenanceStatus(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R saveExcelData(List<EquipmentMaintenanceImport> importList) { |
|
|
|
|
//获取全部用户codes,通过code获取用户ID,
|
|
|
|
|
Set<String> codes = importList.stream().map(EquipmentMaintenanceImport::getUserCode) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
Map<Long, String> idCodeMap = codes.stream() |
|
|
|
|
.map(code -> { |
|
|
|
|
UserInfo userInfo = UserCache.getUserByCode(code); |
|
|
|
|
return (userInfo != null && userInfo.getUser() != null) ? |
|
|
|
|
new AbstractMap.SimpleEntry<>(code, userInfo.getUser().getId()) : null; |
|
|
|
|
}) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.collect(Collectors.toMap(AbstractMap.SimpleEntry::getValue, AbstractMap.SimpleEntry::getKey)); |
|
|
|
|
//根据用户id获取人员岗位数据
|
|
|
|
|
Collection<Long> values = idCodeMap.keySet(); |
|
|
|
|
LambdaQueryWrapper<PostHandleEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
lambdaQueryWrapper.in(PostHandleEntity::getUserId, values) |
|
|
|
|
.eq(PostHandleEntity::getStaffType, StaffTypeEnum.FORMAL.getCode().shortValue()) |
|
|
|
|
.ne(PostHandleEntity::getPhStatus, PostHandleStatusEnum.DEPART.getCode().shortValue()); // 使用实体类的get方法引用
|
|
|
|
|
List<PostHandleEntity> postHandleEntities = postHandleMapper.selectList(lambdaQueryWrapper); |
|
|
|
|
Map<Long, Long> idMap = postHandleEntities.stream().collect(Collectors.toMap( |
|
|
|
|
entity -> entity.getUserId(), |
|
|
|
|
entity -> entity.getId())); |
|
|
|
|
//整合成一个用户code和PostHandleEntityId的map
|
|
|
|
|
Map<String, Long> codePostHandleIdMap = new HashMap<>(); |
|
|
|
|
for (Long l : idMap.keySet()) { |
|
|
|
|
codePostHandleIdMap.put(idCodeMap.get(l), idMap.get(l)); |
|
|
|
|
} |
|
|
|
|
codes.removeAll(codePostHandleIdMap.keySet()); |
|
|
|
|
if (codes.size() > 0) { |
|
|
|
|
return R.fail("工号:" + String.join(",", codes) + "不存在。"); |
|
|
|
|
} |
|
|
|
|
//查询设备信息
|
|
|
|
|
Set<String> deviceCode = importList.stream().map(EquipmentMaintenanceImport::getDeviceCode) |
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
LambdaQueryWrapper<EquipmentEntity> equipmentEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
equipmentEntityLambdaQueryWrapper.in(CollectionUtils.isNotEmpty(deviceCode), EquipmentEntity::getDeviceCode, deviceCode); // [8](@ref)
|
|
|
|
|
List<EquipmentEntity> equipmentEntities = equipmentMapper.selectList(equipmentEntityLambdaQueryWrapper); |
|
|
|
|
Map<String, Long> deviceNameIds = equipmentEntities.stream().collect(Collectors.toMap( |
|
|
|
|
entity -> entity.getDeviceCode(), |
|
|
|
|
entity -> entity.getId())); |
|
|
|
|
deviceCode.removeAll(deviceNameIds.keySet()); |
|
|
|
|
if (deviceCode.size() > 0) { |
|
|
|
|
return R.fail("设备:" + String.join(",", deviceCode) + "不存在。"); |
|
|
|
|
} |
|
|
|
|
List<EquipmentMaintenanceEntity> saves = new ArrayList<>(); |
|
|
|
|
importList.forEach(e -> { |
|
|
|
|
EquipmentMaintenanceEntity entity = new EquipmentMaintenanceEntity(); |
|
|
|
|
entity.setPhId(codePostHandleIdMap.get(e.getUserCode())); |
|
|
|
|
entity.setEquipmentId(deviceNameIds.get(e.getDeviceCode())); |
|
|
|
|
entity.setEquipmentDate(e.getEquipmentDate()); |
|
|
|
|
entity.setEquipmentValidityPeriod(e.getEquipmentValidityPeriod()); |
|
|
|
|
entity.setMaintenanceStatus(MaintenanceStatusEnum.NORMAL.getCode().shortValue()); |
|
|
|
|
saves.add(entity); |
|
|
|
|
}); |
|
|
|
|
boolean saved = this.saveBatch(saves); |
|
|
|
|
return R.status(saved); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|