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<SpecialtyMaintenanceOrderMapper, SpecialtyMaintenanceOrder> 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<SpecialtyMaintenancePlanDetail> 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<Map<String, Object>> maintenanceProjectList = this.baseMapper.getMaintenanceProjectList(maintenanceCycleId,maintenanceMode,maintenanceStandardId);
|
for (Map<String, Object> 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<SpecialtyMaintenanceOrderDetail> specialtyMaintenanceOrderDetails = specialtyMaintenanceOrderDetailService.lambdaQuery().eq(SpecialtyMaintenanceOrderDetail::getSpecialtyMaintenanceOrderId, specialtyMaintenanceOrder.getId()).eq(SpecialtyMaintenanceOrderDetail::getDelFlag, 0).list();
|
for (SpecialtyMaintenanceOrderDetail specialtyMaintenanceOrderDetail : specialtyMaintenanceOrderDetails) {
|
specialtyMaintenanceOrderDetailService.removeById(specialtyMaintenanceOrderDetail);
|
}
|
|
List<SpecialtyMaintenancePlanDetail> 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<Map<String, Object>> maintenanceProjectList = this.baseMapper.getMaintenanceProjectList(maintenanceCycleId,maintenanceMode,maintenanceStandardId);
|
for (Map<String, Object> 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<Map<String, Object>> getSpecialtyMaintenanceOrderList(Integer pageNo, Integer pageSize, Map<String, Object> params) {
|
IPage<Map> pageData = new Page<Map>(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;
|
}
|
|
}
|