hyingbo
21 小时以前 23396e93588f52941f729fc63cea84a70847d3bc
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -6,30 +6,41 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.beust.jcommander.internal.Lists;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.ExceptionCast;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.FileUtil;
import org.jeecg.modules.eam.constant.MaintenanceCategoryEnum;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
import org.jeecg.modules.eam.entity.EamEquipmentExtend;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.entity.EamSysFiles;
import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
import org.jeecg.modules.eam.service.IEamSysFilesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -46,6 +57,11 @@
    @Autowired
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
    @Autowired
    private IEamSysFilesService sysFilesService;
    @Autowired
    private IEamEquipmentExtendService eamEquipmentExtendService;
    @Override
    public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
@@ -71,7 +87,7 @@
            }
            //名称 模糊查询
            if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode());
                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName());
            }
            //设备
            if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
@@ -130,6 +146,11 @@
            }
        }
        eamMaintenanceStandardMapper.insert(entity);
        //保养分类为二保/三保时设置下次保养时间
        if (Lists.newArrayList(MaintenanceCategoryEnum.SECOND_MAINTENANCE.name(), MaintenanceCategoryEnum.THIRD_MAINTENANCE.name()).contains(entity.getMaintenanceCategory())) {
            updateEquipmentExtendInfo(entity);
        }
        //处理明细数据
        if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) {
            standardRequest.getTableDetailList().forEach(tableDetail -> {
@@ -183,11 +204,25 @@
                eamMaintenanceStandardDetailService.updateBatchById(updateList);
            }
        }
        updateEquipmentExtendInfo(entity);
        if(CollectionUtil.isNotEmpty(standardRequest.getRemoveDetailList())) {
            List<String> ids = standardRequest.getRemoveDetailList().stream().map(EamMaintenanceStandardDetail::getId).collect(Collectors.toList());
            eamMaintenanceStandardDetailService.removeBatchByIds(ids);
        }
        return true;
    }
    private boolean updateEquipmentExtendInfo(EamMaintenanceStandard entity) {
        //查询设备扩展表
        EamEquipmentExtend eamEquipmentExtend = eamEquipmentExtendService.getById(entity.getEquipmentId());
        //处理设备扩展表中下次保养时间
        LocalDate nextSecondMaintenanceDate = DateUtils.dateToLocalDate(entity.getInitialDate()).plusDays(entity.getMaintenancePeriod());
        if (MaintenanceCategoryEnum.THIRD_MAINTENANCE.name().equals(entity.getMaintenanceCategory())) {
            eamEquipmentExtend.setNextThirdMaintenance(DateUtils.localDateToDate(nextSecondMaintenanceDate));
        }else if (MaintenanceCategoryEnum.SECOND_MAINTENANCE.name().equals(entity.getMaintenanceCategory())) {
            eamEquipmentExtend.setNextSecondMaintenance(DateUtils.localDateToDate(nextSecondMaintenanceDate));
        }
        return eamEquipmentExtendService.updateById(eamEquipmentExtend);
    }
    @Override
@@ -245,6 +280,8 @@
            });
            eamMaintenanceStandardDetailService.saveBatch(standardRequest.getTableDetailList());
        }
        updateEquipmentExtendInfo(entity);
        return true;
    }
@@ -290,4 +327,20 @@
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
        return eamMaintenanceStandardMapper.selectList(queryWrapper);
    }
    @Override
    public void downloadFile(HttpServletResponse response, EamMaintenanceStandard eamMaintenanceStandard) throws JsonProcessingException {
        String json = eamMaintenanceStandard.getReferenceFile();
        if(StringUtils.isNotBlank(json)){
            ObjectMapper mapper = new ObjectMapper();
            Map<String, Object> map = mapper.readValue(json, Map.class);
            String fileEncodeName = (String) map.get("fileEncodeName");
            List<EamSysFiles> list = sysFilesService.lambdaQuery().eq(EamSysFiles::getFileEncodeName, fileEncodeName).list();
            if(list.size()>0){
                FileUtil.downLoadFile(response, list.get(0).getFilePath(), list.get(0).getFileName());
            }else{
                ExceptionCast.cast("文件不存在");
            }
        }
    }
}