车间能级提升-智能设备管理系统
zhuguifei
2025-05-13 14681dfe7052cb76eefcc0c17d0a0d708e1ac9dd
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
@@ -10,8 +10,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.eims.domain.EimsEqu;
import org.dromara.eims.domain.EimsInspectRecord;
import org.dromara.eims.domain.vo.EimsInspectRecordVo;
import org.dromara.eims.mapper.EimsEquMapper;
import org.dromara.eims.mapper.EimsInspectRecordMapper;
import org.springframework.stereotype.Service;
import org.dromara.eims.domain.bo.EimsInspectStBo;
@@ -21,12 +23,11 @@
import org.dromara.eims.service.IEimsInspectStService;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -40,6 +41,7 @@
public class EimsInspectStServiceImpl implements IEimsInspectStService {
    private final EimsInspectStMapper baseMapper;
    private final EimsEquMapper equMapper;
    private final EimsInspectRecordMapper recordMapper;
    /**
@@ -50,7 +52,73 @@
     */
    @Override
    public EimsInspectStVo queryById(Long id){
        return baseMapper.selectVoById(id);
        EimsInspectStVo stVo = baseMapper.selectVoById(id);
        if(stVo!=null&&stVo.getEquId()!=null){
            EimsEqu eimsEqu = equMapper.selectById(stVo.getEquId());
            stVo.setEquName(eimsEqu.getEquName());
            stVo.setAssetNo(eimsEqu.getAssetNo());
        }
        // fillStDataSingle(stVo);
        return stVo;
    }
    @Override
    public EimsInspectStVo queryByStId(String stId) {
        QueryWrapper<EimsInspectSt> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("st_id", stId);
        EimsInspectStVo stVo = baseMapper.selectVoOne(queryWrapper);
        if(stVo!=null&&stVo.getEquId()!=null){
            EimsEqu eimsEqu = equMapper.selectById(stVo.getEquId());
            stVo.setEquName(eimsEqu.getEquName());
            stVo.setAssetNo(eimsEqu.getAssetNo());
        }
        // fillStDataSingle(stVo);
        return stVo;
    }
    /**
     *
     * @param stVo type Day-日视图 Month-月视图
     * @param
     */
    private void fillStDataSingle(EimsInspectStVo stVo) {
            LambdaQueryWrapper<EimsInspectRecord> recordLqw = Wrappers.lambdaQuery();
            recordLqw.eq(EimsInspectRecord::getEquId, stVo.getEquId());
            LocalDate planTime = stVo.getPlanTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            // 月视图查询范围
            LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
            LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
            // 日视图查询范围
            if(stVo.getType().equals("Day")){
                recordLqw.between(EimsInspectRecord::getPlanTime, planTime, planTime);
            }else {
                //  月视图查询范围
                recordLqw.between(EimsInspectRecord::getPlanTime, startOfMonth, endOfMonth);
            }
            // 执行查询
            List<EimsInspectRecordVo> recordList = recordMapper.selectVoList(recordLqw);
            // TODO 根据字典eims_inspect_status
            Map<String, Long> cMap = recordList.stream()
                .filter(order -> List.of("0", "1").contains(order.getStatus()))
                .collect(Collectors.groupingBy(EimsInspectRecordVo::getStatus, Collectors.counting()));
            // TODO 根据字典eims_inspect_result
            Map<String, Long> rMap = recordList.stream()
                .filter(order ->order.getInspResult()!=null && List.of("1", "2").contains(order.getInspResult()))
                .collect(Collectors.groupingBy(EimsInspectRecordVo::getInspResult, Collectors.counting()));
            stVo.setRecordCount(recordList.size());
            stVo.setUnCheckCount(cMap.getOrDefault("0", 0L).intValue());
            stVo.setCheckCount(cMap.getOrDefault("1", 0L).intValue());
            stVo.setNormalNum(rMap.getOrDefault("1", 0L).intValue());
            stVo.setAbNormalNum(rMap.getOrDefault("2", 0L).intValue());
    }
    /**
@@ -62,14 +130,29 @@
     */
    @Override
    public TableDataInfo<EimsInspectStVo> queryPageList(EimsInspectStBo bo, PageQuery pageQuery) {
        QueryWrapper<EimsInspectSt> lqw = buildWrapper(bo);
        Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), lqw);
        // 填充数据
        fillStData(result);
        return TableDataInfo.build(result);
        bo.setType(bo.getViewMode());
        // 月视图
//        if(bo.getViewMode().equals("Month")){
            QueryWrapper<EimsInspectSt> qw = buildWrapper(bo);
            Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), qw);
            // 填充数据
            fillStData(result,bo.getViewMode());
            return TableDataInfo.build(result);
            // 日视图
//        }else if(bo.getViewMode().equals("Day")){
//            Page<EimsInspectStVo> result = recordMapper.selectInspRecordDayList(pageQuery.build(), buildGroupWrapper(bo));
//            return TableDataInfo.build(result);
//        }
//       return null;
    }
    private void fillStData(Page<EimsInspectStVo> result) {
    /**
     *
      * @param result
     * @param type Day-日视图 Month-月视图
     */
    private void fillStData(Page<EimsInspectStVo> result,String type) {
        List<EimsInspectStVo> records = result.getRecords();
        for (int i = 0; i < records.size(); i++) {
            EimsInspectStVo stVo = records.get(i);
@@ -78,9 +161,19 @@
            LambdaQueryWrapper<EimsInspectRecord> recordLqw = Wrappers.lambdaQuery();
            recordLqw.eq(EimsInspectRecord::getEquId, stVo.getEquId());
            LocalDate planTime = stVo.getPlanTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            // 月视图查询范围
            LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
            LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
            recordLqw.between(EimsInspectRecord::getPlanTime, startOfMonth, endOfMonth);
            // 日视图查询范围
            if(type.equals("Day")){
                recordLqw.between(EimsInspectRecord::getPlanTime, planTime, planTime);
            }else {
            //  月视图查询范围
                recordLqw.between(EimsInspectRecord::getPlanTime, startOfMonth, endOfMonth);
            }
            // 执行查询
            List<EimsInspectRecordVo> recordList = recordMapper.selectVoList(recordLqw);
            // TODO 根据字典eims_inspect_status
@@ -90,7 +183,7 @@
            // TODO 根据字典eims_inspect_result
            Map<String, Long> rMap = recordList.stream()
                .filter(order ->order.getInspResult()!=null && List.of("1", "2").contains(order.getInspResult()))
                .collect(Collectors.groupingBy(EimsInspectRecordVo::getStatus, Collectors.counting()));
                .collect(Collectors.groupingBy(EimsInspectRecordVo::getInspResult, Collectors.counting()));
            stVo.setRecordCount(recordList.size());
            stVo.setUnCheckCount(cMap.getOrDefault("0", 0L).intValue());
@@ -101,6 +194,25 @@
        }
    }
    private QueryWrapper<EimsInspectSt> buildGroupWrapper(EimsInspectStBo bo) {
        Map<String, Object> params = bo.getParams();
        QueryWrapper<EimsInspectSt> qw = Wrappers.query();
        qw.like(StringUtils.isNotBlank(bo.getTitle()), "CONCAT(DATE_FORMAT(ir.plan_time, '%Y%m%d'), equ.equ_name)", bo.getTitle());
        qw.like(StringUtils.isNotBlank(bo.getEquName()), "equ.equ_name", bo.getEquName());
        qw.like(StringUtils.isNotBlank(bo.getAssetNo()), "equ.asset_no", bo.getAssetNo());
        qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
            "ir.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
        qw.eq(bo.getInspUser() != null, "ir.insp_user", bo.getInspUser());
        qw.eq(bo.getVerifyUser() != null, "ir.verify_user", bo.getVerifyUser());
        qw.eq(bo.getStatus() != null, "ir.status", bo.getStatus());
        qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
            "ir.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
        qw.groupBy(Arrays.asList("ir.equ_id","ir.plan_time"));
        qw.orderByDesc( "ir.plan_time");
        return qw;
    }
    /**
@@ -132,6 +244,7 @@
        qw.like(StringUtils.isNotBlank(bo.getTitle()), "st.title", bo.getTitle());
        qw.like(StringUtils.isNotBlank(bo.getEquName()), "equ.equ_name", bo.getEquName());
        qw.like(StringUtils.isNotBlank(bo.getAssetNo()), "equ.asset_no", bo.getAssetNo());
        qw.eq( "st.type", bo.getType());
        qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
            "st.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
        qw.eq(bo.getInspUser() != null, "st.maint_user", bo.getInspUser());