xg
“linengliang”
2024-03-15 6a3591c42a84b36d24d75f4584f0eeb145bb4de7
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/PlanChangeApplyController.java
@@ -1,17 +1,24 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.entity.DailyMaintenanceOrder;
import org.jeecg.modules.eam.entity.EquipmentMaintenancePlanDetail;
import org.jeecg.modules.eam.entity.MaintenanceCycle;
import org.jeecg.modules.eam.entity.PlanChangeApply;
import org.jeecg.modules.eam.service.IPlanChangeApplyService;
import org.jeecg.modules.eam.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -19,8 +26,9 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.Date;
 /**
/**
 * @Description: mom_eam_plan_change_apply
 * @Author: jeecg-boot
 * @Date:   2023-09-04
@@ -33,7 +41,16 @@
public class PlanChangeApplyController extends JeecgController<PlanChangeApply, IPlanChangeApplyService> {
   @Autowired
   private IPlanChangeApplyService planChangeApplyService;
   @Autowired
   private IDailyMaintenanceOrderService dailyMaintenanceOrderService;
   @Autowired
   private IMaintenanceCycleService maintenanceCycleService;
   @Autowired
   private IEquipmentMaintenancePlanDetailService maintenancePlanDetailService;
   /**
    * 分页列表查询
    *
@@ -55,7 +72,7 @@
      IPage<PlanChangeApply> pageList = planChangeApplyService.page(page, queryWrapper);
      return Result.OK(pageList);
   }
   /**
    *   添加
    *
@@ -67,10 +84,34 @@
   //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_plan_change_apply:add")
   @PostMapping(value = "/add")
   public Result<String> add(@RequestBody PlanChangeApply planChangeApply) {
      planChangeApply.setMaintenanceOrderId(planChangeApply.getId());
      planChangeApply.setId("");
      planChangeApplyService.save(planChangeApply);
      /**
       * 根据申请延保时间  重新计算工单的结束时间
       */
      DailyMaintenanceOrder dailyMaintenanceOrder = dailyMaintenanceOrderService.getById(planChangeApply.getMaintenanceOrderId());
      String maintenanceCycleId = dailyMaintenanceOrder.getMaintenanceCycleId();
      Date planDelayTime = planChangeApply.getPlanDelayTime();
      MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId);
      String unit = maintenanceCycle.getUnit();
      int effectiveTime = maintenanceCycle.getEffectiveTime().intValue();
      Date date = null;
      if ("min".equals(unit)) {
         date = DateUtils.getMinAfter(planDelayTime, effectiveTime);
      } else if ("hour".equals(unit)) {
         date = DateUtils.getHourAfter(planDelayTime, effectiveTime);
      } else if ("day".equals(unit)) {
         date = DateUtils.getDayAfter(planDelayTime, effectiveTime);
      }
      dailyMaintenanceOrder.setPlanEndTime(date);
      dailyMaintenanceOrder.setPlanStartTime(planDelayTime);
      dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
      return Result.OK("添加成功!");
   }
   /**
    *  编辑
    *
@@ -85,7 +126,7 @@
      planChangeApplyService.updateById(planChangeApply);
      return Result.OK("编辑成功!");
   }
   /**
    *   通过id删除
    *
@@ -100,7 +141,7 @@
      planChangeApplyService.removeById(id);
      return Result.OK("删除成功!");
   }
   /**
    *  批量删除
    *
@@ -115,7 +156,7 @@
      this.planChangeApplyService.removeByIds(Arrays.asList(ids.split(",")));
      return Result.OK("批量删除成功!");
   }
   /**
    * 通过id查询
    *
@@ -157,5 +198,42 @@
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, PlanChangeApply.class);
    }
   @PostMapping(value = "/addForPlan")
   public Result<String> addForPlan(@RequestBody PlanChangeApply planChangeApply) {
       DailyMaintenanceOrder dailyMaintenanceOrder = dailyMaintenanceOrderService
            .getOne(new QueryWrapper<DailyMaintenanceOrder>()
                  .eq("maintenance_order_uda1",planChangeApply.getPlanId())
                  .eq("maintenance_order_uda2",planChangeApply.getId()),false);
       if(ObjectUtils.isNull(dailyMaintenanceOrder)){
          return Result.error("尚未生成工单,无需申请");
      }else if(!dailyMaintenanceOrder.getStatus().equals(CommonConstant.STATUS_1)){
            return Result.error("工单已下达不允许进行变更");
      }
      maintenancePlanDetailService.update(new UpdateWrapper<EquipmentMaintenancePlanDetail>().eq("id",planChangeApply.getId()).set("plan_start_time",planChangeApply.getPlanDelayTime()));
      planChangeApply.setMaintenanceOrderId(dailyMaintenanceOrder.getId());
      planChangeApply.setId("");
      planChangeApplyService.save(planChangeApply);
      /**
       * 根据申请延保时间  重新计算工单的结束时间
       */
      String maintenanceCycleId = dailyMaintenanceOrder.getMaintenanceCycleId();
      Date planDelayTime = planChangeApply.getPlanDelayTime();
      MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId);
      String unit = maintenanceCycle.getUnit();
      int effectiveTime = maintenanceCycle.getEffectiveTime().intValue();
      Date date = null;
      if ("min".equals(unit)) {
         date = DateUtils.getMinAfter(planDelayTime, effectiveTime);
      } else if ("hour".equals(unit)) {
         date = DateUtils.getHourAfter(planDelayTime, effectiveTime);
      } else if ("day".equals(unit)) {
         date = DateUtils.getDayAfter(planDelayTime, effectiveTime);
      }
      dailyMaintenanceOrder.setPlanEndTime(date);
      dailyMaintenanceOrder.setPlanStartTime(planDelayTime);
      dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
      return Result.OK("添加成功!");
   }
}