package org.jeecg.modules.eam.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import kotlin.jvm.internal.PackageReference; import org.apache.ibatis.annotations.Param; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.mapper.SpecialtyMaintenanceOrderMapper; import org.jeecg.modules.eam.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; /** * @Description: mom_eam_specialty_maintenance_order * @Author: jeecg-boot * @Date: 2023-05-08 * @Version: V1.0 */ @Service public class SpecialtyMaintenanceOrderServiceImpl extends ServiceImpl implements ISpecialtyMaintenanceOrderService { @Autowired private ISpecialtyMaintenancePlanService specialtyMaintenancePlanService; @Autowired private IMaintenanceCycleService maintenanceCycleService; @Autowired private ISpecialtyMaintenancePlanDetailService specialtyMaintenancePlanDetailService; @Autowired private ISpecialtyMaintenanceOrderDetailService specialtyMaintenanceOrderDetailService; @Override @Transactional(rollbackFor = { Exception.class }) public boolean add(SpecialtyMaintenanceOrder specialtyMaintenanceOrder) { Date planStartTime = specialtyMaintenanceOrder.getPlanStartTime(); String specialtyMaintenancePlanId = specialtyMaintenanceOrder.getSpecialtyMaintenancePlanId(); SpecialtyMaintenancePlan specialtyMaintenancePlan = specialtyMaintenancePlanService.getById(specialtyMaintenancePlanId); // String departId = specialtyMaintenancePlan.getDepartId(); String maintenanceMode = specialtyMaintenancePlan.getMaintenanceMode(); String maintenanceCycleId = specialtyMaintenancePlan.getMaintenanceCycleId(); MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId); String unit = maintenanceCycle.getUnit(); BigDecimal effectiveTime = maintenanceCycle.getEffectiveTime(); Date date = null; if("min".equals(unit)){ date = DateUtils.getMinAfter(planStartTime, effectiveTime.intValue()); }else if("hour".equals(unit)){ date = DateUtils.getHourAfter(planStartTime, effectiveTime.intValue()); }else if("day".equals(unit)){ date = DateUtils.getDayAfter(planStartTime, effectiveTime.intValue()); } specialtyMaintenanceOrder.setPlanEndTime(date); specialtyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建) boolean b = super.save(specialtyMaintenanceOrder); if(!b){ return false; } List specialtyMaintenancePlanDetails = specialtyMaintenancePlanDetailService.lambdaQuery() .eq(SpecialtyMaintenancePlanDetail::getSpecialtyMaintenancePlanId, specialtyMaintenancePlanId) .eq(SpecialtyMaintenancePlanDetail::getDelFlag, 0).list(); for (SpecialtyMaintenancePlanDetail specialtyMaintenancePlanDetail : specialtyMaintenancePlanDetails) { String specialtyMaintenancePlanDetailId = specialtyMaintenancePlanDetail.getId(); String equipmentId = specialtyMaintenancePlanDetail.getEquipmentId(); String maintenanceStandardId = specialtyMaintenancePlanDetail.getMaintenanceStandardId(); SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail = null; List> maintenanceProjectList = this.baseMapper.getMaintenanceProjectList(maintenanceCycleId,maintenanceMode,maintenanceStandardId); for (Map maintenanceProject : maintenanceProjectList) { specialtyMaintenanceOrderDetail = new SpecialtyMaintenanceOrderDetail(); specialtyMaintenanceOrderDetail.setSpecialtyMaintenanceOrderId(specialtyMaintenanceOrder.getId()); specialtyMaintenanceOrderDetail.setMaintenanceStandardId(maintenanceStandardId); specialtyMaintenanceOrderDetail.setMaintenanceStandardDetailId((String)maintenanceProject.get("id")); specialtyMaintenanceOrderDetail.setEquipmentId(equipmentId); specialtyMaintenanceOrderDetail.setSpecialtyMaintenancePlanDetailId(specialtyMaintenancePlanDetailId); specialtyMaintenanceOrderDetail.setMaintenanceProjectId((String)maintenanceProject.get("maintenanceProjectId")); specialtyMaintenanceOrderDetailService.save(specialtyMaintenanceOrderDetail); } } return true; } @Override @Transactional(rollbackFor = { Exception.class }) public boolean edit(SpecialtyMaintenanceOrder specialtyMaintenanceOrder) { Date planStartTime = specialtyMaintenanceOrder.getPlanStartTime(); String specialtyMaintenancePlanId = specialtyMaintenanceOrder.getSpecialtyMaintenancePlanId(); SpecialtyMaintenancePlan specialtyMaintenancePlan = specialtyMaintenancePlanService.getById(specialtyMaintenancePlanId); String maintenanceMode = specialtyMaintenancePlan.getMaintenanceMode(); String maintenanceCycleId = specialtyMaintenancePlan.getMaintenanceCycleId(); MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId); String unit = maintenanceCycle.getUnit(); BigDecimal effectiveTime = maintenanceCycle.getEffectiveTime(); Date date = null; if("min".equals(unit)){ date = DateUtils.getMinAfter(planStartTime, effectiveTime.intValue()); }else if("hour".equals(unit)){ date = DateUtils.getHourAfter(planStartTime, effectiveTime.intValue()); }else if("day".equals(unit)){ date = DateUtils.getDayAfter(planStartTime, effectiveTime.intValue()); } specialtyMaintenanceOrder.setPlanEndTime(date); specialtyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建) boolean b = super.updateById(specialtyMaintenanceOrder); if(!b){ return false; } List specialtyMaintenanceOrderDetails = specialtyMaintenanceOrderDetailService.lambdaQuery().eq(SpecialtyMaintenanceOrderDetail::getSpecialtyMaintenanceOrderId, specialtyMaintenanceOrder.getId()).eq(SpecialtyMaintenanceOrderDetail::getDelFlag, 0).list(); for (SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail : specialtyMaintenanceOrderDetails) { specialtyMaintenanceOrderDetailService.removeById(specialtyMaintenanceOrderDetail); } List specialtyMaintenancePlanDetails = specialtyMaintenancePlanDetailService.lambdaQuery() .eq(SpecialtyMaintenancePlanDetail::getSpecialtyMaintenancePlanId, specialtyMaintenancePlanId) .eq(SpecialtyMaintenancePlanDetail::getDelFlag, 0).list(); for (SpecialtyMaintenancePlanDetail specialtyMaintenancePlanDetail : specialtyMaintenancePlanDetails) { String specialtyMaintenancePlanDetailId = specialtyMaintenancePlanDetail.getId(); String equipmentId = specialtyMaintenancePlanDetail.getEquipmentId(); String maintenanceStandardId = specialtyMaintenancePlanDetail.getMaintenanceStandardId(); SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail = null; List> maintenanceProjectList = this.baseMapper.getMaintenanceProjectList(maintenanceCycleId,maintenanceMode,maintenanceStandardId); for (Map maintenanceProject : maintenanceProjectList) { specialtyMaintenanceOrderDetail = new SpecialtyMaintenanceOrderDetail(); specialtyMaintenanceOrderDetail.setSpecialtyMaintenanceOrderId(specialtyMaintenanceOrder.getId()); specialtyMaintenanceOrderDetail.setMaintenanceStandardId(maintenanceStandardId); specialtyMaintenanceOrderDetail.setMaintenanceStandardDetailId((String)maintenanceProject.get("id")); specialtyMaintenanceOrderDetail.setEquipmentId(equipmentId); specialtyMaintenanceOrderDetail.setSpecialtyMaintenancePlanDetailId(specialtyMaintenancePlanDetailId); specialtyMaintenanceOrderDetail.setMaintenanceProjectId((String)maintenanceProject.get("maintenanceProjectId")); specialtyMaintenanceOrderDetailService.save(specialtyMaintenanceOrderDetail); } } return true; } @Override public IPage> getSpecialtyMaintenanceOrderList(Integer pageNo, Integer pageSize, Map params) { IPage pageData = new Page(pageNo, pageSize); return super.getBaseMapper().getSpecialtyMaintenanceOrderList(pageData, params) ; } @Override public boolean assign(SpecialtyMaintenanceOrder specialtyMaintenanceOrder) { specialtyMaintenanceOrder.setStatus("3"); boolean b1 = super.updateById(specialtyMaintenanceOrder); if(!b1){ return false; } return true; } }