package com.huaheng.pc.config.cycleCountPreference.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.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 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.Date; import java.util.List; /** * 盘点单首选项 * */ @Controller @RequestMapping("/config/cycleCountPreference") public class cycleCountPreferenceController extends BaseController { @Resource private CycleCountPreferenceService cycleCountPreferenceService; @Resource private ConfigValueService configValueService; private String prefix = "config/cycleCountPreference"; @RequiresPermissions("config:cycleCountPreference:view") @GetMapping() public String cyclecountHeader() { return prefix + "/cycleCountPreference"; } /** * 查询盘点单主列表 */ @RequiresPermissions("config:cycleCountPreference:list") @PostMapping("/list") @Log(title = "配置-库存配置",operating = "盘点首选项", action = BusinessType.GRANT) @ResponseBody public TableDataInfo list(CycleCountPreference cycleCountPreference, String createdBegin, String createdEnd) { LambdaQueryWrapper<CycleCountPreference> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.ge( StringUtils.isNotEmpty(createdBegin), CycleCountPreference::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), CycleCountPreference::getCreated, createdEnd)//创建时间范围 .eq(CycleCountPreference::getWarehouseCode, ShiroUtils.getWarehouseCode()) //仓库 .eq(StringUtils.isNotEmpty(cycleCountPreference.getCode()), CycleCountPreference::getCode, cycleCountPreference.getCode())//首选项编码 /*.eq(StringUtils.isNotEmpty(cycleCountPreference.getPromptLocation()),CycleCountPreference::getPromptLocation,cycleCountPreference.getPromptLocation())//提示货位 .eq(StringUtils.isNotEmpty(cycleCountPreference.getPromptLpn()),CycleCountPreference::getPromptLpn,cycleCountPreference.getPromptLpn())//提示PLN .eq(StringUtils.isNotEmpty(cycleCountPreference.getPromptItem()),CycleCountPreference::getPromptItem,cycleCountPreference.getPromptItem())//提示物料 */ .eq(StringUtils.isNotEmpty(cycleCountPreference.getLastUpdatedBy()),CycleCountPreference::getLastUpdatedBy,cycleCountPreference.getLastUpdatedBy())//更新人 .eq(StringUtils.isNotEmpty(cycleCountPreference.getCreatedBy()),CycleCountPreference::getCreatedBy,cycleCountPreference.getCreatedBy())//创建人 .orderByDesc(CycleCountPreference::getId); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) { //分页查询 Page<CycleCountPreference> page = new Page<>(pageNum, pageSize); IPage<CycleCountPreference> iPage = cycleCountPreferenceService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<CycleCountPreference> list = cycleCountPreferenceService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增盘点首选项 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存盘点首选项 */ @RequiresPermissions("config:cycleCountPreference:add") @Log(title = "配置-盘点首选项", operating = "新增盘点首选项", action = BusinessType.INSERT) @PostMapping("/addSave") @ResponseBody public AjaxResult addSave(CycleCountPreference cycleCountPreference) { if(cycleCountPreference == null){ return AjaxResult.error("新增数据不能为空!"); } return cycleCountPreferenceService.addSave(cycleCountPreference); } /** * 修改盘点首选项 */ @GetMapping("/edit/{id}") public String edit(@PathVariable Integer id, ModelMap mmap) { mmap.put("cycleCountPreference", cycleCountPreferenceService.getById(id)); return prefix + "/edit"; } /** * 修改保存盘点首选项 */ @RequiresPermissions("config:cycleCountPreference:edit") @Log(title = "通用-盘点首选项", operating = "修改盘点首选项", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(CycleCountPreference cycleCountPreference) { //不允许在被配置默认使用的情况先停用首选项 if(cycleCountPreference.getEnable() == false){ ConfigValue configValueTemp = new ConfigValue(); configValueTemp.setModuleType("cyclecount"); configValueTemp.setWarehouseCode(cycleCountPreference.getWarehouseCode()); LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper = Wrappers.lambdaQuery(configValueTemp); ConfigValue configValue = configValueService.getOne(configValueLambdaQueryWrapper); if(configValue != null){ if(configValue.getIdentifier().equals(cycleCountPreference.getCode())){ return AjaxResult.error("该盘点首选项为系统配置默认选项,请删除系统配置中的选项再停用,修改失败!"); } } } cycleCountPreference.setLastUpdatedBy(ShiroUtils.getLoginName()); cycleCountPreference.setLastUpdated(new Date()); return toAjax(cycleCountPreferenceService.updateById(cycleCountPreference)); } /** * 删除盘点首选项 */ @RequiresPermissions("config:cycleCountPreference: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)) { //校验该首选项是否在使用 CycleCountPreference cycleCountPreference = cycleCountPreferenceService.getById(id); ConfigValue configValueTemp = new ConfigValue(); configValueTemp.setModuleType("cyclecount"); configValueTemp.setWarehouseCode(cycleCountPreference.getWarehouseCode()); LambdaQueryWrapper<ConfigValue> configValueLambdaQueryWrapper = Wrappers.lambdaQuery(configValueTemp); ConfigValue configValue = configValueService.getOne(configValueLambdaQueryWrapper); if(configValue != null){ if(configValue.getIdentifier().equals(cycleCountPreference.getCode())){ return AjaxResult.error("该盘点首选项为系统配置默认选项,请删除系统配置中的选项再删除,删除失败!"); } } list.add(id); } return toAjax(cycleCountPreferenceService.removeByIds(list)); } }