新火炬后端单体项目初始化代码
houshuai
8 天以前 12f376e4468e856df7548bc0826256f698adf277
安灯模块开发
已添加19个文件
1095 ■■■■■ 文件已修改
src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/entity/AndonButtonConfig.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/entity/AndonResponseConfig.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/AndonOrderMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/AndonResponseConfigMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonOrderMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonResponseConfigMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/quartz/job/AndonJob.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/andon/controller/AndonButtonConfigController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
package org.jeecg.modules.andon.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import org.jeecg.modules.andon.service.IAndonButtonConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
* @Description: å®‰ç¯æŒ‰é’®é…ç½®
* @Author: jeecg-boot
* @Date:   2025-07-10
* @Version: V1.0
*/
@Api(tags="安灯按钮配置")
@RestController
@RequestMapping("/andonbuttonconfig/andonButtonConfig")
@Slf4j
public class AndonButtonConfigController extends JeecgController<AndonButtonConfig, IAndonButtonConfigService> {
   @Autowired
   private IAndonButtonConfigService andonButtonConfigService;
   /**
    * åˆ†é¡µåˆ—表查询
    *
    * @param andonButtonConfig
    * @param pageNo
    * @param pageSize
    * @param req
    * @return
    */
   //@AutoLog(value = "安灯按钮配置-分页列表查询")
   @ApiOperation(value="安灯按钮配置-分页列表查询", notes="安灯按钮配置-分页列表查询")
   @GetMapping(value = "/list")
   public Result<IPage<AndonButtonConfig>> queryPageList(AndonButtonConfig andonButtonConfig,
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
       QueryWrapper<AndonButtonConfig> queryWrapper = QueryGenerator.initQueryWrapper(andonButtonConfig, req.getParameterMap());
       Page<AndonButtonConfig> page = new Page<AndonButtonConfig>(pageNo, pageSize);
       IPage<AndonButtonConfig> pageList = andonButtonConfigService.page(page, queryWrapper);
       return Result.OK(pageList);
   }
   /**
    *   æ·»åŠ 
    *
    * @param andonButtonConfig
    * @return
    */
   @AutoLog(value = "安灯按钮配置-添加")
   @ApiOperation(value="安灯按钮配置-添加", notes="安灯按钮配置-添加")
   //@RequiresPermissions("org.jeecg.modules:andon_button_config:add")
   @PostMapping(value = "/add")
   public Result<String> add(@RequestBody AndonButtonConfig andonButtonConfig) {
       andonButtonConfigService.save(andonButtonConfig);
       return Result.OK("添加成功!");
   }
   /**
    *  ç¼–辑
    *
    * @param andonButtonConfig
    * @return
    */
   @AutoLog(value = "安灯按钮配置-编辑")
   @ApiOperation(value="安灯按钮配置-编辑", notes="安灯按钮配置-编辑")
   //@RequiresPermissions("org.jeecg.modules:andon_button_config:edit")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
   public Result<String> edit(@RequestBody AndonButtonConfig andonButtonConfig) {
       andonButtonConfigService.updateById(andonButtonConfig);
       return Result.OK("编辑成功!");
   }
   /**
    *   é€šè¿‡id删除
    *
    * @param id
    * @return
    */
   @AutoLog(value = "安灯按钮配置-通过id删除")
   @ApiOperation(value="安灯按钮配置-通过id删除", notes="安灯按钮配置-通过id删除")
   //@RequiresPermissions("org.jeecg.modules:andon_button_config:delete")
   @DeleteMapping(value = "/delete")
   public Result<String> delete(@RequestParam(name="id",required=true) String id) {
       andonButtonConfigService.removeById(id);
       return Result.OK("删除成功!");
   }
   /**
    *  æ‰¹é‡åˆ é™¤
    *
    * @param ids
    * @return
    */
   @AutoLog(value = "安灯按钮配置-批量删除")
   @ApiOperation(value="安灯按钮配置-批量删除", notes="安灯按钮配置-批量删除")
   //@RequiresPermissions("org.jeecg.modules:andon_button_config:deleteBatch")
   @DeleteMapping(value = "/deleteBatch")
   public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
       this.andonButtonConfigService.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<AndonButtonConfig> queryById(@RequestParam(name="id",required=true) String id) {
       AndonButtonConfig andonButtonConfig = andonButtonConfigService.getById(id);
       if(andonButtonConfig==null) {
           return Result.error("未找到对应数据");
       }
       return Result.OK(andonButtonConfig);
   }
   /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param andonButtonConfig
   */
   //@RequiresPermissions("org.jeecg.modules:andon_button_config:exportXls")
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, AndonButtonConfig andonButtonConfig) {
       return super.exportXls(request, andonButtonConfig, AndonButtonConfig.class, "安灯按钮配置");
   }
   /**
     * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
   //@RequiresPermissions("andon_button_config:importExcel")
   @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
   public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
       return super.importExcel(request, response, AndonButtonConfig.class);
   }
}
src/main/java/org/jeecg/modules/andon/controller/AndonOrderController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
package org.jeecg.modules.andon.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.service.IAndonOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
* @Description: å®‰ç¯å·¥å•
* @Author: jeecg-boot
* @Date:   2025-07-10
* @Version: V1.0
*/
@Api(tags="安灯工单")
@RestController
@RequestMapping("/andonorder/andonOrder")
@Slf4j
public class AndonOrderController extends JeecgController<AndonOrder, IAndonOrderService> {
   @Autowired
   private IAndonOrderService andonOrderService;
   /**
    * åˆ†é¡µåˆ—表查询
    *
    * @param andonOrder
    * @param pageNo
    * @param pageSize
    * @param req
    * @return
    */
   //@AutoLog(value = "安灯工单-分页列表查询")
   @ApiOperation(value="安灯工单-分页列表查询", notes="安灯工单-分页列表查询")
   @GetMapping(value = "/list")
   public Result<IPage<AndonOrder>> queryPageList(AndonOrder andonOrder,
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
       QueryWrapper<AndonOrder> queryWrapper = QueryGenerator.initQueryWrapper(andonOrder, req.getParameterMap());
       Page<AndonOrder> page = new Page<AndonOrder>(pageNo, pageSize);
       IPage<AndonOrder> pageList = andonOrderService.page(page, queryWrapper);
       return Result.OK(pageList);
   }
   /**
    *   æ·»åŠ 
    *
    * @param andonOrder
    * @return
    */
   @AutoLog(value = "安灯工单-添加")
   @ApiOperation(value="安灯工单-添加", notes="安灯工单-添加")
   //@RequiresPermissions("org.jeecg.modules:andon_order:add")
   @PostMapping(value = "/add")
   public Result<String> add(@RequestBody AndonOrder andonOrder) {
       andonOrderService.save(andonOrder);
       return Result.OK("添加成功!");
   }
   /**
    *  ç¼–辑
    *
    * @param andonOrder
    * @return
    */
   @AutoLog(value = "安灯工单-编辑")
   @ApiOperation(value="安灯工单-编辑", notes="安灯工单-编辑")
   //@RequiresPermissions("org.jeecg.modules:andon_order:edit")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
   public Result<String> edit(@RequestBody AndonOrder andonOrder) {
       andonOrderService.updateById(andonOrder);
       return Result.OK("编辑成功!");
   }
   /**
    *   é€šè¿‡id删除
    *
    * @param id
    * @return
    */
   @AutoLog(value = "安灯工单-通过id删除")
   @ApiOperation(value="安灯工单-通过id删除", notes="安灯工单-通过id删除")
   //@RequiresPermissions("org.jeecg.modules:andon_order:delete")
   @DeleteMapping(value = "/delete")
   public Result<String> delete(@RequestParam(name="id",required=true) String id) {
       andonOrderService.removeById(id);
       return Result.OK("删除成功!");
   }
   /**
    *  æ‰¹é‡åˆ é™¤
    *
    * @param ids
    * @return
    */
   @AutoLog(value = "安灯工单-批量删除")
   @ApiOperation(value="安灯工单-批量删除", notes="安灯工单-批量删除")
   //@RequiresPermissions("org.jeecg.modules:andon_order:deleteBatch")
   @DeleteMapping(value = "/deleteBatch")
   public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
       this.andonOrderService.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<AndonOrder> queryById(@RequestParam(name="id",required=true) String id) {
       AndonOrder andonOrder = andonOrderService.getById(id);
       if(andonOrder==null) {
           return Result.error("未找到对应数据");
       }
       return Result.OK(andonOrder);
   }
   /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param andonOrder
   */
   //@RequiresPermissions("org.jeecg.modules:andon_order:exportXls")
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, AndonOrder andonOrder) {
       return super.exportXls(request, andonOrder, AndonOrder.class, "安灯工单");
   }
   /**
     * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
   //@RequiresPermissions("andon_order:importExcel")
   @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
   public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
       return super.importExcel(request, response, AndonOrder.class);
   }
}
src/main/java/org/jeecg/modules/andon/controller/AndonResponseConfigController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,161 @@
package org.jeecg.modules.andon.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
import org.jeecg.modules.andon.service.IAndonResponseConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
/**
* @Description: å®‰ç¯å“åº”配置
* @Author: jeecg-boot
* @Date:   2025-07-10
* @Version: V1.0
*/
@Api(tags="安灯响应配置")
@RestController
@RequestMapping("/andonresponseconfig/andonResponseConfig")
@Slf4j
public class AndonResponseConfigController extends JeecgController<AndonResponseConfig, IAndonResponseConfigService> {
   @Autowired
   private IAndonResponseConfigService andonResponseConfigService;
   /**
    * åˆ†é¡µåˆ—表查询
    *
    * @param andonResponseConfig
    * @param pageNo
    * @param pageSize
    * @param req
    * @return
    */
   //@AutoLog(value = "安灯响应配置-分页列表查询")
   @ApiOperation(value="安灯响应配置-分页列表查询", notes="安灯响应配置-分页列表查询")
   @GetMapping(value = "/list")
   public Result<IPage<AndonResponseConfig>> queryPageList(AndonResponseConfig andonResponseConfig,
                                  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                                  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                  HttpServletRequest req) {
       QueryWrapper<AndonResponseConfig> queryWrapper = QueryGenerator.initQueryWrapper(andonResponseConfig, req.getParameterMap());
       Page<AndonResponseConfig> page = new Page<AndonResponseConfig>(pageNo, pageSize);
       IPage<AndonResponseConfig> pageList = andonResponseConfigService.page(page, queryWrapper);
       return Result.OK(pageList);
   }
   /**
    *   æ·»åŠ 
    *
    * @param andonResponseConfig
    * @return
    */
   @AutoLog(value = "安灯响应配置-添加")
   @ApiOperation(value="安灯响应配置-添加", notes="安灯响应配置-添加")
   //@RequiresPermissions("org.jeecg.modules:andon_response_config:add")
   @PostMapping(value = "/add")
   public Result<String> add(@RequestBody AndonResponseConfig andonResponseConfig) {
       andonResponseConfigService.save(andonResponseConfig);
       return Result.OK("添加成功!");
   }
   /**
    *  ç¼–辑
    *
    * @param andonResponseConfig
    * @return
    */
   @AutoLog(value = "安灯响应配置-编辑")
   @ApiOperation(value="安灯响应配置-编辑", notes="安灯响应配置-编辑")
   //@RequiresPermissions("org.jeecg.modules:andon_response_config:edit")
   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
   public Result<String> edit(@RequestBody AndonResponseConfig andonResponseConfig) {
       andonResponseConfigService.updateById(andonResponseConfig);
       return Result.OK("编辑成功!");
   }
   /**
    *   é€šè¿‡id删除
    *
    * @param id
    * @return
    */
   @AutoLog(value = "安灯响应配置-通过id删除")
   @ApiOperation(value="安灯响应配置-通过id删除", notes="安灯响应配置-通过id删除")
   //@RequiresPermissions("org.jeecg.modules:andon_response_config:delete")
   @DeleteMapping(value = "/delete")
   public Result<String> delete(@RequestParam(name="id",required=true) String id) {
       andonResponseConfigService.removeById(id);
       return Result.OK("删除成功!");
   }
   /**
    *  æ‰¹é‡åˆ é™¤
    *
    * @param ids
    * @return
    */
   @AutoLog(value = "安灯响应配置-批量删除")
   @ApiOperation(value="安灯响应配置-批量删除", notes="安灯响应配置-批量删除")
   //@RequiresPermissions("org.jeecg.modules:andon_response_config:deleteBatch")
   @DeleteMapping(value = "/deleteBatch")
   public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
       this.andonResponseConfigService.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<AndonResponseConfig> queryById(@RequestParam(name="id",required=true) String id) {
       AndonResponseConfig andonResponseConfig = andonResponseConfigService.getById(id);
       if(andonResponseConfig==null) {
           return Result.error("未找到对应数据");
       }
       return Result.OK(andonResponseConfig);
   }
   /**
   * å¯¼å‡ºexcel
   *
   * @param request
   * @param andonResponseConfig
   */
   //@RequiresPermissions("org.jeecg.modules:andon_response_config:exportXls")
   @RequestMapping(value = "/exportXls")
   public ModelAndView exportXls(HttpServletRequest request, AndonResponseConfig andonResponseConfig) {
       return super.exportXls(request, andonResponseConfig, AndonResponseConfig.class, "安灯响应配置");
   }
   /**
     * é€šè¿‡excel导入数据
   *
   * @param request
   * @param response
   * @return
   */
   //@RequiresPermissions("andon_response_config:importExcel")
   @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
   public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
       return super.importExcel(request, response, AndonResponseConfig.class);
   }
}
src/main/java/org/jeecg/modules/andon/entity/AndonButtonConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
package org.jeecg.modules.andon.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: å®‰ç¯æŒ‰é’®é…ç½®
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
@Data
@TableName("andon_button_config")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="andon_button_config对象", description="安灯按钮配置")
public class AndonButtonConfig implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag;
    /**安灯名称*/
    @Excel(name = "安灯名称", width = 15)
    @ApiModelProperty(value = "安灯名称")
    private String buttonName;
    /**安灯编码*/
    @Excel(name = "安灯编码", width = 15)
    @ApiModelProperty(value = "安灯编码")
    private String buttonCode;
    /**升级响应时长(分钟)*/
    @Excel(name = "升级响应时长(分钟)", width = 15)
    @ApiModelProperty(value = "升级响应时长(分钟)")
    private Integer upgradeResponseDuration;
    /**升级处理时长(分钟)*/
    @Excel(name = "升级处理时长(分钟)", width = 15)
    @ApiModelProperty(value = "升级处理时长(分钟)")
    private Integer upgradeProcessDuration;
    /**二次升级响应时长(分钟)*/
    @Excel(name = "二次升级响应时长(分钟)", width = 15)
    @ApiModelProperty(value = "二次升级响应时长(分钟)")
    private Integer secondUpgradeResponseDuration;
    /**二次升级处理时长(分钟)*/
    @Excel(name = "二次升级处理时长(分钟)", width = 15)
    @ApiModelProperty(value = "二次升级处理时长(分钟)")
    private Integer secondUpgradeProcessDuration;
    /**安灯按钮状态*/
    @Excel(name = "安灯按钮状态", width = 15, dicCode = "button_status")
    @Dict(dicCode = "button_status")
    @ApiModelProperty(value = "安灯按钮状态")
    private String buttonStatus;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
}
src/main/java/org/jeecg/modules/andon/entity/AndonOrder.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
package org.jeecg.modules.andon.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: å®‰ç¯å·¥å•
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
@Data
@TableName("andon_order")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="andon_order对象", description="安灯工单")
public class AndonOrder implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag;
    /**产线ID*/
    @Excel(name = "产线ID", width = 15)
    @ApiModelProperty(value = "产线ID")
    @Dict(dictTable = "base_factory", dicCode = "id", dicText = "factory_name")
    private String factoryId;
    /**安灯类型*/
    @Excel(name = "安灯类型", width = 15)
    @ApiModelProperty(value = "安灯类型")
    @Dict(dictTable = "andon_button_config", dicCode = "id", dicText = "button_name")
    private String buttonId;
    /**安灯人*/
    @Excel(name = "安灯人", width = 15)
    @ApiModelProperty(value = "安灯人")
    private String operator;
    /**安灯时间*/
    @Excel(name = "安灯时间", width = 20, 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 Date operateTime;
    /**安灯等级*/
    @Excel(name = "安灯等级", width = 15, dicCode = "andon_level")
    @Dict(dicCode = "andon_level")
    @ApiModelProperty(value = "安灯等级")
    private String andonLevel;
    /**响应人*/
    @Excel(name = "响应人", width = 15)
    @ApiModelProperty(value = "响应人")
    private String responder;
    /**响应时间*/
    @Excel(name = "响应时间", width = 20, 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 Date responseTime;
    /**处理人*/
    @Excel(name = "处理人", width = 15)
    @ApiModelProperty(value = "处理人")
    private String processor;
    /**处理完成时间*/
    @Excel(name = "处理完成时间", width = 20, 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 Date processTime;
    /**安灯状态*/
    @Excel(name = "安灯状态", width = 15, dicCode = "order_status")
    @Dict(dicCode = "order_status")
    @ApiModelProperty(value = "安灯状态")
    private String orderStatus;
    /**问题描述*/
    @Excel(name = "问题描述", width = 15)
    @ApiModelProperty(value = "问题描述")
    private String problemDescreption;
    /**处理结果描述*/
    @Excel(name = "处理结果描述", width = 15)
    @ApiModelProperty(value = "处理结果描述")
    private String resolutionDescreption;
    /**处理结果图片*/
    @Excel(name = "处理结果图片", width = 15)
    @ApiModelProperty(value = "处理结果图片")
    private String imageFiles;
}
src/main/java/org/jeecg/modules/andon/entity/AndonResponseConfig.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,81 @@
package org.jeecg.modules.andon.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: å®‰ç¯å“åº”配置
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
@Data
@TableName("andon_response_config")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="andon_response_config对象", description="安灯响应配置")
public class AndonResponseConfig implements Serializable {
    private static final long serialVersionUID = 1L;
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    @TableLogic
    private Integer delFlag;
    /**产线ID*/
    @Excel(name = "产线ID", width = 15)
    @ApiModelProperty(value = "产线ID")
    @Dict(dictTable = "base_factory", dicCode = "id", dicText = "factory_name")
    private String factoryId;
    /**安灯类型*/
    @Excel(name = "安灯类型", width = 15)
    @ApiModelProperty(value = "安灯类型")
    @Dict(dictTable = "andon_button_config", dicCode = "id", dicText = "button_name")
    private String buttonId;
    /**初始响应人*/
    @Excel(name = "初始响应人", width = 15)
    @ApiModelProperty(value = "初始响应人")
    private String firsterResponder;
    /**二级响应人(升级一次)*/
    @Excel(name = "二级响应人(升级一次)", width = 15)
    @ApiModelProperty(value = "二级响应人(升级一次)")
    private String secondResponder;
    /**三级响应人(升级两次)*/
    @Excel(name = "三级响应人(升级两次)", width = 15)
    @ApiModelProperty(value = "三级响应人(升级两次)")
    private String thirdResponder;
}
src/main/java/org/jeecg/modules/andon/mapper/AndonButtonConfigMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package org.jeecg.modules.andon.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
/**
 * @Description: å®‰ç¯æŒ‰é’®é…ç½®
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
public interface AndonButtonConfigMapper extends BaseMapper<AndonButtonConfig> {
    AndonButtonConfig getAndonButtonById(@Param("id") String id);
}
src/main/java/org/jeecg/modules/andon/mapper/AndonOrderMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.andon.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.andon.entity.AndonOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * @Description: å®‰ç¯å·¥å•
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
public interface AndonOrderMapper extends BaseMapper<AndonOrder> {
    List<AndonOrder> getAndonOrdersExceptYWC();
}
src/main/java/org/jeecg/modules/andon/mapper/AndonResponseConfigMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package org.jeecg.modules.andon.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
/**
 * @Description: å®‰ç¯å“åº”配置
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
public interface AndonResponseConfigMapper extends BaseMapper<AndonResponseConfig> {
    AndonResponseConfig getAndonResponseConfigByFactoryIdAndButtonId(@Param("factoryId") String factoryId, @Param("buttonId") String buttonId);
}
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonButtonConfigMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?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.andon.mapper.AndonButtonConfigMapper">
    <select id="getAndonButtonById" resultType="org.jeecg.modules.andon.entity.AndonButtonConfig">
        SELECT * FROM andon_button_config WHERE id = #{id} and del_flag = 0 and button_status = '启用'
    </select>
</mapper>
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonOrderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?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.andon.mapper.AndonOrderMapper">
    <select id="getAndonOrdersExceptYWC" resultType="org.jeecg.modules.andon.entity.AndonOrder">
        SELECT * FROM andon_order WHERE order_status != '3' and del_flag = 0
    </select>
</mapper>
src/main/java/org/jeecg/modules/andon/mapper/xml/AndonResponseConfigMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?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.andon.mapper.AndonResponseConfigMapper">
    <select id="getAndonResponseConfigByFactoryIdAndButtonId" resultType="org.jeecg.modules.andon.entity.AndonResponseConfig">
        SELECT * FROM andon_response_config WHERE factory_id = #{factoryId} AND button_id = #{buttonId} AND del_flag = 0
    </select>
</mapper>
src/main/java/org/jeecg/modules/andon/service/IAndonButtonConfigService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.andon.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
/**
 * @Description: å®‰ç¯æŒ‰é’®é…ç½®
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
public interface IAndonButtonConfigService extends IService<AndonButtonConfig> {
    AndonButtonConfig getAndonButtonById(String id);
}
src/main/java/org/jeecg/modules/andon/service/IAndonOrderService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package org.jeecg.modules.andon.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.andon.entity.AndonOrder;
import java.util.List;
/**
 * @Description: å®‰ç¯å·¥å•
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
public interface IAndonOrderService extends IService<AndonOrder> {
    //已完成状态除外
    List<AndonOrder> getAndonOrdersExceptYWC();
}
src/main/java/org/jeecg/modules/andon/service/IAndonResponseConfigService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.andon.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
/**
 * @Description: å®‰ç¯å“åº”配置
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
public interface IAndonResponseConfigService extends IService<AndonResponseConfig> {
    AndonResponseConfig getAndonResponseConfigByFactoryIdAndButtonId(String factoryId, String buttonId);
}
src/main/java/org/jeecg/modules/andon/service/impl/AndonButtonConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package org.jeecg.modules.andon.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import org.jeecg.modules.andon.mapper.AndonButtonConfigMapper;
import org.jeecg.modules.andon.service.IAndonButtonConfigService;
import org.springframework.stereotype.Service;
/**
 * @Description: å®‰ç¯æŒ‰é’®é…ç½®
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
@Service
public class AndonButtonConfigServiceImpl extends ServiceImpl<AndonButtonConfigMapper, AndonButtonConfig> implements IAndonButtonConfigService {
    @Override
    public AndonButtonConfig getAndonButtonById(String id) {
        return baseMapper.getAndonButtonById(id);
    }
}
src/main/java/org/jeecg/modules/andon/service/impl/AndonOrderServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package org.jeecg.modules.andon.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.andon.service.IAndonOrderService;
import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.mapper.AndonOrderMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * @Description: å®‰ç¯å·¥å•
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
@Service
public class AndonOrderServiceImpl extends ServiceImpl<AndonOrderMapper, AndonOrder> implements IAndonOrderService {
    @Override
    public List<AndonOrder> getAndonOrdersExceptYWC() {
        return baseMapper.getAndonOrdersExceptYWC();
    }
}
src/main/java/org/jeecg/modules/andon/service/impl/AndonResponseConfigServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package org.jeecg.modules.andon.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
import org.jeecg.modules.andon.mapper.AndonResponseConfigMapper;
import org.jeecg.modules.andon.service.IAndonResponseConfigService;
import org.springframework.stereotype.Service;
/**
 * @Description: å®‰ç¯å“åº”配置
 * @Author: jeecg-boot
 * @Date:   2025-07-10
 * @Version: V1.0
 */
@Service
public class AndonResponseConfigServiceImpl extends ServiceImpl<AndonResponseConfigMapper, AndonResponseConfig> implements IAndonResponseConfigService {
    @Override
    public AndonResponseConfig getAndonResponseConfigByFactoryIdAndButtonId(String factoryId, String buttonId) {
        return baseMapper.getAndonResponseConfigByFactoryIdAndButtonId(factoryId,buttonId);
    }
}
src/main/java/org/jeecg/modules/quartz/job/AndonJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,137 @@
package org.jeecg.modules.quartz.job;
import org.jeecg.modules.andon.entity.AndonButtonConfig;
import org.jeecg.modules.andon.entity.AndonOrder;
import org.jeecg.modules.andon.entity.AndonResponseConfig;
import org.jeecg.modules.andon.service.IAndonButtonConfigService;
import org.jeecg.modules.andon.service.IAndonOrderService;
import org.jeecg.modules.andon.service.IAndonResponseConfigService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
//org.jeecg.modules.quartz.job.AndonJob
public class AndonJob implements Job {
    private static final String ANDON_STATUS_DXY = "1";
    private static final String ANDON_STATUS_DCL = "2";
    private static final String ANDON_STATUS_YWC = "3";
    @Autowired
    @Lazy
    private IAndonOrderService andonOrderService;
    @Autowired
    @Lazy
    private IAndonButtonConfigService andonButtonConfigService;
    @Autowired
    @Lazy
    private IAndonResponseConfigService andonResponseConfigService;
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        LocalDateTime currentTime = LocalDateTime.now();
        List<AndonOrder> andonOrdersExceptYWC = andonOrderService.getAndonOrdersExceptYWC();
        for (AndonOrder andonOrder : andonOrdersExceptYWC) {
            AndonResponseConfig andonResponseConfig = andonResponseConfigService.getAndonResponseConfigByFactoryIdAndButtonId(andonOrder.getFactoryId(), andonOrder.getButtonId());
            AndonButtonConfig andonButtonConfig = andonButtonConfigService.getAndonButtonById(andonOrder.getButtonId());
            System.out.println("andonOrder----"+andonOrder.getId()+"----andonResponseConfig----"+andonResponseConfig.getId()+"-----"+"andonButtonConfig----"+andonButtonConfig.getId());
            levelUpgradeOne(andonOrder, andonResponseConfig, andonButtonConfig, currentTime);
            levelUpgradeTwo(andonOrder, andonResponseConfig, andonButtonConfig, currentTime);
            levelProcessOne(andonOrder, andonResponseConfig, andonButtonConfig, currentTime);
            levelProcessTwo(andonOrder, andonResponseConfig, andonButtonConfig, currentTime);
        }
    }
    /**
     * åˆ¤æ–­äºŒçº§å“åº”升级
     * å¦‚果安灯工单响应时间超过一级响应时长还为空,则说明未响应
     */
    public void levelUpgradeOne(AndonOrder andonOrder, AndonResponseConfig andonResponseConfig, AndonButtonConfig andonButtonConfig, LocalDateTime currentTime) {
        if (andonOrder.getAndonLevel().equals("1") && andonOrder.getOrderStatus().equals(ANDON_STATUS_DXY)) {
            //安灯时间
            Date operateTime = andonOrder.getOperateTime();
            //响应时长 ï¼ˆåˆ†é’Ÿï¼‰
            Integer upgradeResponseDuration = andonButtonConfig.getUpgradeResponseDuration();
            LocalDateTime timeoutTime = operateTime.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime()
                    .plusMinutes(upgradeResponseDuration);
            if (currentTime.isAfter(timeoutTime)) {
                //响应时间超过一级响应时长,升级一次,并提醒(模拟发送飞书消息)
                andonOrder.setAndonLevel("2");
                andonOrderService.saveOrUpdate(andonOrder);
                //TODO å‘送飞书消息(这块为模拟需要有接口才能开发)
                System.out.println("初始响应人"+andonResponseConfig.getFirsterResponder()+"未响应!"+"安灯工单:" + andonOrder.getId() + "已升级二级响应,并发消息给二级响应人"+andonResponseConfig.getSecondResponder());
            }
        }
    }
    /**
     * åˆ¤æ–­ä¸‰çº§å“åº”升级
     * å®‰ç¯å·¥å•响应时间超过二级响应时长还为空,则说明未响应
     */
    public void levelUpgradeTwo(AndonOrder andonOrder, AndonResponseConfig andonResponseConfig, AndonButtonConfig andonButtonConfig, LocalDateTime currentTime) {
        if (andonOrder.getAndonLevel().equals("2") && andonOrder.getOrderStatus().equals(ANDON_STATUS_DXY)) {
            Date operateTime = andonOrder.getOperateTime();
            Integer upgradeResponseDuration = andonButtonConfig.getSecondUpgradeResponseDuration();
            LocalDateTime timeoutTime = operateTime.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime()
                    .plusMinutes(upgradeResponseDuration);
            if (currentTime.isAfter(timeoutTime)) {
                //响应时间超过一级响应时长,升级一次,并提醒(模拟发送飞书消息)
                andonOrder.setAndonLevel("3");
                andonOrderService.saveOrUpdate(andonOrder);
                //TODO å‘送飞书消息(这块为模拟需要有接口才能开发)
                System.out.println("二级响应人"+andonResponseConfig.getSecondResponder()+"未响应!"+"安灯工单:" + andonOrder.getId() + "已升级三级响应,并发消息给三级响应人"+andonResponseConfig.getThirdResponder());
            }
        }
    }
    /**
     * åˆ¤æ–­äºŒçº§å¤„理升级
     * å®‰ç¯å·¥å•响应时间超过二级处理时长还为空,则说明未响应
     */
    public void levelProcessOne(AndonOrder andonOrder, AndonResponseConfig andonResponseConfig, AndonButtonConfig andonButtonConfig, LocalDateTime currentTime){
        if (andonOrder.getAndonLevel().equals("1") && andonOrder.getOrderStatus().equals(ANDON_STATUS_DCL)) {
            Date responseTime = andonOrder.getResponseTime();
            Integer upgradeProcessDuration = andonButtonConfig.getUpgradeProcessDuration();
            LocalDateTime timeoutTime = responseTime.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime()
                    .plusMinutes(upgradeProcessDuration);
            if (currentTime.isAfter(timeoutTime)) {
                //处理时间超过一级处理时长,升级一次,并提醒(模拟发送飞书消息)
                andonOrder.setAndonLevel("2");
                andonOrderService.saveOrUpdate(andonOrder);
                //TODO å‘送飞书消息(这块为模拟需要有接口才能开发)
                System.out.println("一级处理人"+andonResponseConfig.getFirsterResponder()+"未处理!"+"安灯工单:" + andonOrder.getId() + "已升级二级处理,并发消息给二级处理人"+andonResponseConfig.getSecondResponder());
            }
        }
    }
    /**
     * åˆ¤æ–­ä¸‰çº§å¤„理升级
     * å®‰ç¯å·¥å•响应时间超过二级处理时长还为空,则说明未响应
     */
    public void levelProcessTwo(AndonOrder andonOrder, AndonResponseConfig andonResponseConfig, AndonButtonConfig andonButtonConfig, LocalDateTime currentTime){
        if (andonOrder.getAndonLevel().equals("2") && andonOrder.getOrderStatus().equals(ANDON_STATUS_DCL)) {
            Date responseTime = andonOrder.getResponseTime();
            Integer secondUpgradeProcessDuration = andonButtonConfig.getSecondUpgradeProcessDuration();
            LocalDateTime timeoutTime = responseTime.toInstant()
                    .atZone(ZoneId.systemDefault())
                    .toLocalDateTime()
                    .plusMinutes(secondUpgradeProcessDuration);
            if (currentTime.isAfter(timeoutTime)) {
                //处理时间超过一级处理时长,升级一次,并提醒(模拟发送飞书消息)
                andonOrder.setAndonLevel("3");
                andonOrderService.saveOrUpdate(andonOrder);
                //TODO å‘送飞书消息(这块为模拟需要有接口才能开发)
                System.out.println("二级处理人"+andonResponseConfig.getSecondResponder()+"未处理!"+"安灯工单:" + andonOrder.getId() + "已升级三级处理,并发消息给三级处理人"+andonResponseConfig.getThirdResponder());
            }
        }
    }
}