package com.huaheng.pc.shipment.shipmentContainerHeader.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.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; 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.Arrays; import java.util.List; /** * 出库组盘头 信息操作处理 * * @author ricard * @date 2019-08-21 */ @Controller @RequestMapping("/shipment/shipmentContainerHeader") public class ShipmentContainerHeaderController extends BaseController { @Autowired private ShipmentContainerHeaderService shipmentContainerHeaderService; private String prefix = "shipment/shipmentContainerHeader"; @RequiresPermissions("shipment:container:view") @GetMapping() public String shipmentContainerHeader() { return prefix + "/shipmentContainerHeader"; } /** * 查询出库组盘头列表 */ @RequiresPermissions("shipment:container:list") @Log(title ="出库-出库组盘", operating = "查看出库组头", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(ShipmentContainerHeader shipmentContainerHeader,String createdBegin, String createdEnd) { LambdaQueryWrapper<ShipmentContainerHeader> lambdaQueryWrapper= Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.eq(ShipmentContainerHeader::getWarehouseCode,ShiroUtils.getWarehouseCode()) .ge(StringUtils.isNotEmpty(createdBegin),ShipmentContainerHeader::getCreated, createdBegin) .le(StringUtils.isNotEmpty(createdEnd), ShipmentContainerHeader::getCreated, createdEnd) .in(ShipmentContainerHeader::getCompanyCode,ShiroUtils.getCompanyCodeList()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getShipmentCode()), ShipmentContainerHeader::getShipmentCode, shipmentContainerHeader.getShipmentCode()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getContainerCode()), ShipmentContainerHeader::getContainerCode, shipmentContainerHeader.getContainerCode()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getLocationCode()), ShipmentContainerHeader::getLocationCode, shipmentContainerHeader.getLocationCode()) .eq(StringUtils.isNotEmpty(shipmentContainerHeader.getCreatedBy()), ShipmentContainerHeader::getCreatedBy, shipmentContainerHeader.getCreatedBy()) .le(shipmentContainerHeader.getStatus()==null,ShipmentContainerHeader::getStatus,20) .eq(shipmentContainerHeader.getStatus()!=null,ShipmentContainerHeader::getStatus,shipmentContainerHeader.getStatus()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /** * 使用分页查询 */ Page<ShipmentContainerHeader> page = new Page<>(pageNum, pageSize); IPage<ShipmentContainerHeader> iPage = shipmentContainerHeaderService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(),iPage.getTotal()); } else { List<ShipmentContainerHeader> list = shipmentContainerHeaderService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增出库组盘头 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增保存出库组盘头 */ @Log(title ="出库-出库组盘", operating = "新增出库组头", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(ShipmentContainerHeader shipmentContainerHeader) { shipmentContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); shipmentContainerHeader.setCreatedBy(ShiroUtils.getLoginName()); return toAjax(shipmentContainerHeaderService.save(shipmentContainerHeader)); } /** * 修改出库组盘头 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getById(id); mmap.put("shipmentContainerHeader", shipmentContainerHeader); return prefix + "/edit"; } /** * 修改保存出库组盘头 */ @RequiresPermissions("shipment:container:edit") @Log(title ="出库-出库组盘", operating = "修改出库组头", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(ShipmentContainerHeader shipmentContainerHeader) { return toAjax(shipmentContainerHeaderService.saveOrUpdate(shipmentContainerHeader)); } /** * 删除出库组盘 */ @RequiresPermissions("shipment:container: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> IdList = Arrays.asList(Convert.toIntArray(ids)); return shipmentContainerHeaderService.cancelCombination(IdList); } /** * 生成任务 */ @RequiresPermissions("shipment:container:add") @Log(title ="出库-任务生成", operating = "批量生成任务", action = BusinessType.UPDATE) @PostMapping( "/createTask") @ResponseBody public AjaxResult createTask(String ids) { AjaxResult ajaxResult=new AjaxResult(); if (StringUtils.isEmpty(ids)) return AjaxResult.error("id不能为空"); List<Integer> idList = Arrays.asList(Convert.toIntArray(ids)); for (Integer id : idList) { //获取表头 ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getById(id); if(shipmentContainerHeader == null){ return AjaxResult.error("出库货箱id:" + id + "未找到,操作中止"); } if(shipmentContainerHeader.getStatus() > 9){ return AjaxResult.error("出库货箱编码(" + shipmentContainerHeader.getContainerCode() + ")已经生成任务,请不要重复生成,操作中止"); } } ajaxResult=shipmentContainerHeaderService.createTask(idList); return ajaxResult; } }