package com.huaheng.pc.config.points.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.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.company.domain.Company; import com.huaheng.pc.config.company.service.CompanyService; import com.huaheng.pc.config.container.domain.Container; import com.huaheng.pc.config.container.service.ContainerService; import com.huaheng.pc.config.points.domain.Points; import com.huaheng.pc.config.points.service.PointsService; import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; 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.List; /** * 货架 信息操作处理 * * @author huaheng * @date 2019-07-11 */ @Controller @RequestMapping("/config/point") public class PointController extends BaseController { private String prefix = "config/point"; @Autowired private PointsService pointsService; @Autowired private CompanyService companyService; @Autowired private ContainerService containerService; @Autowired private InventoryDetailService inventoryDetailService; @RequiresPermissions("config:point:view") @GetMapping() public String point() { return prefix + "/point"; } /** * 查询货架列表 */ @RequiresPermissions("config:point:list") @Log(title = "配置-货架设置", operating = "货架查看列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(Points points) { LambdaQueryWrapper<Points> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper .eq(StringUtils.isNotEmpty(points.getGoodsShelfNo()), Points::getGoodsShelfNo, points.getGoodsShelfNo()) .eq(StringUtils.isNotEmpty(points.getCompanyCode()),Points::getCompanyCode, points.getCompanyCode()) .eq(Points::getWarehouseCode, ShiroUtils.getWarehouseCode()); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /*使用分页查询*/ Page<Points> page = new Page<>(pageNum, pageSize); IPage<Points> iPage = pointsService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<Points> list = pointsService.list(lambdaQueryWrapper); list.forEach(t->{ LambdaQueryWrapper<Company> companyLamb = Wrappers.lambdaQuery(); companyLamb.eq(Company::getCode,t.getCompanyCode()); Company company= companyService.getOne(companyLamb); if(company!=null) { t.setCompanyName(company.getName()); } }); return getDataTable(list); } } /** * 修改货架 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { Points points = pointsService.getById(id); mmap.put("points", points); return prefix + "/edit"; } /** * 修改保存货架 */ @RequiresPermissions("config:point:edit") @Log(title = "配置-货架设置", operating = "修改货架", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(Points points) { Points points1 =new Points(); points1.setWarehouseCode(ShiroUtils.getWarehouseCode()); points1.setGoodsShelfNo(points.getGoodsShelfNo()); points1=pointsService.selectEntity(points1); Company company=new Company(); if(StringUtils.isNotEmpty(points.getCompanyCode())){ company.setCode(points.getCompanyCode()); company=companyService.getByDomainOne(company); points1.setCompanyCode(company.getCode()); points1.setCompanyId(company.getId()); if(StringUtils.isNotEmpty(points.getUWarehouseCode())) { points1.setUWarehouseCode(points.getUWarehouseCode()); } } points1.setIsLocked(points.getIsLocked()); if(StringUtils.isNotEmpty(points.getUWarehouseCode()) && StringUtils.isNotEmpty(points.getCompanyCode())) { Container container = new Container(); container.setGoodsShelfNo(points.getGoodsShelfNo()); List<Container> containerList = containerService.selectListEntityByEqual(container); for (Container item : containerList) { item.setCompanyCode(points.getCompanyCode()); item.setUWarehouseCode(points.getUWarehouseCode()); if (!containerService.updateById(item)) { return AjaxResult.error("修改失败"); } } InventoryDetail inventory = new InventoryDetail(); InventoryDetail inventory1 =new InventoryDetail(); inventory.setCompanyCode(points.getCompanyCode()); inventory.setUWarehouseCode(points.getUWarehouseCode()); inventory1.setGoodsShelfNo(points.getGoodsShelfNo()); inventoryDetailService.updateByCondition(inventory,inventory1); } if(!pointsService.updateById(points1)){ return AjaxResult.error("修改失败"); } return AjaxResult.success("修改成功"); } /** * 恢复货架状态 */ @RequiresPermissions("config:point:edit") @Log(title = "配置-货架设置", operating = "恢复货架状态", action = BusinessType.UPDATE) @PostMapping("/restore") @ResponseBody public AjaxResult restore(){ if(pointsService.updateAll() >0){ return AjaxResult.success("货架状态恢复成功"); }else { return AjaxResult.error("失败"); } } /** * 检测货架装货状态 */ @RequiresPermissions("config:point:edit") @Log(title = "配置-货架设置", operating = "检测货架装货状态", action = BusinessType.UPDATE) @PostMapping("/detectShelf") @ResponseBody public AjaxResult detectShelf(){ return pointsService.detectShelf(); } }