qushaowei
2025-06-10 7a90b194a7d1a213d01c323fd90ef5afbdeb4ea7
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.eam.controller;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -20,6 +21,8 @@
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.common.util.DateUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.base.entity.Constructor;
import org.jeecg.modules.base.service.IConstructorService;
import org.jeecg.modules.base.service.IFactoryModelService;
@@ -35,11 +38,18 @@
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.vo.EquipmentExportVo;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -124,7 +134,11 @@
    @Autowired
    private IMaintenanceStandardService maintenanceStandardService;
    @Autowired
    private ISysUserService sysUserService;
    @Value("${jeecg.path.upload}")
    private String upLoadPath;
   /**
@@ -159,6 +173,10 @@
      }
      if(StringUtils.isNotBlank(equipment.getEquipmentCategoryId())){
         queryWrapper.eq("equipment_category_id",equipment.getEquipmentCategoryId());
      }
      List<String> userWorkCenterIds = getUserWorkCenterIds();
      if(CollectionUtils.isNotEmpty(userWorkCenterIds)) {
         queryWrapper.in("work_center_id",userWorkCenterIds);
      }
      if(StringUtils.isNotBlank(equipment.getWorkCenterId())){
         queryWrapper.eq("work_center_id",equipment.getWorkCenterId());
@@ -292,6 +310,10 @@
                                       HttpServletRequest req) {
       QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
       Page<Equipment> page = new Page<Equipment>(pageNo, pageSize);
       List<String> userWorkCenterIds = getUserWorkCenterIds();
       if(userWorkCenterIds != null && userWorkCenterIds.size() > 0){
          equipment.setUserWorkCenterIds(userWorkCenterIds);
       }
       IPage<Equipment> pageList = equipmentService.getEquipmentList(page, equipment);
       return Result.OK(pageList);
    }
@@ -306,9 +328,41 @@
                                         @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                         @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                         HttpServletRequest req) {
       QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
       //QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
       Page<Equipment> page = new Page<Equipment>(pageNo, pageSize);
       IPage<Equipment> pageList = equipmentService.getEquipmentTZList(page, equipment);
       List<Equipment> list = pageList.getRecords();
       list.forEach(equip -> {
          String id = equip.getId();
          List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery()
                .eq(DailyInspectionStandard::getEquipmentId, id)
                .eq(DailyInspectionStandard::getVersionStatus, "2")
                .list();
          if (dailyInspectionStandards.size() > 0) {
             equip.setYseNoInspectionStandard("0");
          } else {
             equip.setYseNoInspectionStandard("1");
          }
          List<MaintenanceStandard> maintenance2Standards = maintenanceStandardService.lambdaQuery()
                .eq(MaintenanceStandard::getEquipmentId, id)
                .eq(MaintenanceStandard::getMaintenanceType, "2")
                .eq(MaintenanceStandard::getVersionStatus, "2").list();
          if (maintenance2Standards.size() > 0) {
             equip.setYseNoMaintenance2Standard("0");
          } else {
             equip.setYseNoMaintenance2Standard("1");
          }
          List<MaintenanceStandard> maintenance3Standards = maintenanceStandardService.lambdaQuery()
                .eq(MaintenanceStandard::getEquipmentId, id)
                .eq(MaintenanceStandard::getMaintenanceType, "3")
                .eq(MaintenanceStandard::getVersionStatus, "2").list();
          if (maintenance3Standards.size() > 0) {
             equip.setYseNoMaintenance3Standard("0");
          } else {
             equip.setYseNoMaintenance3Standard("1");
          }
       });
       return Result.OK(pageList);
    }
@@ -329,6 +383,20 @@
   @PostMapping(value = "/add")
   @Transactional(rollbackFor = { Exception.class })
   public Result<String> add(@RequestBody Equipment equipment) {
      //下次三保日期处理
      if(equipment.getThirdMaintenanceTime() == null && equipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
         //如果没有三保日期 按照验收日期计算下次三保日期
         int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
         LocalDate acceptanceCheckDate = LocalDate.parse(equipment.getAcceptanceCheckDate());
         LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
         Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
         equipment.setNextThirdMaintenanceTime(date);
      }else if(equipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
         //如果有三保日期 则使用三保日期计算 下次三保日期
         int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
         Date date = DateUtils.getDayAfter(equipment.getThirdMaintenanceTime(), checkPeriod);
         equipment.setNextThirdMaintenanceTime(date);
      }
      equipmentService.save(equipment);
      //获取工艺参数模板明细
      String processParametersTemplateId = equipment.getProcessParametersTemplateId();
@@ -410,6 +478,21 @@
         equipmentPrecisionParametersService.save(equipmentPrecisionParameters);
      }
      //下次三保日期处理
      if(equipment.getThirdMaintenanceTime() == null && equipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
         //如果没有三保日期 按照验收日期计算下次三保日期
         int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
         LocalDate acceptanceCheckDate = LocalDate.parse(equipment.getAcceptanceCheckDate());
         LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
         Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
         equipment.setNextThirdMaintenanceTime(date);
      }else if(equipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
         //如果有三保日期 则使用三保日期计算 下次三保日期
         int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
         Date date = DateUtils.getDayAfter(equipment.getThirdMaintenanceTime(), checkPeriod);
         equipment.setNextThirdMaintenanceTime(date);
      }
      equipmentService.updateById(equipment);
      List<SysUpload> sysUploads = equipment.getSysUploadList();
@@ -487,6 +570,43 @@
    public ModelAndView exportXls(HttpServletRequest request, Equipment equipment) {
        return super.exportXls(request, equipment, Equipment.class, "设备台账导出");
    }
    /**
     * 导出excel
     *
     * @param request
     * @param equipment
     */
    //@RequiresPermissions("org.jeecg.modules.demo:mom_eam_equipment:exportXls")
    @RequestMapping(value = "/exportXlsNew")
    public ModelAndView exportXlsNew(HttpServletRequest request, Equipment equipment) {
       // Step.1 组装查询条件
//       QueryWrapper<T> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
       LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
       // 过滤选中数据
//       String selections = request.getParameter("selections");
//       if (oConvertUtils.isNotEmpty(selections)) {
//          List<String> selectionList = Arrays.asList(selections.split(","));
//          queryWrapper.in("id",selectionList);
//       }
//       // Step.2 获取导出数据
//       List<T> exportList = service.list(queryWrapper);
       List<Map<String, Object>> mapList = equipmentService.exportXlsNew();
       // Step.3 AutoPoi 导出Excel
       ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
       //此处设置的filename无效 ,前端会重更新设置一下
       mv.addObject(NormalExcelConstants.FILE_NAME, "设备台账导出");
       mv.addObject(NormalExcelConstants.CLASS, EquipmentExportVo.class);
       //update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
       ExportParams exportParams=new ExportParams("设备台账导出" + "报表", "导出人:" + sysUser.getRealname(), "设备台账导出");
       exportParams.setImageBasePath(upLoadPath);
       //update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
       mv.addObject(NormalExcelConstants.PARAMS,exportParams);
       mv.addObject(NormalExcelConstants.DATA_LIST, mapList);
       return mv;
    }
//    /**
//      * 通过excel导入数据
@@ -904,7 +1024,7 @@
                               .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
                               .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
                               .setLocation(equipmentImportVo.getLocation())
                               .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
                               .setLeaveFactoryDate(equipmentImportVo.getLeaveFactoryDate())
                               .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
                               .setFundSource(equipmentImportVo.getFundSource())
                               .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
@@ -912,9 +1032,14 @@
                               .setSourceCountry(equipmentImportVo.getSourceCountry())
                               .setModel(equipmentImportVo.getModel())
                               .setSpecification(equipmentImportVo.getSpecification())
                               .setPropertyStatus("normal")
                               .setPropertyStatus(equipmentImportVo.getPropertyStatus())
                               .setOperatingSystem(equipmentImportVo.getOperatingSystem())
                               .setWarrantyStart(equipmentImportVo.getWarrantyStart())
                               .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
                               .setCreateBy(equipmentImportVo.getCreateBy())
                               .setCreateTime(equipmentImportVo.getCreateTime())
                               .setUpdateBy(equipmentImportVo.getUpdateBy())
                               .setUpdateTime(equipmentImportVo.getUpdateTime())
                               .setIsLineEquip("no")
                               .setIsLine("no")
                               .setNextTechnologyStatusQualificationTime(equipmentImportVo.getNextTechnologyStatusQualificationTime())
@@ -948,11 +1073,114 @@
                              }
                           }
                         }
                         equipmentService.save(equipment);
                         //下次三保日期处理
                         if(equipment.getThirdMaintenanceTime() == null && equipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
                            //如果没有三保日期 按照验收日期计算下次三保日期
                            int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
                            LocalDate acceptanceCheckDate = LocalDate.parse(equipment.getAcceptanceCheckDate());
                            LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
                            Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
                            equipment.setNextThirdMaintenanceTime(date);
                         }else if(equipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(equipment.getCheckPeriod())){
                            //如果有三保日期 则使用三保日期计算 下次三保日期
                            int checkPeriod = Integer.parseInt(equipment.getCheckPeriod()) - 1;
                            Date date = DateUtils.getDayAfter(equipment.getThirdMaintenanceTime(), checkPeriod);
                            equipment.setNextThirdMaintenanceTime(date);
                         }
                         equipmentService.saveOrUpdate(equipment);
                      }else {
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码已存在,数据重复导入;";
                         exceptionNum++;
                         continue;
//                         oriEquipment.setUseId(equipment.getUseId());
//                         oriEquipment.setWorkCenterId(equipment.getWorkCenterId());
//                         oriEquipment.setFactoryModelId(equipment.getFactoryModelId());
//                         oriEquipment.setAreaId(equipment.getAreaId());
//                         oriEquipment.setManageId(equipment.getManageId());
//                         oriEquipment.setEquipmentCategoryId(equipment.getEquipmentCategoryId());
//                         oriEquipment.setTeamId(equipment.getTeamId());
//                         oriEquipment.setConstructorId(equipment.getConstructorId());
//                         oriEquipment.setNum(equipmentImportVo.getNum())
//                               .setName(equipmentImportVo.getName())
//                               .setTechnologyStatus(equipmentImportVo.getTechnologyStatus())
//                               .setEquipmentImportanceId(equipmentImportVo.getEquipmentImportanceId())
//                               .setSpecificEquipment(equipmentImportVo.getKeyEquipmentIdentification())
//                               .setSecurityConfiguration(equipmentImportVo.getSecurityConfiguration())
//                               .setCoolingSystem(equipmentImportVo.getCoolingSystem())
//                               .setFireExtinguisher(equipmentImportVo.getFireExtinguisher())
//                               .setFireExtinguisherValidityPeriod(equipmentImportVo.getFireExtinguisherValidityPeriod())
//                               .setSystem(equipmentImportVo.getSystem())
//                               .setPort(equipmentImportVo.getPort())
//                               .setCoordinateNum(equipmentImportVo.getCoordinateNum())
//                               .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
//                               .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
//                               .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
//                               .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
//                               .setLocation(equipmentImportVo.getLocation())
//                               .setLeaveFactoryDate(equipmentImportVo.getLeaveFactoryDate())
//                               .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
//                               .setFundSource(equipmentImportVo.getFundSource())
//                               .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
//                               .setFactoryNumber(equipmentImportVo.getFactoryNumber())
//                               .setSourceCountry(equipmentImportVo.getSourceCountry())
//                               .setModel(equipmentImportVo.getModel())
//                               .setSpecification(equipmentImportVo.getSpecification())
//                               .setPropertyStatus(equipmentImportVo.getPropertyStatus())
//                               .setOperatingSystem(equipmentImportVo.getOperatingSystem())
//                               .setWarrantyStart(equipmentImportVo.getWarrantyStart())
//                               .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
//                               .setCreateBy(equipmentImportVo.getCreateBy())
//                               .setCreateTime(equipmentImportVo.getCreateTime())
//                               .setUpdateBy(equipmentImportVo.getUpdateBy())
//                               .setUpdateTime(equipmentImportVo.getUpdateTime())
//                               .setIsLineEquip("no")
//                               .setIsLine("no")
//                               .setNextTechnologyStatusQualificationTime(equipmentImportVo.getNextTechnologyStatusQualificationTime())
//                               .setThirdMaintenanceTime(equipmentImportVo.getThirdMaintenanceTime())
//                               .setTechnologyStatusQualificationTime(equipmentImportVo.getTechnologyStatusQualificationTime())
//                               .setGpo(equipmentImportVo.getGpo());
//                         if(equipmentCategory.getEquipmentCategoryUda1().equals("weldingMachine")){
//                            oriEquipment.setCheckPeriod(365*3+"");
//                         }
//                         if(equipmentCategory.getEquipmentCategoryUda1().equals("filesCarousel")){
//                            oriEquipment.setCheckPeriod(365*4+"");
//                         }
//                         if(equipmentCategory.getEquipmentCategoryUda1().equals("tester")){
//                            oriEquipment.setCheckPeriod(365*1+"");
//                         }
//                         if(
//                               !equipmentCategory.getEquipmentCategoryUda1().equals("weldingMachine")
//                                     &&!equipmentCategory.getEquipmentCategoryUda1().equals("filesCarousel")
//                                     &&!equipmentCategory.getEquipmentCategoryUda1().equals("tester")
//                         ){
//                            if(StringUtils.isNotBlank(abc)){
//                               if(abc.equals("A")){
//                                  oriEquipment.setCheckPeriod(365*3+"");
//                               }
//                               if(
//                                     abc.equals("B")
//                                           ||abc.equals("C")
//                                           ||abc.equals("D")
//                               ){
//                                  oriEquipment.setCheckPeriod(365*4+"");
//                               }
//                            }
//                         }
//                         //下次三保日期处理
//                         if(oriEquipment.getThirdMaintenanceTime() == null && oriEquipment.getAcceptanceCheckDate() != null && StringUtils.isNotBlank(oriEquipment.getCheckPeriod())){
//                            //如果没有三保日期 按照验收日期计算下次三保日期
//                            int checkPeriod = Integer.parseInt(oriEquipment.getCheckPeriod()) - 1;
//                            LocalDate acceptanceCheckDate = LocalDate.parse(oriEquipment.getAcceptanceCheckDate());
//                            LocalDate localDate = acceptanceCheckDate.plusDays(checkPeriod);
//                            Date date = DateUtils.str2Date(localDate.toString(), DateUtils.date_sdf.get());
//                            oriEquipment.setNextThirdMaintenanceTime(date);
//                         }else if(oriEquipment.getThirdMaintenanceTime() != null && StringUtils.isNotBlank(oriEquipment.getCheckPeriod())){
//                            //如果有三保日期 则使用三保日期计算 下次三保日期
//                            int checkPeriod = Integer.parseInt(oriEquipment.getCheckPeriod()) - 1;
//                            Date date = DateUtils.getDayAfter(oriEquipment.getThirdMaintenanceTime(), checkPeriod);
//                            oriEquipment.setNextThirdMaintenanceTime(date);
//                         }
//                         equipmentService.updateById(oriEquipment);
                      }
                   }
                }
@@ -962,7 +1190,7 @@
                MessageDTO messageDTO = new MessageDTO();
                messageDTO.setTitle(headInfo);
                messageDTO.setFromUser("数据导入小助手-小导");
                messageDTO.setCategory("导入操作附加信息");
                messageDTO.setCategory("导入信息");
                messageDTO.setContent(exceptionInfo);
                messageDTO.setToUser(user.getUsername());
                sysBaseApi.sendSysAnnouncement(messageDTO);
@@ -1087,16 +1315,43 @@
                                         @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                         @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                         HttpServletRequest req) {
       QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
//       QueryWrapper<Equipment> queryWrapper = QueryGenerator.initQueryWrapper(equipment, req.getParameterMap());
       QueryWrapper<Equipment> queryWrapper = new QueryWrapper<>();
       String num = equipment.getNum();
       if(StringUtils.isNotBlank(num)){
          queryWrapper.like("num",num);
       }
       String name = equipment.getName();
       if(StringUtils.isNotBlank(name)){
          queryWrapper.like("name",name);
       }
       String workCenterId = equipment.getWorkCenterId();
       if(StringUtils.isNotBlank(workCenterId)){
          queryWrapper.eq("work_center_id",workCenterId);
       }
       //根据下次三保时间排序
       queryWrapper.orderByAsc("next_third_maintenance_time");
       //如果startTime和endTime不为空,则查询下次三保时间在这个时间段内的设备
       if(equipment.getStartTime()!=null && equipment.getEndTime()!=null){
          queryWrapper.between("next_third_maintenance_time",equipment.getStartTime(),equipment.getEndTime());
       }
       queryWrapper.orderByAsc("next_third_maintenance_time");
       Page<Equipment> page = new Page<Equipment>(pageNo, pageSize);
       IPage<Equipment> pageList = equipmentService.page(page, queryWrapper);
       return Result.OK(pageList);
    }
    private List<String> getUserWorkCenterIds(){
       LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
       SysUser sysUser = sysUserService.getById(user.getId());
       String areaId = sysUser.getAreaId();
       List<String>  workCenterIds = null;
       if(StringUtils.isNotBlank(areaId)){
//            strings = new ArrayList<>();
          String[] split = areaId.split(",");
          workCenterIds = Arrays.asList(split);
       }
       return workCenterIds;
    }
}