package com.huaheng.pc.config.waveFlowDetail.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.waveFlowDetail.domain.WaveFlowDetail; import com.huaheng.pc.config.waveFlowDetail.service.WaveFlowDetailService; import com.huaheng.pc.config.waveFlowHeader.domain.WaveFlowHeader; import com.huaheng.pc.config.waveFlowHeader.service.WaveFlowHeaderService; import io.swagger.annotations.Api; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 波次流明细 * @author ricard * @date 19.8.26 * */ @Api(tags={"波次流明细"}) @Controller @RequestMapping("/config/waveFlowDetail") public class WaveFlowDetailController extends BaseController { private String prefix = "config/waveFlowDetail"; @Autowired private WaveFlowDetailService waveFlowDetailService; @Autowired private WaveFlowHeaderService waveFlowHeaderService; @RequiresPermissions("config:waveFlowDetail:view") @GetMapping("/list/{headerId}") public String waveFlowDetail(@PathVariable("id")Integer headerId, ModelMap mmap) { mmap.put("headerId",headerId); return prefix + "/waveFlowDetail"; } /** * 查询波次流明细 */ @RequiresPermissions("config:waveFlowDetail:list") @Log(title = "出库-波次流明细", operating="查看波次流明细", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(WaveFlowDetail waveFlowDetail, String createdBegin, String createdEnd) { LambdaQueryWrapper<WaveFlowDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), WaveFlowDetail::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), WaveFlowDetail::getCreated, createdEnd) .eq(WaveFlowDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /** * 使用分页查询 */ Page<WaveFlowDetail> page = new Page<>(pageNum, pageSize); IPage<WaveFlowDetail> iPage = waveFlowDetailService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(),iPage.getTotal()); } else { List<WaveFlowDetail> list = waveFlowDetailService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增波次流明细 */ @GetMapping("/add/{headerId}") public String add(@PathVariable("headerId")Integer headerId, ModelMap mmap) { mmap.put("headerId",headerId); return prefix + "/add"; } /** * 新增波次流明细 */ @RequiresPermissions("config:waveFlowDetail:add") @Log(title = "配置-波次流明细", operating = "新增波次流明细", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(WaveFlowDetail waveFlowDetail){ //查找波次流主表 WaveFlowHeader waveFlowHeader=waveFlowHeaderService.getById(waveFlowDetail.getHeaderId()); if(waveFlowHeader == null){ return AjaxResult.error("找不到对应的波次流主表"); } waveFlowDetail.setWaveFlowCode(waveFlowHeader.getCode()); waveFlowDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); waveFlowDetail.setCreatedBy(ShiroUtils.getLoginName()); waveFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(waveFlowDetailService.save(waveFlowDetail)); } /** * 修改波次流明细 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("waveFlowDetail", waveFlowDetailService.getById(id)); return prefix + "/edit"; } /** * 修改波次流明细 */ @RequiresPermissions("config:waveFlowDetail:edit") @Log(title = "通用-波次流明细", operating = "修改波次流明细", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(WaveFlowDetail waveFlowDetail) { waveFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(waveFlowDetailService.updateById(waveFlowDetail)); } /** * 删除波次流明细 */ @RequiresPermissions("config:waveFlowDetail: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(waveFlowDetailService.removeByIds(list)); } }