zhangherong
2025-05-14 56c963ca36d469bb661144bcabbc55da97c61220
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java
@@ -30,12 +30,15 @@
import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery;
import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.vo.EquipmentInspectionStatistics;
import org.jeecg.modules.eam.vo.EquipmentMaintenanceStatistics;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.flowable.service.IFlowDefinitionService;
import org.jeecg.modules.flowable.service.IFlowTaskService;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.factory.annotation.Autowired;
@@ -43,6 +46,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -80,6 +84,8 @@
    private IEamReportRepairService eamReportRepairService;
    @Autowired
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Autowired
    private IMdcProductionService mdcProductionService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -171,6 +177,20 @@
            }
            if (query.getMaintenanceDateBegin() != null && query.getMaintenanceDateEnd() != null) {
                queryWrapper.between("wmo.maintenance_date", query.getMaintenanceDateBegin(), query.getMaintenanceDateEnd());
            }
            if(StringUtils.isNotBlank(query.getRandomInspectionFlag())) {
                if(CommonConstant.DEFAULT_1.equals(query.getRandomInspectionFlag())) {
                    queryWrapper.eq("wmo.random_inspection_flag", CommonConstant.DEFAULT_1);
                }else {
                    queryWrapper.and(q -> q.eq("wmo.random_inspection_flag", CommonConstant.DEFAULT_0).or().isNull("wmo.random_inspection_flag"));
                }
            }
            if(StringUtils.isNotBlank(query.getFinalRandomInspectionFlag())) {
                if(CommonConstant.DEFAULT_1.equals(query.getFinalRandomInspectionFlag())) {
                    queryWrapper.eq("wmo.final_random_inspection_flag", CommonConstant.DEFAULT_1);
                }else {
                    queryWrapper.and(q -> q.eq("wmo.final_random_inspection_flag", CommonConstant.DEFAULT_0).or().isNull("wmo.final_random_inspection_flag"));
                }
            }
            //排序
            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
@@ -283,6 +303,9 @@
            throw new JeecgBootException("设备不存在,添加失败!");
        }
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if(sysUser == null || !BusinessCodeConst.PCR0001.equals(sysUser.getPost())) {
            throw new JeecgBootException("不是操作工,无法领取此工单!");
        }
        entity.setOperator(sysUser.getUsername());
        entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.UNDER_MAINTENANCE.name());
        entity.setActualStartTime(new Date());
@@ -435,6 +458,7 @@
                entity.setInitialAcceptanceUser(user.getUsername());
                entity.setInitialAcceptanceComment(request.getInitialAcceptanceComment());
                entity.setInitialAcceptanceTime(new Date());
                entity.setRandomInspectionFlag(request.getRandomInspectionFlag());
                //处理附件
                if (CollectionUtil.isNotEmpty(request.getInitialAcceptanceFilesResult())) {
                    List<FileUploadResult> fileUploadResultList = request.getInitialAcceptanceFilesResult();
@@ -449,14 +473,15 @@
                break;
            case WAIT_FINAL_ACCEPTANCE:
                values.put("dataId", entity.getId());
                values.put("organization", request.getInitialAcceptanceComment());
                values.put("comment", request.getInitialAcceptanceComment());
                request.setComment(request.getInitialAcceptanceComment());
                values.put("organization", request.getFinalAcceptanceComment());
                values.put("comment", request.getFinalAcceptanceComment());
                request.setComment(request.getFinalAcceptanceComment());
                //设置entity
                entity.setMaintenanceStatus(WeekMaintenanceStatusEnum.COMPLETE.name());
                entity.setFinalAcceptanceUser(user.getUsername());
                entity.setFinalAcceptanceComment(request.getFinalAcceptanceComment());
                entity.setFinalAcceptanceTime(new Date());
                entity.setFinalRandomInspectionFlag(request.getFinalRandomInspectionFlag());
                //处理附件
                if (CollectionUtil.isNotEmpty(request.getFinalAcceptanceFilesResult())) {
                    List<FileUploadResult> fileUploadResultList = request.getFinalAcceptanceFilesResult();
@@ -496,6 +521,27 @@
        return eamWeekMaintenanceOrderMapper.selectList(queryWrapper);
    }
    @Override
    public List<EquipmentMaintenanceStatistics> equipmentMaintenanceStatistics(String productionId, LocalDate firstOfMonth, LocalDate today) {
        if (StringUtils.isNotBlank(productionId)) {
            //车间编码不为空
            List<String> productIds = mdcProductionService.recursionChildren(productionId);
            if (CollectionUtil.isEmpty(productIds)) {
                return Collections.emptyList();
            }
            List<EquipmentMaintenanceStatistics> list = this.baseMapper.equipmentMaintenanceStatistics(productIds, firstOfMonth.toString(), today.plusDays(1).toString());
            if (CollectionUtil.isEmpty(list)) {
                return Collections.emptyList();
            }
            return list;
        }
        List<EquipmentMaintenanceStatistics> list = this.baseMapper.equipmentMaintenanceStatistics(null, firstOfMonth.toString(), today.plusDays(1).toString());
        if (CollectionUtil.isEmpty(list)) {
            return Collections.emptyList();
        }
        return list;
    }
    private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) {
        List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
        return todoUsers != null && todoUsers.contains(user.getUsername());