lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentMaintenancePlanController.java
@@ -1,6 +1,8 @@
package org.jeecg.modules.eam.controller;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.query.QueryGenerator;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -8,18 +10,18 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import java.util.ArrayList;
import java.util.Arrays;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.EquipmentMaintenancePlanDetail;
import org.jeecg.modules.eam.entity.EquipmentMaintenancePlan;
import org.jeecg.modules.eam.service.IEquipmentMaintenancePlanService;
import org.jeecg.modules.eam.service.IEquipmentMaintenancePlanDetailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
@@ -55,6 +57,29 @@
   @Autowired
   private IEquipmentMaintenancePlanDetailService equipmentMaintenancePlanDetailService;
   @Autowired
   private IDailyMaintenanceOrderService dailyMaintenanceOrderService;
   @Autowired
   private IEamEquipmentService equipmentService;
   @Autowired
   private IMaintenanceStandardService maintenanceStandardService;
    @Autowired
   private IdentityService sysIdentityService;
    @Autowired
    private ISysBaseAPI sysBaseApi;
    @Autowired
    private IDailyMaintenanceOrderDetailService maintenanceOrderDetailService;
    @Autowired
    private IMaintenanceStandardDetailService maintenanceStandardDetailService;
   /*---------------------------------主表处理-begin-------------------------------------*/
@@ -74,6 +99,12 @@
                           @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                           HttpServletRequest req) {
      QueryWrapper<EquipmentMaintenancePlan> queryWrapper = QueryGenerator.initQueryWrapper(equipmentMaintenancePlan, req.getParameterMap());
        //按创建时间范围查询,从前端接收两个参数,beginTime和endTime
      String beginTime = req.getParameter("beginTime");
      String endTime = req.getParameter("endTime");
      if(oConvertUtils.isNotEmpty(beginTime) && oConvertUtils.isNotEmpty(endTime)){
         queryWrapper.between("create_time",beginTime,endTime);
      }
      Page<EquipmentMaintenancePlan> page = new Page<EquipmentMaintenancePlan>(pageNo, pageSize);
      IPage<EquipmentMaintenancePlan> pageList = equipmentMaintenancePlanService.page(page, queryWrapper);
      return Result.OK(pageList);
@@ -89,15 +120,44 @@
    @PostMapping(value = "/add")
   @Transactional(rollbackFor = {Exception.class})
    public Result<String> add(@RequestBody EquipmentMaintenancePlan equipmentMaintenancePlan) {
       equipmentMaintenancePlan.setStatus("created");
        List<EquipmentMaintenancePlanDetail> equipmentMaintenancePlanDetails = equipmentMaintenancePlan.getEquipmentMaintenancePlanDetailList();
      equipmentMaintenancePlan.setEquipNo(equipmentMaintenancePlanDetails.size());
       //判断selectOption类型
      equipmentMaintenancePlan.setStatus("created");
      equipmentMaintenancePlan.setDelFlag(CommonConstant.DEL_FLAG_0);
      equipmentMaintenancePlanService.save(equipmentMaintenancePlan);
        for(EquipmentMaintenancePlanDetail equipmentMaintenancePlanDetail:equipmentMaintenancePlanDetails){
           equipmentMaintenancePlanDetail.setPlanId(equipmentMaintenancePlan.getId());
      if(equipmentMaintenancePlan.getSelectOption().equals("0")){
         //查询所有设备并将其id封装成idList
         List<Equipment> equipments = equipmentService.list();
         List<String> idList = equipments.stream().map(Equipment::getId).collect(Collectors.toList());
         //根据idList和type查询所有设备的保养标准
         Map<String, Object> maintenanceStandards = equipmentMaintenancePlanService.getStandards(idList,equipmentMaintenancePlan.getType());
         List<MaintenanceStandard> maintenanceStandardList = (List<MaintenanceStandard>) maintenanceStandards.get("records");
         //循环maintenanceStandardList将数据封装到equipmentMaintenancePlanDetailList
         List<EquipmentMaintenancePlanDetail> equipmentMaintenancePlanDetailList = new ArrayList<>();
         equipmentMaintenancePlan.setEquipNo(maintenanceStandardList.size());
         equipmentMaintenancePlanService.save(equipmentMaintenancePlan);
         for(MaintenanceStandard maintenanceStandard:maintenanceStandardList){
            EquipmentMaintenancePlanDetail equipmentMaintenancePlanDetail = new EquipmentMaintenancePlanDetail();
            equipmentMaintenancePlanDetail.setStandardNum(maintenanceStandard.getNum());
            equipmentMaintenancePlanDetail.setEquipmentName(maintenanceStandard.getEquipmentName());
            equipmentMaintenancePlanDetail.setEquipmentId(maintenanceStandard.getEquipmentId());
            equipmentMaintenancePlanDetail.setEquipmentNum(maintenanceStandard.getEquipmentNum());
            equipmentMaintenancePlanDetail.setModel(maintenanceStandard.getEquipmentModel());
            equipmentMaintenancePlanDetail.setStandardId(maintenanceStandard.getId());
            equipmentMaintenancePlanDetail.setPlanId(equipmentMaintenancePlan.getId());
            equipmentMaintenancePlanDetail.setPlanStartTime(equipmentMaintenancePlan.getBeginTime());
            equipmentMaintenancePlanDetail.setPlanEndTime(equipmentMaintenancePlan.getEndTime());
            equipmentMaintenancePlanDetailList.add(equipmentMaintenancePlanDetail);
         }
         equipmentMaintenancePlanDetailService.saveBatch(equipmentMaintenancePlanDetailList);
      }
        equipmentMaintenancePlanDetailService.saveBatch(equipmentMaintenancePlanDetails);
      else{
         List<EquipmentMaintenancePlanDetail> equipmentMaintenancePlanDetails = equipmentMaintenancePlan.getEquipmentMaintenancePlanDetailList();
         equipmentMaintenancePlan.setEquipNo(equipmentMaintenancePlanDetails.size());
         equipmentMaintenancePlanService.save(equipmentMaintenancePlan);
         for(EquipmentMaintenancePlanDetail equipmentMaintenancePlanDetail:equipmentMaintenancePlanDetails){
            equipmentMaintenancePlanDetail.setPlanId(equipmentMaintenancePlan.getId());
         }
         equipmentMaintenancePlanDetailService.saveBatch(equipmentMaintenancePlanDetails);
      }
        return Result.OK("添加成功!");
    }
@@ -195,8 +255,53 @@
   }
   @PutMapping("distrbute")
   public Result<?> distrbute(@RequestBody EquipmentMaintenancePlan equipmentMaintenancePlan) {
       LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
       equipmentMaintenancePlan.setStatus("distributed");
       equipmentMaintenancePlanService.updateById(equipmentMaintenancePlan);
       //生成工单
       List<EquipmentMaintenancePlanDetail> equipmentMaintenancePlanDetails = equipmentMaintenancePlanDetailService.selectByMainId(equipmentMaintenancePlan.getId());
         for(EquipmentMaintenancePlanDetail equipmentMaintenancePlanDetail:equipmentMaintenancePlanDetails){
          MaintenanceStandard maintenanceStandard = maintenanceStandardService.getById(equipmentMaintenancePlanDetail.getStandardId());
          String num = sysIdentityService.getNumByTypeAndLength("MaintenanceOrder",4);
          DailyMaintenanceOrder dailyMaintenanceOrder = new DailyMaintenanceOrder();
          dailyMaintenanceOrder.setNum(num);
          dailyMaintenanceOrder.setEquipmentId(maintenanceStandard.getEquipmentId());
          dailyMaintenanceOrder.setPlanStartTime(equipmentMaintenancePlanDetail.getPlanStartTime());
          dailyMaintenanceOrder.setPlanEndTime(equipmentMaintenancePlanDetail.getPlanEndTime());
          dailyMaintenanceOrder.setStatus("3");//3:未开始
          dailyMaintenanceOrder.setMaintenanceStandardId(maintenanceStandard.getId());
          dailyMaintenanceOrder.setCreateType(CommonConstant.ANNOUNCEMENT_SEND_STATUS_2);
          List<MaintenanceStandardDetail> maintenanceStandardDetailList = equipmentMaintenancePlanService.getCycle(maintenanceStandard.getId(),equipmentMaintenancePlan.getType());
          if(maintenanceStandardDetailList.size()>0){
             dailyMaintenanceOrder.setMaintenanceCycleId(maintenanceStandardDetailList.get(0).getMaintenanceCycleId());
          }
          dailyMaintenanceOrder.setMaintenanceOrderUda1(equipmentMaintenancePlan.getId());
          dailyMaintenanceOrder.setMaintenanceOrderUda2(equipmentMaintenancePlanDetail.getId());
          dailyMaintenanceOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
          dailyMaintenanceOrder.setPrecisionInspectionStatus(CommonConstant.STATUS_0);
          dailyMaintenanceOrder.setStoveExemptStatus(CommonConstant.STATUS_0);
          dailyMaintenanceOrder.setConfirmStatus(CommonConstant.STATUS_0);
          dailyMaintenanceOrderService.save(dailyMaintenanceOrder);
          for(MaintenanceStandardDetail maintenanceStandardDetail:maintenanceStandardDetailList){
             DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail = new DailyMaintenanceOrderDetail();
             dailyMaintenanceOrderDetail.setDailyMaintenanceOrderId(dailyMaintenanceOrder.getId());
             dailyMaintenanceOrderDetail.setMaintenanceStandardDetailId(maintenanceStandardDetail.getId());
             dailyMaintenanceOrderDetail.setMaintenanceStandardId(maintenanceStandard.getId());
             dailyMaintenanceOrderDetail.setMaintenanceProjectId(maintenanceStandardDetail.getMaintenanceProjectId());
             dailyMaintenanceOrderDetail.setDelFlag(0);
             maintenanceOrderDetailService.save(dailyMaintenanceOrderDetail);
          }
       }
         equipmentMaintenancePlanService.updateById(equipmentMaintenancePlan);
         String msg  = "单据号为【"+equipmentMaintenancePlan.getNum()+"】的保养计划已生成保养工单";
         MessageDTO messageDTO = new MessageDTO();
         messageDTO.setTitle("有新的保养工单");
         messageDTO.setContent(msg);
         messageDTO.setCategory("系统消息");
         messageDTO.setFromUser(user.getUsername());
         messageDTO.setToUser("admin");
         if(equipmentMaintenancePlanDetails.size()!=0){
            sysBaseApi.sendSysAnnouncement(messageDTO);
         }
       return Result.OK("操作成功");
   }
@@ -340,9 +445,14 @@
       }
       return Result.error("文件导入失败!");
    }
    @GetMapping("/getStandards")
    public Result<?> getStandards(@RequestParam(name="ids",required=true) String ids,
                           @RequestParam(name="maintenanceType",required=true) String maintenanceType
   ){
        List<String> equipmentIds = Arrays.asList(ids.split(","));
         return Result.OK(equipmentMaintenancePlanService.getStandards(equipmentIds,maintenanceType));
   }
    /*--------------------------------子表处理-保养计划明细-end----------------------------------------------*/