package com.huaheng.pc.config.points.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.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 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; @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) { LambdaQueryWrapper<Container> containerLamb = Wrappers.lambdaQuery(); containerLamb.eq(Container::getGoodsShelfNo,points.getGoodsShelfNo()) .eq(Container::getWarehouseCode,ShiroUtils.getWarehouseCode()); List<Container> containerList=containerService.list(containerLamb); for(Container item:containerList){ item.setCompanyCode(points.getCompanyCode()); if(containerService.saveOrUpdate(item) == false){ return AjaxResult.error("修改失败"); } } if(pointsService.saveOrUpdate(points) == false){ 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(); } }