“linengliang”
2023-08-23 1d6d68d6643f845f8894294d7ee2269670222e6e
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -7,12 +7,16 @@
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.base.entity.SysUpload;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.model.DepartVo;
import org.jeecg.modules.eam.service.*;
@@ -24,10 +28,14 @@
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -88,6 +96,9 @@
    @Autowired
    private ICalibrationOrderReportService calibrationOrderReportService;
    @Autowired
    private IEquipmentCategoryService equipmentCategoryService;
   /**
    * 分页列表查询
    *
@@ -179,7 +190,7 @@
       IPage<Equipment> pageList = equipmentService.page(page, queryWrapper);
       return Result.OK(pageList);
    }
   /**
    *   添加
    *
@@ -222,7 +233,7 @@
      }
      return Result.OK("添加成功!");
   }
   /**
    *  编辑
    *
@@ -281,7 +292,7 @@
      }
      return Result.OK("编辑成功!");
   }
   /**
    *   通过id删除
    *
@@ -298,7 +309,7 @@
      equipmentService.updateById(equipment);
      return Result.OK("删除成功!");
   }
   /**
    *  批量删除
    *
@@ -319,7 +330,7 @@
//      this.equipmentService.removeByIds(Arrays.asList(ids.split(",")));
      return Result.OK("批量删除成功!");
   }
   /**
    * 通过id查询
    *
@@ -349,18 +360,18 @@
        return super.exportXls(request, equipment, Equipment.class, "mom_eam_equipment");
    }
    /**
      * 通过excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("mom_eam_equipment:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, Equipment.class);
    }
//    /**
//      * 通过excel导入数据
//    *
//    * @param request
//    * @param response
//    * @return
//    */
//    //@RequiresPermissions("mom_eam_equipment:importExcel")
//    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
//    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
//        return super.importExcel(request, response, Equipment.class);
//    }
    /**
@@ -391,6 +402,7 @@
    @GetMapping(value = "/getResumeInspectionRecordList")
    public Result<?> getResumeInspectionRecordList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
       IPage<Map<String, Object>> resumeInspectionRecordList = equipmentService.getResumeInspectionRecordList(pageNo, pageSize, params);
       LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
       for (Map<String, Object> record : resumeInspectionRecordList.getRecords()) {
          String id = (String)record.get("id");
          String inspectionType = (String)record.get("inspectionType");
@@ -503,6 +515,121 @@
       queryWrapper.in("equipment_status",statusList);
       IPage<Equipment> pageList = equipmentService.page(page, queryWrapper);
       return Result.OK(pageList);
    }/**
     * 导入
     * @return
     */
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    @Transactional(rollbackFor = Exception.class)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
       MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
       LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
       Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
       String exceptionInfo = "";
       int exceptionNum = 0;
       for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
          MultipartFile file = entity.getValue();
          ImportParams params = new ImportParams();
          params.setNeedSave(true);
          try {
             List<EquipmentImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), EquipmentImportVo.class, params);
             for(int i = 0;i<list.size();i++){
                     EquipmentImportVo equipmentImportVo = list.get(i);
                EquipmentCategory equipmentCategory = equipmentCategoryService.getOne(new QueryWrapper<EquipmentCategory>().eq("name",equipmentImportVo.getEquipmentCategoryName()),false);
                     if(
                           StringUtils.isBlank(equipmentImportVo.getNum())
                           || StringUtils.isBlank(equipmentImportVo.getName())
                           || StringUtils.isBlank(equipmentImportVo.getUseId())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentUda1())
                           || StringUtils.isBlank(equipmentImportVo.getManageId())
                           || StringUtils.isBlank(equipmentImportVo.getTeamId())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentImportanceId())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentCategoryName())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentStatus())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentUda3())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentUda5())
                           || StringUtils.isBlank(equipmentImportVo.getEquipmentUda2())
                           || StringUtils.isBlank(equipmentImportVo.getLeaveFactoryDate())
                           || StringUtils.isBlank(equipmentImportVo.getProjectApprovalNo())
                           || StringUtils.isBlank(equipmentImportVo.getFundSource())
                           || StringUtils.isBlank(equipmentImportVo.getAcceptanceCheckDate())
                           || StringUtils.isBlank(equipmentImportVo.getLeaveFactoryDate())
                           || StringUtils.isBlank(equipmentImportVo.getFactoryNo())
                           || StringUtils.isBlank(equipmentImportVo.getConstructorId())
                           || StringUtils.isBlank(equipmentImportVo.getSourceCountry())
                           || StringUtils.isBlank(equipmentImportVo.getModel())
                           || StringUtils.isBlank(equipmentImportVo.getSpecification())
                           || StringUtils.isBlank(equipmentImportVo.getGpo())
                ){
                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:数据有未填项,请填写必填项后再导入;";
                   exceptionNum++;
                }else if(ObjectUtils.isNull(equipmentCategory))
                      {
                       exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:该设备所属类别不存在,请先维护设备类别;";
                       exceptionNum++;
                     }
                      else{
                   Equipment oriEquipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentImportVo.getNum()),false);
                   if(ObjectUtils.isNull(oriEquipment)){
                      Equipment equipment = new Equipment();
                      equipment.setNum(equipmentImportVo.getNum())
                            .setName(equipmentImportVo.getName())
                            .setUseId(equipmentImportVo.getUseId())
                            .setEquipmentUda1(equipmentImportVo.getEquipmentUda1())
                            .setManageId(equipmentImportVo.getManageId())
                            .setTeamId(equipmentImportVo.getTeamId())
                            .setEquipmentImportanceId(equipmentImportVo.getEquipmentImportanceId())
                            .setEquipmentCategoryId(equipmentCategory.getId())
                            .setKeyEquipmentIdentification(equipmentImportVo.getKeyEquipmentIdentification())
                            .setSecurityConfiguration(equipmentImportVo.getSecurityConfiguration())
                            .setCoolingSystem(equipmentImportVo.getCoolingSystem())
                            .setFireExtinguisher(equipmentImportVo.getFireExtinguisher())
                            .setFireExtinguisherValidityPeriod(equipmentImportVo.getFireExtinguisherValidityPeriod())
                            .setOperatingSystem(equipmentImportVo.getOperatingSystem())
                            .setSystem(equipmentImportVo.getSystem())
                            .setPort(equipmentImportVo.getPort())
                            .setCoordinateNum(equipmentImportVo.getCoordinateNum())
                            .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
                            .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
                            .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
                            .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
                            .setEquipmentUda2(equipmentImportVo.getEquipmentUda2())
                            .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
                            .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
                            .setFundSource(equipmentImportVo.getFundSource())
                            .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
                            .setFactoryNo(equipmentImportVo.getFactoryNo())
                            .setConstructorId(equipmentImportVo.getConstructorId())
                            .setSourceCountry(equipmentImportVo.getSourceCountry())
                            .setModel(equipmentImportVo.getModel())
                            .setSpecification(equipmentImportVo.getSpecification())
                            .setGpo(equipmentImportVo.getGpo());
                      equipmentService.save(equipment);
                   }else {
                      exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码已存在,数据重复导入;";
                      exceptionNum++;
                   }
                }
             }
             if(exceptionNum!=0){
                String headInfo = "小导提醒您!设备台账:导入成功"+(list.size()-exceptionNum)+"条,失败"+exceptionNum+"条";
                MessageDTO messageDTO = new MessageDTO();
                messageDTO.setTitle(headInfo);
                messageDTO.setFromUser("数据导入小助手-小导");
                messageDTO.setCategory("导入操作附加信息");
                messageDTO.setContent(exceptionInfo);
                messageDTO.setToUser(user.getUsername());
                sysBaseApi.sendSysAnnouncement(messageDTO);
                return Result.OK(headInfo+",可在-系统消息-查看导入详情");
             }
             return Result.OK("导入成功,已导入全部数据。");
          } catch (Exception e) {
             log.error(e.getMessage(), e);
             return Result.error("文件导入失败:" + e.getMessage());
          }
       }
       return Result.error("文件导入失败!");
    }
}