zhangherong
2025-03-07 bcd7d1c9222431f37a6579a72456b2edb8f02402
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -1,6 +1,8 @@
package org.jeecg.modules.eam.controller;
import java.time.LocalDate;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -19,6 +21,7 @@
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.modules.base.entity.Constructor;
import org.jeecg.modules.base.service.IConstructorService;
import org.jeecg.modules.base.service.IFactoryModelService;
@@ -35,7 +38,9 @@
import org.jeecg.common.system.base.controller.JeecgController;
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.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
@@ -123,7 +128,8 @@
    @Autowired
    private IMaintenanceStandardService maintenanceStandardService;
    @Autowired
    private ISysUserService sysUserService;
   /**
@@ -158,6 +164,13 @@
      }
      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());
      }
      queryWrapper.isNull("line_id");
      queryWrapper.eq("status","1");
@@ -215,7 +228,7 @@
       if(StringUtils.isNotBlank(equipment.getName())){
          queryWrapper.like("name",equipment.getName());
       }
       queryWrapper.eq("equipment_status","1");
//       queryWrapper.eq("equipment_status","1");
       queryWrapper.in("technology_status","qualified","limitedUse");
       queryWrapper.eq("status","1");
       queryWrapper.eq("del_flag",0);
@@ -239,7 +252,7 @@
       if(StringUtils.isNotBlank(equipment.getName())){
          queryWrapper.like("name",equipment.getName());
       }
       queryWrapper.eq("equipment_status","1");
//       queryWrapper.eq("equipment_status","1");
       queryWrapper.in("technology_status","qualified","limitedUse");
       queryWrapper.in("equipment_importance_id","A","B","C");
       queryWrapper.eq("status","1");
@@ -292,6 +305,54 @@
       return Result.OK(pageList);
    }
    /**
     * 设备保修  获取设备列表组件
     * qsw 2023-7-14
     */
    @GetMapping(value = "/getEquipmentTZList")
    @PermissionData
    public Result<IPage<Equipment>> getEquipmentTZList(Equipment equipment,
                                         @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                         @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                         HttpServletRequest req) {
       //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);
    }
    @GetMapping(value = "/pageEquipment")
    public Result<IPage<Equipment>> pageEquipment(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
       IPage<Equipment> pageList = equipmentService.pageEquipment(pageNo, pageSize, params);
@@ -309,6 +370,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();
@@ -388,6 +463,21 @@
         equipmentPrecisionParameters.setEquipmentId(equipment.getId());
         equipmentPrecisionParameters.setPrecisionParametersId(precisionParameter.getPrecisionParametersId());
         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);
@@ -648,13 +738,17 @@
                     EquipmentImportVo equipmentImportVo = list.get(i);
                String equipmentCategoryName = equipmentImportVo.getEquipmentCategoryName();
                String useId = equipmentImportVo.getUseId();
                String areaId = equipmentImportVo.getFactoryModelId();
                String workCenterId = equipmentImportVo.getWorkCenterId();//中心
                String areaId = equipmentImportVo.getFactoryModelId();//工区
                String productionId = equipmentImportVo.getAreaId();//工段
                String manageId = equipmentImportVo.getManageId();
                String constructorId = equipmentImportVo.getConstructorId();
                String teamId = equipmentImportVo.getTeamId();
                String propertyStatus = equipmentImportVo.getPropertyStatus();
                String abc = equipmentImportVo.getEquipmentImportanceId();
                     if(StringUtils.isBlank(equipmentImportVo.getNum())){
                Date thirdMaintenanceTime = equipmentImportVo.getThirdMaintenanceTime();
                Date technologyStatusQualificationTime = equipmentImportVo.getTechnologyStatusQualificationTime();
                if(StringUtils.isBlank(equipmentImportVo.getNum())){
                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码缺失,请填写必填项后再导入;";
                   exceptionNum++;
                   continue;
@@ -679,13 +773,18 @@
                   exceptionNum++;
                   continue;
                }
                else if(StringUtils.isBlank(equipmentImportVo.getModel())){
                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备型号缺失,请填写必填项后再导入;";
//                else if(StringUtils.isBlank(equipmentImportVo.getModel())){
//                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备型号缺失,请填写必填项后再导入;";
//                   exceptionNum++;
//                   continue;
//                }
                else if(StringUtils.isBlank(useId)){
                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:使用部门缺失,请填写必填项后再导入;";
                   exceptionNum++;
                   continue;
                }
                else if(StringUtils.isBlank(useId)){
                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:使用部门缺失,请填写必填项后再导入;";
                else if(StringUtils.isBlank(workCenterId)){
                   exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:中心缺失,请填写必填项后再导入;";
                   exceptionNum++;
                   continue;
                }
@@ -771,6 +870,18 @@
                      exceptionNum++;
                      continue;
                   }
                   //中心
                   Area workCenterArea = areaService.getOne(new QueryWrapper<Area>().eq("name",workCenterId.trim()).eq("del_flag",0));
                   if(ObjectUtils.isNotNull(workCenterArea)){
                      equipment.setWorkCenterId(workCenterArea.getId());
//                   }else if(ObjectUtils.isNotNull(area1)) {
//                      equipment.setFactoryModelId(area1.getId());
                   }else {
                      exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:不存在该中心,请维护中心数据后再导入;";
                      exceptionNum++;
                      continue;
                   }
                   //工区
                   Area area = areaService.getOne(new QueryWrapper<Area>().eq("name",areaId.trim()).eq("del_flag",0));
                   Area area1 = areaService.getOne(new QueryWrapper<Area>().eq("num",areaId.trim()).eq("del_flag",0));
                   if(ObjectUtils.isNotNull(area)){
@@ -782,6 +893,13 @@
                      exceptionNum++;
                      continue;
                   }
                   //工段
                   Area productionArea = areaService.getOne(new QueryWrapper<Area>().eq("name",productionId.trim()).eq("del_flag",0));
                   if(ObjectUtils.isNotNull(productionArea)){
                      equipment.setAreaId(productionArea.getId());
                   }
                   SysDepart manage = departService.getOne(new QueryWrapper<SysDepart>().eq("depart_name",manageId.trim()).eq("del_flag",0));
                   if(ObjectUtils.isNotNull(manage)){
                      equipment.setManageId(manage.getId());
@@ -864,12 +982,14 @@
                               .setSourceCountry(equipmentImportVo.getSourceCountry())
                               .setModel(equipmentImportVo.getModel())
                               .setSpecification(equipmentImportVo.getSpecification())
                               .setPropertyStatus(equipmentImportVo.getPropertyStatus())
                               .setPropertyStatus("normal")
                               .setWarrantyStart(equipmentImportVo.getWarrantyStart())
                               .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
                               .setIsLineEquip("no")
                               .setIsLine("no")
                               .setNextTechnologyStatusQualificationTime(equipmentImportVo.getNextTechnologyStatusQualificationTime())
                               .setThirdMaintenanceTime(equipmentImportVo.getThirdMaintenanceTime())
                               .setTechnologyStatusQualificationTime(equipmentImportVo.getTechnologyStatusQualificationTime())
                               .setGpo(equipmentImportVo.getGpo());
                         if(equipmentCategory.getEquipmentCategoryUda1().equals("weldingMachine")){
                            equipment.setCheckPeriod(365*3+"");
@@ -897,6 +1017,20 @@
                                 equipment.setCheckPeriod(365*4+"");
                              }
                           }
                         }
                         //下次三保日期处理
                         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);
                      }else {
@@ -1049,4 +1183,17 @@
       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;
    }
}