“linengliang”
2023-10-29 db1d7484b7114f9f91decef684280866dac34dfe
消息加台账导入
已添加1个文件
已修改10个文件
394 ■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 175 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -18,6 +18,9 @@
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.base.entity.Constructor;
import org.jeecg.modules.base.service.IConstructorService;
import org.jeecg.modules.base.service.IFactoryModelService;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.model.DepartVo;
import org.jeecg.modules.eam.service.*;
@@ -29,6 +32,8 @@
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.service.ISysDepartService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
@@ -74,8 +79,6 @@
     @Autowired
     private IProcessParametersTemplateService processParametersTemplateService;
     @Autowired
     private ISysBaseAPI sysBaseApi;
@@ -99,6 +102,22 @@
     @Autowired
     private IEquipmentCategoryService equipmentCategoryService;
     @Autowired
     private ISysDepartService departService;
     @Autowired
     private ITeamService teamService;
     @Autowired
     private IConstructorService constructorService;
     @Autowired
     private IAreaService areaService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
@@ -543,65 +562,83 @@
             try {
                 List<EquipmentImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), EquipmentImportVo.class, params);
                 for(int i = 0;i<list.size();i++){
                     Equipment equipment = new Equipment();
                     EquipmentImportVo equipmentImportVo = list.get(i);
                     EquipmentCategory equipmentCategory = equipmentCategoryService.getOne(new QueryWrapper<EquipmentCategory>().eq("name",equipmentImportVo.getEquipmentCategoryName()),false);
                     String equipmentCategoryName = equipmentImportVo.getEquipmentCategoryName();
                     String useId = equipmentImportVo.getUseId();
                     String areaId = equipmentImportVo.getFactoryModelId();
                     String manageId = equipmentImportVo.getManageId();
                     String constructorId = equipmentImportVo.getConstructorId();
                     String teamId = equipmentImportVo.getTeamId();
                     if(StringUtils.isBlank(equipmentImportVo.getNum())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getName())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备名称缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getUseId())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:使用部门缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
//                     else if(StringUtils.isBlank(equipmentImportVo.getEquipmentUda1())){
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:工区缺失,请填写必填项后再导入;";
//                         exceptionNum++;
//                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getManageId())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:维护部门缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getTeamId())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:维修班组缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getEquipmentImportanceId())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:ABC标识缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getEquipmentCategoryName())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备分类缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getEquipmentStatus())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备状态缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getTechnologyStatus())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备技术缺失,请填写必填项后再导入;";
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备技术状态缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getFactoryModelId())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:车间缺失,请填写必填项后再导入;";
                     else if(StringUtils.isBlank(equipmentImportVo.getModel())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备型号缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getWorkCenterId())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:产线缺失,请填写必填项后再导入;";
                     else if(StringUtils.isBlank(useId)){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:使用部门缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(ObjectUtils.isNotNull(equipmentImportVo.getWarrantyStart())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:质保开始日期缺失,请填写必填项后再导入;";
                     else if(StringUtils.isBlank(areaId)){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:工区缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getPropertyStatus())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:资产状态缺失,请填写必填项后再导入;";
                     else if(StringUtils.isBlank(manageId)){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:维护部门缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(equipmentCategoryName)){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备分类缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     else if(StringUtils.isBlank(teamId)){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:维修班组缺失,请填写必填项后再导入;";
                         exceptionNum++;
                         continue;
                     }
                     //非必填项
                     // else if(ObjectUtils.isNotNull(equipmentImportVo.getWarrantyStart())){
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:质保开始日期缺失,请填写必填项后再导入;";
//                         exceptionNum++;
//                     }
//                     else if(StringUtils.isBlank(equipmentImportVo.getPropertyStatus())){
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:资产状态缺失,请填写必填项后再导入;";
//                         exceptionNum++;
//                     }
//                     else if(StringUtils.isBlank(equipmentImportVo.getEquipmentUda5())){
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:功能位置缺失,请填写必填项后再导入;";
//                         exceptionNum++;
@@ -638,24 +675,68 @@
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:资产制造商缺失,请填写必填项后再导入;";
//                         exceptionNum++;
//                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getModel())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备型号缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getSpecification())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备规格缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
//                   else if(StringUtils.isBlank(equipmentImportVo.getSpecification())){
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备规格缺失,请填写必填项后再导入;";
//                         exceptionNum++;
//                     }
//                     else if(StringUtils.isBlank(equipmentImportVo.getGpo())){
//                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:设备功率缺失,请填写必填项后再导入;";
//                         exceptionNum++;
//                     }
                     else if(ObjectUtils.isNull(equipmentCategory))
                           {
                              exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:该设备所属类别不存在,请先维护设备类别;";
                     else{
                         SysDepart use = departService.getOne(new QueryWrapper<SysDepart>().eq("depart_name",useId.trim()),false);
                         if(ObjectUtils.isNull(useId)){
                             equipment.setUseId(use.getId());
                         }else {
                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:不存在该使用部门,请维护部门数据后再导入;";
                              exceptionNum++;
                             continue;
                         }
                         Area area = areaService.getOne(new QueryWrapper<Area>().eq("name",areaId.trim()));
                         if(ObjectUtils.isNotNull(area)){
                             equipment.setFactoryModelId(area.getId());
                         }else {
                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:不存在该工区,请维护工区数据后再导入;";
                             exceptionNum++;
                             continue;
                         }
                         SysDepart manage = departService.getOne(new QueryWrapper<SysDepart>().eq("depart_name",manageId.trim()));
                         if(ObjectUtils.isNotNull(manage)){
                             equipment.setManageId(manage.getId());
                         }else{
                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:不存在该维护部门,请先维护部门数据后再导入;";
                             exceptionNum++;
                             continue;
                         }
                         EquipmentCategory equipmentCategory = equipmentCategoryService.getOne(new QueryWrapper<EquipmentCategory>().eq("name",equipmentCategoryName.trim()),false);
                         if(ObjectUtils.isNotNull(equipmentCategory)){
                             equipment.setEquipmentCategoryId(equipmentCategory.getId());
                           }
                     else{
                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:不存在该设备分类,请先维护设备分类数据后再导入;";
                             exceptionNum++;
                             continue;
                         }
                         Team team = teamService.getOne(new QueryWrapper<Team>().eq("name",teamId.trim()),false);
                         if(ObjectUtils.isNotNull(team)){
                             equipment.setTeamId(team.getId());
                         }else {
                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:不存在该班组,请先维护班组数据后再导入;";
                             exceptionNum++;
                             continue;
                         }
                         if(StringUtils.isNotBlank(constructorId)){
                             Constructor constructor = constructorService.getByName(constructorId.trim());
                             if(ObjectUtils.isNotNull(constructor)){
                                 equipment.setConstructorId(constructor.getId());
                             }else {
                                 constructor = new Constructor();
                                 constructor.setName(constructorId);
                                 constructor.setDelFlag(0);
                                 constructorService.save(constructor);
                                 equipment.setConstructorId(constructor.getId());
                             }
                         }
                         if(equipmentImportVo.getPropertyStatus().equals("warranty")){
                             if(
                                     ObjectUtils.isNull(equipmentImportVo.getWarrantyStart())
@@ -666,24 +747,19 @@
                             }
                         }else{
                             Equipment oriEquipment = equipmentService.getOne(new QueryWrapper<Equipment>().eq("num",equipmentImportVo.getNum()),false);
                             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())
                                         .setTechnologyStatus(equipmentImportVo.getTechnologyStatus())
                                         .setEquipmentImportanceId(equipmentImportVo.getEquipmentImportanceId())
                                         .setEquipmentCategoryId(equipmentCategory.getId())
                                         .setSpecificEquipment(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())
@@ -697,12 +773,9 @@
                                         .setFundSource(equipmentImportVo.getFundSource())
                                         .setAcceptanceCheckDate(equipmentImportVo.getAcceptanceCheckDate())
                                         .setFactoryNumber(equipmentImportVo.getFactoryNumber())
                                         .setConstructorId(equipmentImportVo.getConstructorId())
                                         .setSourceCountry(equipmentImportVo.getSourceCountry())
                                         .setModel(equipmentImportVo.getModel())
                                         .setSpecification(equipmentImportVo.getSpecification())
                                         .setFactoryModelId(equipmentImportVo.getFactoryModelId())
                                         .setWorkCenterId(equipmentImportVo.getWorkCenterId())
                                         .setPropertyStatus(equipmentImportVo.getPropertyStatus())
                                         .setWarrantyStart(equipmentImportVo.getWarrantyStart())
                                         .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
@@ -737,9 +810,9 @@
                             }else {
                                 exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码已存在,数据重复导入;";
                                 exceptionNum++;
                                 continue;
                             }
                         }
                     }
                 }
                 if(exceptionNum!=0){
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java
@@ -202,6 +202,7 @@
    private String precisionParametersTemplateId;
    @ApiModelProperty(value = "技术状态鉴定类型(字典technology_status_verification_type)")
    @Dict(dicCode = "technology_status_verification_type")
    private String technologyStatusVerificationType;
    @ApiModelProperty(value = "技术状态鉴定单据")
@@ -305,8 +306,8 @@
    private List<EquipmentProcessParameters> processEditTableList;
    @TableField(exist = false)
    private List<EquipmentPrecisionParameters> precisionEditTableList;
    @Dict(dicCode = "id",dictTable = "mom_base_factory_model",dicText = "name")
    @Excel(width = 15,dicCode = "id",dictTable = "mom_base_factory_model",dicText = "name",orderNum = "39", name = "车间")
    @Dict(dicCode = "id",dictTable = "mom_base_area",dicText = "name")
    @Excel(width = 15,dicCode = "id",dictTable = "mom_base_area",dicText = "name",orderNum = "39", name = "工区")
    private String factoryModelId;
    @Excel(width = 15,dicCode = "id",dictTable = "mom_base_work_center",dicText = "name",name = "产线",orderNum = "40")
    @Dict(dicCode = "id",dictTable = "mom_base_work_center",dicText = "name")
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
@@ -14,37 +14,49 @@
@Data
@Accessors(chain = true)
public class EquipmentImportVo {
    @Excel(name = "设备所属分类")
    private String equipmentCategoryName;
    @Excel(name="统一编码")
    private String num;
    @Excel(name = "设备名称")
    private String name;
    @Excel(name = "使用部门",dictTable = "sys_depart",dicCode = "id",dicText = "depart_name")
    @Excel(name = "型号")
    private String model;
//    @Excel(name = "使用部门",dictTable = "sys_depart",dicCode = "id",dicText = "depart_name")
    private String useId;
    @Excel(name = "工区")
    private String equipmentUda1;
//    @Excel(name = "工区",dicCode = "id",dictTable = "mom_base_area",dicText = "name")
    private String factoryModelId;
    @Excel(name = "维护部门",dictTable = "sys_depart",dicCode = "id",dicText = "depart_name")
//    @Excel(name = "维护部门",dictTable = "sys_depart",dicCode = "id",dicText = "depart_name")
    private String manageId;
    @Excel(name = "维修班组",dictTable = "mom_base_team",dicCode = "id",dicText = "name")
//    @Excel(name = "维修班组",dictTable = "mom_base_team",dicCode = "id"2,dicText = "name")
    private String teamId;
    @Excel(name = "ABC标识",dicCode = "id",dictTable="mom_eam_equipment_importance",dicText="name")
//    @Excel(name = "资产制造商",dicCode = "id",dictTable="mom_base_constructor",dicText="name")
    private String constructorId;
    @Excel(name = "ABC标识",dicCode = "ABC-standard-result")
    private String equipmentImportanceId;
    @Excel(name = "设备所属分类")
    private String equipmentCategoryName;
    @Excel(name = "设备状态",dicCode = "equipment_status")
    private String equipmentStatus;
    @Excel(name = "关键设备标识")
    @Excel(name = "技术状态",dicCode = "technology_status")
    private String technologyStatus;
    @Excel(name = "关键设备标识",dicCode = "specific_equipment")
    private String keyEquipmentIdentification;
    @Excel(name = "安全配置")
    private String securityConfiguration;
    @Excel(name = "资产状态",dicCode = "property_status")
    private String     propertyStatus;
    @Excel(name = "冷却系统")
    @Excel(name = "冷却系统",dicCode = "cooling_system")
    private String coolingSystem;
    @Excel(name = "灭火器")
@@ -52,9 +64,6 @@
    @Excel(name = "灭火器有效期")
    private String fireExtinguisherValidityPeriod;
    @Excel(name = "操作系统")
    private String operatingSystem;
    @Excel(name = "系统")
    private String system;
@@ -64,9 +73,6 @@
    @Excel(name = "坐标数量")
    private BigDecimal coordinateNum;
    @Excel(name = "设备状态",dicCode = "equipment_status")
    private String equipmentStatus;
    @Excel(name = "重量")
    private String equipmentUda3;
@@ -95,14 +101,11 @@
    @Excel(name = "出厂编号")
    private String factoryNumber;
    @Excel(name = "资产制造商",dicCode = "id",dictTable="mom_base_constructor",dicText="name")
    private String constructorId;
    @Excel(name = "资产的来源国家")
    private String sourceCountry;
    @Excel(name = "型号")
    private String model;
    @Excel(name = "安全配置")
    private String securityConfiguration;
    @Excel(name = "规格")
    private String specification;
@@ -110,31 +113,14 @@
    @Excel(name = "总功率")
    private String gpo;
    @Excel(name = "技术状态",dicCode = "technology_status")
    private String technologyStatus;
    @Excel(dicCode = "id",dictTable = "mom_base_factory_model",dicText = "name", name = "车间")
    private String factoryModelId;
    @Excel(dicCode = "id",dictTable = "mom_base_work_center",dicText = "name",name = "产线")
    private String workCenterId;
    @Excel(name = "质保开始日期",format = "yyyyMMdd")
    private Date warrantyStart;
    @Excel(name = "质保结束日期",format = "yyyyMMdd")
    private Date warrantyEnd;
    @Excel(dicCode = "property_status",name = "资产状态")
    private String     propertyStatus;
    @Excel(name = "下次技术状态鉴定时间", width = 20, format = "yyyyMMdd")
    private Date  nextTechnologyStatusQualificationTime;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenaceAlart.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package org.jeecg.modules.eam.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.hibernate.annotations.Source;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.entity.EquipmentReportRepair;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.service.*;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
public class ThirdMaintenaceAlart implements Job {
    @Resource
    private IEamEquipmentService equipmentService;
    @Resource
    private ISysBaseAPI sysBaseApi;
    @Resource
    private ISysRoleService sysRoleService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private ISysDictItemService sysDictItemService;
    @Resource
    private ISysUserRoleService sysUserRoleService;
    @Resource
    private ISysUserService sysUserService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        LocalDateTime currentDateTime = LocalDateTime.now();
        LocalDateTime dateBefore2Months = currentDateTime.plusMonths(2);
        Date result = Date.from(dateBefore2Months.atZone(ZoneId.systemDefault()).toInstant());
        List<Equipment> needAlerts = equipmentService.list(new QueryWrapper<Equipment>().lt("next_third_maintenance_time",result).eq("property_status","normal").eq("del_flag",0));
        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
        SysDictItem sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("item_text","三保消息").eq("dict_id",sysDict.getId()),false);
        String roleCode = sysDictItem.getItemValue();
        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
        for(SysUserRole sysUserRole:sysUserRoles){
            SysUser sysUser = sysUserService.getById(sysUserRole.getUserId());
            String title = "设备下次三保到期提醒!";
            String msg = "统一编码为:";
            for(Equipment equipment:needAlerts){
                msg = msg+"【"+equipment.getNum()+"】";
            }
            msg = msg+"的设备离下次三保的日期不足两个月,请及时处理";
            MessageDTO messageDTO = new MessageDTO();
            messageDTO.setTitle(title);
            messageDTO.setContent(msg);
            messageDTO.setCategory("三保消息");
            messageDTO.setFromUser("admin");
            messageDTO.setToUser(sysUser.getUsername());
            if(needAlerts.size()!=0){
                sysBaseApi.sendSysAnnouncement(messageDTO);
            }
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -247,7 +247,8 @@
        t1.property_status propertyStatus,
        t1.check_period checkPeriod,
        t1.next_technology_status_qualification_time nextTechnologyStatusQualificationTime,
        t1.technology_status_qualification_time technologyStatusQualificationTime
        t1.technology_status_qualification_time technologyStatusQualificationTime,
        t1.technology_status_verification_type technologyStatusVerificationType
    from mom_eam_equipment t1
    left join (select * from mom_eam_equipment_category where del_flag = 0) t2 on t1.equipment_category_id = t2.id
    where t1.del_flag  = 0
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java
@@ -2,7 +2,10 @@
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.shiro.SecurityUtils;
@@ -14,9 +17,9 @@
import org.jeecg.common.util.SqlInjectionUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.message.websocket.WebSocket;
import org.jeecg.modules.system.entity.SysAnnouncementSend;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.model.AnnouncementSendModel;
import org.jeecg.modules.system.service.ISysAnnouncementSendService;
import org.jeecg.modules.system.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
@@ -51,7 +54,16 @@
    private ISysAnnouncementSendService sysAnnouncementSendService;
    @Autowired
    private WebSocket webSocket;
     @Autowired
     private ISysRoleService sysRoleService;
     @Autowired
     private ISysDictService sysDictService;
     @Autowired
     private ISysDictItemService sysDictItemService;
     @Autowired
     private ISysUserRoleService sysUserRoleService;
     @Autowired
     private ISysUserService sysUserService;
    /**
      * åˆ†é¡µåˆ—表查询
     * @param sysAnnouncementSend
@@ -265,4 +277,20 @@
         AnnouncementSendModel model = sysAnnouncementSendService.getOne(sendId);
         return Result.ok(model);
     }
     @GetMapping("getPrimaryInfo")
     public Result<?> getPrimaryInfo(@RequestParam(name="userId",required=true) String userId){
         SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
         List<SysDictItem> sysDictItemList = sysDictItemService.list(new QueryWrapper<SysDictItem>().eq("dict_id",sysDict.getId()));
//         List<String> rollCodeList = sysDictItemList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList());
//         List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("user_id",userId));
//         List<String> roleIds = sysUserRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
//         List<SysRole> sysRoles = sysRoleService.list(new QueryWrapper<SysRole>().in("role_code",rollCodeList).in("id",roleIds));
         List<String> msgCategoryList = sysDictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
          List<SysAnnouncementSend> list = sysAnnouncementSendService.getPrimaryInfo(userId,msgCategoryList);
         for(SysAnnouncementSend sysAnnouncementSend:list){
             sysAnnouncementSend.setReadFlag("1");
             sysAnnouncementSendService.updateById(sysAnnouncementSend);
        }
        return Result.OK(list);
     }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysAnnouncementSend.java
@@ -3,6 +3,7 @@
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -50,4 +51,9 @@
     * æ˜¯å¦æ ‡æ˜Ÿ å½“值为1是标星消息
     */
    private String starFlag;
    @TableField(exist = false)
    private String msgCategory;
    @TableField(exist = false)
    private String msgContent;
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysAnnouncementSendMapper.java
@@ -44,4 +44,8 @@
     * ä¿®æ”¹ä¸ºå·²è¯»æ¶ˆæ¯
     */
    void updateReaded(@Param("userId") String userId, @Param("annoceIdList") List<String> annoceIdList);
    /**
     * èŽ·å–é¦–é¡µæ¶ˆæ¯
     */
    List<SysAnnouncementSend> getPrimaryInfo(@Param("userId") String userId,@Param("msgCategoryList")List<String> msgCategoryList);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml
@@ -102,6 +102,27 @@
            #{id}
        </foreach>
    </update>
    <select id="getPrimaryInfo" resultType="org.jeecg.modules.system.entity.SysAnnouncementSend">
        select
        t1.id id,
        t1.annt_id anntId,
        t1.user_id userId,
        t1.read_flag readFlag,
        t2.msg_content msgContent,
        t2.msg_category msgCategory
        from
        sys_announcement_send t1
        left join sys_announcement t2
        on t1.annt_id = t2.id
        where  t1.read_flag = '0'
        and t1.user_id = #{userId}
            <if test="msgCategoryList.size != 0">
                and t2.msg_category in (
                <foreach item="msgCategory" collection="msgCategoryList" separator=",">
                    #{msgCategory}
                </foreach>
                    )
            </if>
    </select>
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysAnnouncementSendService.java
@@ -2,6 +2,7 @@
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.system.entity.SysAnnouncementSend;
import org.jeecg.modules.system.model.AnnouncementSendModel;
@@ -37,5 +38,7 @@
     */
    AnnouncementSendModel getOne(String sendId);
    
    List<SysAnnouncementSend> getPrimaryInfo(String userId,List<String> msgCategoryList);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysAnnouncementSendServiceImpl.java
@@ -39,6 +39,11 @@
    @Override
    public AnnouncementSendModel getOne(String sendId) {
        return sysAnnouncementSendMapper.getOne(sendId);
    }
    @Override
    public List<SysAnnouncementSend> getPrimaryInfo(String userId, List<String> msgCategoryList) {
        return baseMapper.getPrimaryInfo(userId,msgCategoryList);
    }
}