package com.huaheng.pc.config.configValue.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.configValue.domain.ConfigValue; import com.huaheng.pc.config.configValue.service.ConfigValueService; import com.huaheng.pc.config.cycleCountPreference.domain.CycleCountPreference; import com.huaheng.pc.config.cycleCountPreference.service.CycleCountPreferenceService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; 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/configValue") public class ConfigValueController extends BaseController { @Resource private ConfigValueService configValueService; @Resource private CycleCountPreferenceService cycleCountPreferenceService; private String prefix = "config/configValue"; @RequiresPermissions("config:configValue:view") @GetMapping() public String container() { return prefix + "/configValue"; } /** * 查询系统参数配置 */ @ApiOperation(value="查看系统参数配置列表", notes="根据模块、类型、创建时间获取库位的详细信息", httpMethod = "POST") @RequiresPermissions("config:configValue:list") @Log(title = "配置-系统参数配置", operating = "查看系统参数配置列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list( @ApiParam(name="location",value="模块、类型") ConfigValue configValue, @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { LambdaQueryWrapper<ConfigValue> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), ConfigValue::getCreated, createdBegin) .lt(StringUtils.isNotEmpty(createdEnd), ConfigValue::getCreated, createdEnd) .eq(StringUtils.isNotEmpty(configValue.getModuleType()), ConfigValue::getModuleType, configValue.getModuleType()) .eq(StringUtils.isNotEmpty(configValue.getRecordType()), ConfigValue::getRecordType, configValue.getRecordType()) .eq(ConfigValue::getWarehouseCode, ShiroUtils.getWarehouseCode()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /*使用分页查询*/ Page<ConfigValue> page = new Page<>(pageNum, pageSize); IPage<ConfigValue> iPage = configValueService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<ConfigValue> list = configValueService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增系统参数配置 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存系统参数配置 */ @ApiOperation(value="新增系统参数配置", notes="新增系统参数配置", httpMethod = "POST") @RequiresPermissions("config:configValue:add") @Log(title = "配置-系统参数配置", operating = "新增系统参数配置", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(ConfigValue configValue) { //检测盘点首选项是否停用 if("cycleCountPreference".equals(configValue.getRecordType())){ CycleCountPreference cycleCountPreferenceTemp = new CycleCountPreference(); cycleCountPreferenceTemp.setCode(configValue.getIdentifier()); cycleCountPreferenceTemp.setWarehouseCode(configValue.getWarehouseCode()); LambdaQueryWrapper<CycleCountPreference> preferenceLambdaQueryWrapper = Wrappers.lambdaQuery(cycleCountPreferenceTemp); CycleCountPreference cycleCountPreference = cycleCountPreferenceService.getOne(preferenceLambdaQueryWrapper); if(cycleCountPreference == null){ return AjaxResult.error("盘点首选项编码错误,没有该条首选项!"); } if(cycleCountPreference.getEnable() == false){ return AjaxResult.error("不能添加已停用的盘点首选项!"); } } configValue.setWarehouseCode(ShiroUtils.getWarehouseCode()); configValue.setCreatedBy(ShiroUtils.getLoginName()); configValue.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(configValueService.save(configValue)); } /** * 修改系统参数配置 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { ConfigValue configValue = configValueService.getById(id); mmap.put("configValue", configValue); return prefix + "/edit"; } /** * 修改保存系统参数配置 */ @ApiOperation(value="修改系统参数配置", notes="修改系统参数配置", httpMethod = "POST") @RequiresPermissions("config:configValue:edit") @Log(title = "通用-系统参数配置", operating = "修改系统参数配置", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave( @ApiParam(name = "Container", value = "系统参数配置实体", required = true)ConfigValue configValue) { configValue.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(configValueService.updateById(configValue)); } /** * 删除系统参数配置 */ @ApiOperation(value="删除系统参数配置", notes="根据id批量删除系统参数配置,参数示例1,2,3", httpMethod = "POST") @RequiresPermissions("config:configValue: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)) { list.add(id); } return toAjax(configValueService.removeByIds(list)); } }