package org.jeecg.modules.eam.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.eam.entity.*; import org.jeecg.modules.eam.mapper.SpecialtyInspectionOrderMapper; 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_inspection_order * @Author: jeecg-boot * @Date: 2023-04-24 * @Version: V1.0 */ @Service public class SpecialtyInspectionOrderServiceImpl extends ServiceImpl implements ISpecialtyInspectionOrderService { @Autowired private ISpecialtyInspectionPlanService specialtyInspectionPlanService; @Autowired private ISpecialtyInspectionPlanDetailService specialtyInspectionPlanDetailService; @Autowired private IInspectionCycleService inspectionCycleService; @Autowired private ISpecialtyInspectionStandardDetailService specialtyInspectionStandardDetailService; @Autowired private IInspectionProjectService inspectionProjectService; @Autowired private ISpecialtyInspectionOrderDetailService specialtyInspectionOrderDetailService; /** *获取专业点检工单 */ @Override public IPage> getSpecialtyInspectionOrderList(Integer pageNo, Integer pageSize, Map params) { IPage pageData = new Page(pageNo, pageSize); return super.getBaseMapper().getSpecialtyInspectionOrderList(pageData,params); } /** *编辑 专业点检工单 */ @Override @Transactional(rollbackFor = { Exception.class }) public boolean edit(SpecialtyInspectionOrder specialtyInspectionOrder) { String specialtyInspectionPlanId = specialtyInspectionOrder.getSpecialtyInspectionPlanId(); SpecialtyInspectionPlan specialtyInspectionPlan = specialtyInspectionPlanService.getById(specialtyInspectionPlanId); String inspectionCycleId = specialtyInspectionPlan.getInspectionCycleId(); InspectionCycle inspectionCycle = inspectionCycleService.getById(inspectionCycleId); String unit = inspectionCycle.getUnit(); BigDecimal effectiveTime = inspectionCycle.getEffectiveTime(); Date inspectionTime = specialtyInspectionOrder.getInspectionTime(); Date date = null; if("min".equals(unit)){ date = DateUtils.getMinAfter(inspectionTime, effectiveTime.intValue()); }else if("hour".equals(unit)){ date = DateUtils.getHourAfter(inspectionTime, effectiveTime.intValue()); }else if("day".equals(unit)){ date = DateUtils.getDayAfter(inspectionTime, effectiveTime.intValue()); } specialtyInspectionOrder.setInspectionCycleId(inspectionCycleId); specialtyInspectionOrder.setInspectionDeadline(date); specialtyInspectionOrder.setCreateType("1");//创建类型(1手动创建,2自动创建) specialtyInspectionOrder.setStatus("1"); boolean b1 = super.updateById(specialtyInspectionOrder); if(!b1){ return false; } List orderDetails = specialtyInspectionOrderDetailService.lambdaQuery() .eq(SpecialtyInspectionOrderDetail::getSpecialtyInspectionOrderId, specialtyInspectionOrder.getId()) .eq(SpecialtyInspectionOrderDetail::getDelFlag, "0").list(); for (SpecialtyInspectionOrderDetail orderDetail : orderDetails) { orderDetail.setDelFlag(1); specialtyInspectionOrderDetailService.updateById(orderDetail); } List specialtyInspectionPlanDetails = specialtyInspectionPlanDetailService.lambdaQuery() .eq(SpecialtyInspectionPlanDetail::getSpecialtyInspectionPlanId, specialtyInspectionPlanId) .eq(SpecialtyInspectionPlanDetail::getDelFlag, 0).list(); for (SpecialtyInspectionPlanDetail specialtyInspectionPlanDetail : specialtyInspectionPlanDetails) { String specialtyInspectionStandardId = specialtyInspectionPlanDetail.getSpecialtyInspectionStandardId(); String equipmentId = specialtyInspectionPlanDetail.getEquipmentId(); String specialtyInspectionPlanDetailId = specialtyInspectionPlanDetail.getId(); List specialtyInspectionStandardDetails = specialtyInspectionStandardDetailService.lambdaQuery() .eq(SpecialtyInspectionStandardDetail::getSpecialtyInspectionStandardId, specialtyInspectionStandardId) .eq(SpecialtyInspectionStandardDetail::getInspectionCycleId,inspectionCycleId) .eq(SpecialtyInspectionStandardDetail::getDelFlag, 0).list(); for (SpecialtyInspectionStandardDetail inspectionStandardDetail : specialtyInspectionStandardDetails) { String inspectionProjectId = inspectionStandardDetail.getInspectionProjectId(); InspectionProject inspectionProject = inspectionProjectService.getById(inspectionProjectId); SpecialtyInspectionOrderDetail specialtyInspectionOrderDetail = new SpecialtyInspectionOrderDetail(); specialtyInspectionOrderDetail.setSpecialtyInspectionOrderId(specialtyInspectionOrder.getId()); specialtyInspectionOrderDetail.setSpecialtyInspectionPlanDetailId(specialtyInspectionPlanDetailId); specialtyInspectionOrderDetail.setEquipmentId(equipmentId); specialtyInspectionOrderDetail.setSpecialtyInspectionStandardDetailId(inspectionStandardDetail.getId()); specialtyInspectionOrderDetail.setInspectionProjectId(inspectionProjectId); specialtyInspectionOrderDetail.setLocation(inspectionStandardDetail.getLocation()); specialtyInspectionOrderDetail.setPhoto(inspectionStandardDetail.getPhoto()); specialtyInspectionOrderDetail.setInspectionMethod(inspectionProject.getInspectionMethod()); specialtyInspectionOrderDetail.setInspectionTool(inspectionProject.getInspectionTool()); specialtyInspectionOrderDetail.setAnalysisMethod(inspectionProject.getAnalysisMethod()); specialtyInspectionOrderDetail.setTestValueType(inspectionProject.getTestValueType()); specialtyInspectionOrderDetail.setDetectionStandard(inspectionProject.getDetectionStandard()); specialtyInspectionOrderDetail.setAcceptabilityLimit(inspectionProject.getAcceptabilityLimit()); boolean b = specialtyInspectionOrderDetailService.save(specialtyInspectionOrderDetail); if(!b){ return false; } } } return true; } /** *改派 专业点检工单 */ @Override public boolean assign(SpecialtyInspectionOrder specialtyInspectionOrder) { specialtyInspectionOrder.setStatus("3"); boolean b1 = super.updateById(specialtyInspectionOrder); if(!b1){ return false; } return true; } @Override @Transactional(rollbackFor = { Exception.class }) public boolean add(SpecialtyInspectionOrder specialtyInspectionOrder) { String specialtyInspectionPlanId = specialtyInspectionOrder.getSpecialtyInspectionPlanId(); SpecialtyInspectionPlan specialtyInspectionPlan = specialtyInspectionPlanService.getById(specialtyInspectionPlanId); String inspectionCycleId = specialtyInspectionPlan.getInspectionCycleId(); InspectionCycle inspectionCycle = inspectionCycleService.getById(inspectionCycleId); String unit = inspectionCycle.getUnit(); BigDecimal effectiveTime = inspectionCycle.getEffectiveTime(); Date inspectionTime = specialtyInspectionOrder.getInspectionTime(); Date date = null; if("min".equals(unit)){ date = DateUtils.getMinAfter(inspectionTime, effectiveTime.intValue()); }else if("hour".equals(unit)){ date = DateUtils.getHourAfter(inspectionTime, effectiveTime.intValue()); }else if("day".equals(unit)){ date = DateUtils.getDayAfter(inspectionTime, effectiveTime.intValue()); } specialtyInspectionOrder.setInspectionCycleId(inspectionCycleId); specialtyInspectionOrder.setInspectionDeadline(date); specialtyInspectionOrder.setCreateType("1");//创建类型(1手动创建,2自动创建) specialtyInspectionOrder.setStatus("1"); boolean b1 = super.save(specialtyInspectionOrder); if(!b1){ return false; } List specialtyInspectionPlanDetails = specialtyInspectionPlanDetailService.lambdaQuery() .eq(SpecialtyInspectionPlanDetail::getSpecialtyInspectionPlanId, specialtyInspectionPlanId) .eq(SpecialtyInspectionPlanDetail::getDelFlag, 0).list(); for (SpecialtyInspectionPlanDetail specialtyInspectionPlanDetail : specialtyInspectionPlanDetails) { String specialtyInspectionStandardId = specialtyInspectionPlanDetail.getSpecialtyInspectionStandardId(); String equipmentId = specialtyInspectionPlanDetail.getEquipmentId(); String specialtyInspectionPlanDetailId = specialtyInspectionPlanDetail.getId(); List specialtyInspectionStandardDetails = specialtyInspectionStandardDetailService.lambdaQuery() .eq(SpecialtyInspectionStandardDetail::getSpecialtyInspectionStandardId, specialtyInspectionStandardId) .eq(SpecialtyInspectionStandardDetail::getDelFlag, 0) .eq(SpecialtyInspectionStandardDetail::getInspectionCycleId,inspectionCycleId) .list(); for (SpecialtyInspectionStandardDetail inspectionStandardDetail : specialtyInspectionStandardDetails) { String inspectionProjectId = inspectionStandardDetail.getInspectionProjectId(); InspectionProject inspectionProject = inspectionProjectService.getById(inspectionProjectId); SpecialtyInspectionOrderDetail specialtyInspectionOrderDetail = new SpecialtyInspectionOrderDetail(); specialtyInspectionOrderDetail.setSpecialtyInspectionOrderId(specialtyInspectionOrder.getId()); specialtyInspectionOrderDetail.setSpecialtyInspectionPlanDetailId(specialtyInspectionPlanDetailId); specialtyInspectionOrderDetail.setEquipmentId(equipmentId); specialtyInspectionOrderDetail.setSpecialtyInspectionStandardDetailId(inspectionStandardDetail.getId()); specialtyInspectionOrderDetail.setInspectionProjectId(inspectionProjectId); specialtyInspectionOrderDetail.setLocation(inspectionStandardDetail.getLocation()); specialtyInspectionOrderDetail.setPhoto(inspectionStandardDetail.getPhoto()); specialtyInspectionOrderDetail.setInspectionMethod(inspectionProject.getInspectionMethod()); specialtyInspectionOrderDetail.setInspectionTool(inspectionProject.getInspectionTool()); specialtyInspectionOrderDetail.setAnalysisMethod(inspectionProject.getAnalysisMethod()); specialtyInspectionOrderDetail.setTestValueType(inspectionProject.getTestValueType()); specialtyInspectionOrderDetail.setDetectionStandard(inspectionProject.getDetectionStandard()); specialtyInspectionOrderDetail.setAcceptabilityLimit(inspectionProject.getAcceptabilityLimit()); boolean b = specialtyInspectionOrderDetailService.save(specialtyInspectionOrderDetail); if(!b){ return false; } } } return true; } }