设备台账
1.ABC标识变更记录功能
2.质保日期变更记录功能
3.质保到期提醒
4.ABC标识与关键设备标识联动
5.设备质保期字段添加
已添加8个文件
已修改3个文件
597 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentUpdateInfoController.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentUpdateInfo.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentUpdateInfoMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentUpdateInfoMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentUpdateInfoService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentUpdateInfoServiceImpl.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentUpdateVo.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -589,12 +589,8 @@
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:质保开始日期缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
                     else if(ObjectUtils.isNotNull(equipmentImportVo.getWarrantyEnd())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:质保结束日期缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
                     else if(StringUtils.isBlank(equipmentImportVo.getKeyEquipmentIdentification())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:关键设备标识缺失,请填写必填项后再导入;";
                     else if(StringUtils.isBlank(equipmentImportVo.getPropertyStatus())){
                         exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:资产状态缺失,请填写必填项后再导入;";
                         exceptionNum++;
                     }
                     //非必填项
@@ -651,52 +647,65 @@
                              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())
                                     .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())
                                     .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
                                     .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
                                     .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
                                     .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
                                     .setLocation(equipmentImportVo.getLocation())
                                     .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
                                     .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
                                     .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())
                                     .setWarrantyStart(equipmentImportVo.getWarrantyStart())
                                     .setWarrantyEnd(equipmentImportVo.getWarrantyEnd())
                                     .setGpo(equipmentImportVo.getGpo());
                             equipmentService.save(equipment);
                         }else {
                             exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码已存在,数据重复导入;";
                             exceptionNum++;
                     else{
                         if(equipmentImportVo.getPropertyStatus().equals("warranty")){
                             if(
                                     ObjectUtils.isNull(equipmentImportVo.getWarrantyStart())
                                     ||ObjectUtils.isNull(equipmentImportVo.getWarrantyEnd())
                             ){
                                 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())
                                         .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())
                                         .setEquipmentStatus(equipmentImportVo.getEquipmentStatus())
                                         .setEquipmentUda3(equipmentImportVo.getEquipmentUda3())
                                         .setEquipmentUda4(equipmentImportVo.getEquipmentUda4())
                                         .setEquipmentUda5(equipmentImportVo.getEquipmentUda5())
                                         .setLocation(equipmentImportVo.getLocation())
                                         .setLastVerificationDate(equipmentImportVo.getLeaveFactoryDate())
                                         .setProjectApprovalNo(equipmentImportVo.getProjectApprovalNo())
                                         .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())
                                         .setGpo(equipmentImportVo.getGpo());
                                 equipmentService.save(equipment);
                             }else {
                                 exceptionInfo = exceptionInfo+"第"+(i+2)+"行导入失败,原因:统一编码已存在,数据重复导入;";
                                 exceptionNum++;
                             }
                         }
                     }
                 }
                 if(exceptionNum!=0){
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EquipmentUpdateInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,188 @@
package org.jeecg.modules.eam.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEquipmentUpdateInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.vo.EquipmentUpdateVo;
import org.jeecg.modules.system.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: è®¾å¤‡ä¿¡æ¯å˜æ›´è®°å½•
 * @Author: jeecg-boot
 * @Date:   2023-09-07
 * @Version: V1.0
 */
@Api(tags="设备信息变更记录")
@RestController
@RequestMapping("/eam/equipmentUpdateInfo")
@Slf4j
public class EquipmentUpdateInfoController extends JeecgController<EquipmentUpdateInfo, IEquipmentUpdateInfoService> {
    @Autowired
    private IEquipmentUpdateInfoService equipmentUpdateInfoService;
    @Autowired
    private IEamEquipmentService equipmentService;
    /**
     * åˆ†é¡µåˆ—表查询
     *
     * @param equipmentUpdateInfo
     * @param pageNo
     * @param pageSize
     * @param req
     * @return
     */
    //@AutoLog(value = "设备信息变更记录-分页列表查询")
    @ApiOperation(value="设备信息变更记录-分页列表查询", notes="设备信息变更记录-分页列表查询")
    @GetMapping(value = "/list")
    public Result<IPage<EquipmentUpdateInfo>> queryPageList(EquipmentUpdateInfo equipmentUpdateInfo,
                                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EquipmentUpdateInfo> queryWrapper = QueryGenerator.initQueryWrapper(equipmentUpdateInfo, req.getParameterMap());
        queryWrapper.orderByDesc("update_date");
        Page<EquipmentUpdateInfo> page = new Page<EquipmentUpdateInfo>(pageNo, pageSize);
        IPage<EquipmentUpdateInfo> pageList = equipmentUpdateInfoService.page(page, queryWrapper);
        return Result.OK(pageList);
    }
    /**
     *   æ·»åŠ 
     *
     * @param equipmentUpdateInfo
     * @return
     */
    @AutoLog(value = "设备信息变更记录-添加")
    @ApiOperation(value="设备信息变更记录-添加", notes="设备信息变更记录-添加")
    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:add")
    @PostMapping(value = "/add")
    public Result<String> add(@RequestBody EquipmentUpdateInfo equipmentUpdateInfo) {
        equipmentUpdateInfoService.save(equipmentUpdateInfo);
        return Result.OK("添加成功!");
    }
    /**
     *  ç¼–辑
     *
     * @param equipmentUpdateInfo
     * @return
     */
    @AutoLog(value = "设备信息变更记录-编辑")
    @ApiOperation(value="设备信息变更记录-编辑", notes="设备信息变更记录-编辑")
    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:edit")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public Result<String> edit(@RequestBody EquipmentUpdateInfo equipmentUpdateInfo) {
        equipmentUpdateInfoService.updateById(equipmentUpdateInfo);
        return Result.OK("编辑成功!");
    }
    /**
     *   é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "设备信息变更记录-通过id删除")
    @ApiOperation(value="设备信息变更记录-通过id删除", notes="设备信息变更记录-通过id删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:delete")
    @DeleteMapping(value = "/delete")
    public Result<String> delete(@RequestParam(name="id",required=true) String id) {
        equipmentUpdateInfoService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     *  æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "设备信息变更记录-批量删除")
    @ApiOperation(value="设备信息变更记录-批量删除", notes="设备信息变更记录-批量删除")
    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:deleteBatch")
    @DeleteMapping(value = "/deleteBatch")
    public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        this.equipmentUpdateInfoService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    //@AutoLog(value = "设备信息变更记录-通过id查询")
    @ApiOperation(value="设备信息变更记录-通过id查询", notes="设备信息变更记录-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<EquipmentUpdateInfo> queryById(@RequestParam(name="id",required=true) String id) {
        EquipmentUpdateInfo equipmentUpdateInfo = equipmentUpdateInfoService.getById(id);
        if(equipmentUpdateInfo==null) {
            return Result.error("未找到对应数据");
        }
        return Result.OK(equipmentUpdateInfo);
    }
    /**
    * å¯¼å‡ºexcel
    *
    * @param request
    * @param equipmentUpdateInfo
    */
    //@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_equipment_update_info:exportXls")
    @RequestMapping(value = "/exportXls")
    public ModelAndView exportXls(HttpServletRequest request, EquipmentUpdateInfo equipmentUpdateInfo) {
        return super.exportXls(request, equipmentUpdateInfo, EquipmentUpdateInfo.class, "设备信息变更记录");
    }
    /**
      * é€šè¿‡excel导入数据
    *
    * @param request
    * @param response
    * @return
    */
    //@RequiresPermissions("mom_eam_equipment_update_info:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, EquipmentUpdateInfo.class);
    }
    @PostMapping("updateABC")
    public Result<?> updateABC(@RequestBody EquipmentUpdateVo equipmentUpdateVo){
        equipmentUpdateInfoService.updateABC(equipmentUpdateVo);
        return Result.OK("操作成功");
    }
     @PostMapping("updateWarranty")
     public Result<?> updateWarranty(@RequestBody EquipmentUpdateVo equipmentUpdateVo){
         equipmentUpdateInfoService.updateWarranty(equipmentUpdateVo);
         return Result.OK("操作成功");
     }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/Equipment.java
@@ -311,6 +311,17 @@
    @Excel(name = "质保结束日期", width = 15,orderNum = "38",format = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date warrantyEnd;
    @Dict(dicCode = "property_status")
    @Excel(width = 15,orderNum = "41",dicCode = "property_status",name = "资产状态")
    private String     propertyStatus;
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date newStart;
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @TableField(exist = false)
    private Date newEnd;
    @TableField(exist = false)
    private String newABCTag;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentImportVo.java
@@ -125,6 +125,9 @@
    @Excel(name = "质保结束日期",format = "yyyyMMdd")
    private Date warrantyEnd;
    @Excel(dicCode = "property_status",name = "资产状态")
    private String     propertyStatus;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EquipmentUpdateInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * @Description: è®¾å¤‡ä¿¡æ¯å˜æ›´è®°å½•
 * @Author: jeecg-boot
 * @Date:   2023-09-07
 * @Version: V1.0
 */
@Data
@TableName("mom_eam_equipment_update_info")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="mom_eam_equipment_update_info对象", description="设备信息变更记录")
public class EquipmentUpdateInfo implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键ID*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键ID")
    private java.lang.String id;
    /**维护类型(数据字典:equipment_update_type)*/
    @Excel(name = "维护类型(数据字典:equipment_update_type)", width = 15)
    @ApiModelProperty(value = "维护类型(数据字典:equipment_update_type)")
    @Dict(dicCode = "equipment_update_type")
    private java.lang.String updateType;
    /**变更人*/
    @Excel(name = "变更人", width = 15)
    @ApiModelProperty(value = "变更人")
    @Dict(dicCode = "id",dictTable = "sys_user",dicText = "realname")
    private java.lang.String updatePerson;
    /**变更日期*/
    @Excel(name = "变更日期", width = 15, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "变更日期")
    private java.util.Date updateDate;
    /**设备ID*/
    @Excel(name = "设备ID", width = 15)
    @ApiModelProperty(value = "设备ID")
    private java.lang.String equipmentId;
    /**旧abc标识*/
    @Excel(name = "旧abc标识", width = 15)
    @ApiModelProperty(value = "旧abc标识")
    @Dict(dicCode = "ABC-standard-result")
    private java.lang.String oldAbcTag;
    /**新abc标识*/
    @Excel(name = "新abc标识", width = 15)
    @ApiModelProperty(value = "新abc标识")
    @Dict(dicCode = "ABC-standard-result")
    private java.lang.String newAbcTag;
    /**旧质保开始日期*/
    @Excel(name = "旧质保开始日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "旧质保开始日期")
    private java.util.Date oldStart;
    /**新质保开始日期*/
    @Excel(name = "新质保开始日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "新质保开始日期")
    private java.util.Date newStart;
    /**旧质保结束日期*/
    @Excel(name = "旧质保结束日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "旧质保结束日期")
    private java.util.Date oldEnd;
    /**新质保结束日期*/
    @Excel(name = "新质保结束日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "新质保结束日期")
    private java.util.Date newEnd;
    @ApiModelProperty(value = "备注")
    private String remark;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/EquipmentWarrantyEndDateAlertJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package org.jeecg.modules.eam.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEquipmentUpdateInfoService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
 * @author lnl
 */
public class EquipmentWarrantyEndDateAlertJob implements Job {
    @Autowired
    private IEamEquipmentService equipmentService;
    @Autowired
    private ISysBaseAPI sysBaseApi;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        Calendar currentDate = Calendar.getInstance();
        currentDate.add(Calendar.DATE, 30);
        Date finalDay = currentDate.getTime();
        QueryWrapper<Equipment> queryWrapper = new QueryWrapper<Equipment>()
                .lt("warranty_end",finalDay).gt("warranty_end",new Date()).eq("del_flag",0);
        List<Equipment> equipmentList = equipmentService.list(queryWrapper);
        String title = "设备质保到期提醒!";
        String msg = "统一编码为:";
        for(Equipment equipment:equipmentList){
            msg = msg+"【"+equipment.getNum()+"】";
        }
        msg = msg+"的设备质保结束日期小于30天,请及时处理";
        MessageDTO messageDTO = new MessageDTO();
        messageDTO.setTitle(title);
        messageDTO.setContent(msg);
        messageDTO.setCategory("系统消息");
        messageDTO.setFromUser("到期提醒小助手-小醒");
        messageDTO.setToUser("admin");
        if(equipmentList.size()!=0){
            sysBaseApi.sendSysAnnouncement(messageDTO);
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EquipmentUpdateInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.eam.mapper;
import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: è®¾å¤‡ä¿¡æ¯å˜æ›´è®°å½•
 * @Author: jeecg-boot
 * @Date:   2023-09-07
 * @Version: V1.0
 */
public interface EquipmentUpdateInfoMapper extends BaseMapper<EquipmentUpdateInfo> {
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EquipmentUpdateInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EquipmentUpdateInfoMapper">
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEquipmentUpdateInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package org.jeecg.modules.eam.service;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.vo.EquipmentUpdateVo;
import org.springframework.web.bind.annotation.RequestBody;
/**
 * @Description: è®¾å¤‡ä¿¡æ¯å˜æ›´è®°å½•
 * @Author: jeecg-boot
 * @Date:   2023-09-07
 * @Version: V1.0
 */
public interface IEquipmentUpdateInfoService extends IService<EquipmentUpdateInfo> {
    public void updateABC(EquipmentUpdateVo equipmentUpdateVo);
    public void updateWarranty(EquipmentUpdateVo equipmentUpdateVo);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EquipmentUpdateInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
package org.jeecg.modules.eam.service.impl;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.entity.EquipmentUpdateInfo;
import org.jeecg.modules.eam.mapper.EamEquipmentMapper;
import org.jeecg.modules.eam.mapper.EquipmentUpdateInfoMapper;
import org.jeecg.modules.eam.service.IEquipmentUpdateInfoService;
import org.jeecg.modules.eam.vo.EquipmentUpdateVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * @Description: è®¾å¤‡ä¿¡æ¯å˜æ›´è®°å½•
 * @Author: jeecg-boot
 * @Date:   2023-09-07
 * @Version: V1.0
 */
@Service
public class EquipmentUpdateInfoServiceImpl extends ServiceImpl<EquipmentUpdateInfoMapper, EquipmentUpdateInfo> implements IEquipmentUpdateInfoService {
    @Autowired
    private EamEquipmentMapper equipmentMapper;
    private  final String UPDATE_TYPE_ABC = "ABC";
    private  final String UPDATE_TYPE_WARRANTY = "warranty";
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public void updateABC(EquipmentUpdateVo equipmentUpdateVo) {
        List<Equipment> list = equipmentUpdateVo.getUpdateABCEditTableList();
        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
        List<EquipmentUpdateInfo> equipmentUpdateInfos = new ArrayList<>();
        for(Equipment equipment:list) {
            EquipmentUpdateInfo equipmentUpdateInfo = new EquipmentUpdateInfo();
            equipmentUpdateInfo.setEquipmentId(equipment.getId())
                    .setOldAbcTag(equipment.getEquipmentImportanceId())
                    .setNewAbcTag(equipment.getNewABCTag())
                    .setUpdateDate(new Date())
                    .setUpdateType(UPDATE_TYPE_ABC)
                    .setRemark(equipment.getRemark())
                    .setUpdatePerson(user.getId());
            equipmentUpdateInfos.add(equipmentUpdateInfo);
            baseMapper.insert(equipmentUpdateInfo);
            equipment.setEquipmentImportanceId(equipment.getNewABCTag());
            equipmentMapper.updateById(equipment);
        }
    }
    @Override
    @Transactional(rollbackFor = {Exception.class})
    public void updateWarranty(EquipmentUpdateVo equipmentUpdateVo) {
        List<Equipment> list = equipmentUpdateVo.getWarrantyUpdateTableList();
        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
        for(Equipment equipment:list){
            EquipmentUpdateInfo equipmentUpdateInfo = new EquipmentUpdateInfo();
            equipmentUpdateInfo.setEquipmentId(equipment.getId())
                    .setOldStart(equipment.getWarrantyStart())
                    .setNewStart(equipment.getNewStart())
                    .setOldEnd(equipment.getWarrantyEnd())
                    .setNewEnd(equipment.getNewEnd())
                    .setUpdateDate(new Date())
                    .setUpdateType(UPDATE_TYPE_WARRANTY)
                    .setRemark(equipment.getRemark())
                    .setUpdatePerson(user.getId());
            baseMapper.insert(equipmentUpdateInfo);
            equipment.setWarrantyStart(equipment.getNewStart())
                    .setWarrantyEnd(equipment.getNewEnd());
            equipmentMapper.updateById(equipment);
        }
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EquipmentUpdateVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package org.jeecg.modules.eam.vo;
import lombok.Data;
import org.jeecg.modules.eam.entity.Equipment;
import java.io.Serializable;
import java.util.List;
/**
 * @author lnl
 */
@Data
public class EquipmentUpdateVo implements Serializable {
    private List<Equipment> updateABCEditTableList;
    private List<Equipment> warrantyUpdateTableList;
}