package com.huaheng.pc.config.alarmLevel.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.huaheng.common.utils.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huaheng.common.support.Convert; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.page.PageDomain; import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.config.alarmLevel.domain.AlarmLevel; import com.huaheng.pc.config.alarmLevel.service.AlarmLevelService; import com.huaheng.pc.config.sendMail.domain.SendMail; import com.huaheng.pc.config.sendMail.service.SendMailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Api(tags = "预警等级") @Controller @RequestMapping("/config/alarmLevel") public class AlarmLevelController extends BaseController { @Resource private AlarmLevelService alarmLevelService; @Resource private SendMailService sendMailService; private String prefix = "config/alarmLevel"; @RequiresPermissions("config:alarmLevel:view") @GetMapping() public String containerCapacity() { return prefix + "/containerCapacity"; } /** * 查询容器容量列表 */ @RequiresPermissions("config:alarmLevel:list") @Log(title = "配置-预警等级", operating = "查看预警等级列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(String createdBegin, String createdEnd) { LambdaQueryWrapper<AlarmLevel> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), AlarmLevel::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), AlarmLevel::getCreated, createdEnd) .in(AlarmLevel::getCompanyCode, ShiroUtils.getCompanyCodeList()) .eq(AlarmLevel::getWarehouseCode, ShiroUtils.getWarehouseCode()) .orderByAsc(AlarmLevel::getId); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ //使用分页查询 Page<AlarmLevel> page = new Page<>(pageNum, pageSize); IPage<AlarmLevel> iPage = alarmLevelService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(),iPage.getTotal()); } else { List<AlarmLevel> list = alarmLevelService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增预警等级 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存预警等级 */ @ApiOperation(value="新增预警等级 ", notes="新增预警等级 ", httpMethod = "POST") @RequiresPermissions("config:alarmLevel:add") @Log(title = "配置-预警等级 ",operating = "新增预警等级 ", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(AlarmLevel alarmLevel) { alarmLevel.setWarehouseCode(ShiroUtils.getWarehouseCode()); LambdaQueryWrapper<AlarmLevel> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(AlarmLevel::getLevel, alarmLevel.getLevel()) .eq(AlarmLevel::getCompanyCode, alarmLevel.getCompanyCode()) .eq(AlarmLevel::getWarehouseCode, alarmLevel.getWarehouseCode()); if (alarmLevelService.getOne(lambdaQueryWrapper) != null){ return AjaxResult.error("该记录已存在"); } alarmLevel.setCreatedBy(ShiroUtils.getLoginName()); alarmLevel.setLastUpdateBy(ShiroUtils.getLoginName()); return toAjax(alarmLevelService.save(alarmLevel)); } /** * 修改预警等级 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { AlarmLevel alarmLevel = alarmLevelService.getById(id); mmap.put("alarmLevel", alarmLevel); return prefix + "/edit"; } /** * 修改保存预警等级 */ @ApiOperation(value="修改预警等级信息", notes="修改预警等级信息", httpMethod = "POST") @RequiresPermissions("config:alarmLevel:edit") @Log(title = "配置-预警等级 ",operating = "修改预警等级 ", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(AlarmLevel alarmLevel) { alarmLevel.setLastUpdateBy(ShiroUtils.getLoginName()); return toAjax(alarmLevelService.updateById(alarmLevel)); } /** * 删除预警等级 */ @ApiOperation(value="删除预警等级 ", notes="单条删除或批量删除预警等级 ,示例1或1,2,3", httpMethod = "POST") @RequiresPermissions("config:alarmLevel:remove") @Log(title = "配置-预警等级 ",operating = "删除预警等级 ", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { if (StringUtils.isEmpty(ids)) { return AjaxResult.error("id不能为空"); } List<Integer> list = new ArrayList<>(); for (Integer id : Convert.toIntArray(ids)) { LambdaQueryWrapper<SendMail> lambda = Wrappers.lambdaQuery(); lambda.eq(SendMail::getWarningLevel, alarmLevelService.getById(id).getLevel()); List<SendMail> sendMails = sendMailService.list(lambda); if (sendMails != null) { return AjaxResult.error("该类型正在被使用"); } list.add(id); } return toAjax(alarmLevelService.removeByIds(list)); } }