package com.mes.damage.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mes.damage.entity.Damage; import com.mes.damage.mapper.DamageMapper; import com.mes.damage.service.DamageService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.pp.entity.ReportingWork; import com.mes.work_assignment.entity.WorkAssignment; import com.mes.work_assignment.mapper.WorkAssignmentMapper; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.sql.Timestamp; import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author wu * @since 2024-06-13 */ @Service public class DamageServiceImpl extends ServiceImpl implements DamageService { @Resource GlassInfoMapper glassInfoMapper; @Resource WorkAssignmentMapper workAssignmentMapper; /** * 查询报工信息 */ @Override public List selectDamage(String startTime, String endTime, int type, int status, String workingProcedure) { LambdaQueryWrapper damageSelectWrapper = new LambdaQueryWrapper<>(); damageSelectWrapper.between(Damage::getDamageTime, startTime, endTime); if (type != 0) { damageSelectWrapper.eq(Damage::getType, type); } if (status != 0) { damageSelectWrapper.eq(Damage::getStatus, status); } if (!"0".equals(workingProcedure)) { damageSelectWrapper.eq(Damage::getWorkingProcedure, workingProcedure); } List damageList = baseMapper.selectList(damageSelectWrapper); for (Damage damage : damageList) { damage.setStatus(2); } return baseMapper.selectList(damageSelectWrapper); } /** * 提交报工 */ @Override public void submitDamage(List damageList) { Map> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); for (Map.Entry> entry : firstMap.entrySet()) { String key = entry.getKey(); List damages = entry.getValue(); System.out.println("Key: " + key); Map> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); for (Map.Entry> entrys : secondMap.entrySet()) { } } } /** * 添加报工信息 */ @Override public void insertDamage(Damage damage) { LambdaQueryWrapper glassInfoSelectWrapper = new LambdaQueryWrapper<>(); glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId()); GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper); BeanUtils.copyProperties(glassInfo, damage); LambdaQueryWrapper workAssignmentSelectWrapper = new LambdaQueryWrapper<>(); workAssignmentSelectWrapper .eq(WorkAssignment::getLine, damage.getLine()) .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure()); WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper); if (workAssignment != null) { damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName()); damage.setDeviceName(workAssignment.getDeviceName()); } damage.setProcessId(glassInfo.getFlowCardId()); damage.setOrderNumber(glassInfo.getGlassType()); damage.setTechnologyNumber(glassInfo.getLayer()); damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now())); damage.setType(2); baseMapper.insert(damage); } }