package com.huaheng.pc.config.bom.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.bom.domain.BomDetail; import com.huaheng.pc.config.bom.service.BomDetailService; import com.huaheng.pc.config.material.domain.Material; import com.huaheng.pc.config.material.service.MaterialService; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; 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.List; @Controller @RequestMapping("/config/bomDetail") public class BomDetailController extends BaseController { private String prefix = "config/bomDetail"; @Resource private BomDetailService bomDetailService; @Resource private MaterialService materialService; @RequiresPermissions("config:bomHeader:view") @Log(title = "管理-推送详情列表", operating = "推送详情列表", action = BusinessType.GRANT) @GetMapping("/list/{id}") public String list(@PathVariable("id")Integer id, ModelMap mmap) { mmap.put("bomHeaderId",id); return prefix+"/bomDetail"; } /** * 查询商品详情 */ @ApiOperation(value="查看商品列表", notes="根据商品id获取商品详情信息", httpMethod = "POST") @RequiresPermissions("config:bomHeader:list") @Log(title = "通用-商品管理", operating = "查看商品列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(@ApiParam(name="bomId",value="商品ID") Integer bomId) { LambdaQueryWrapper<BomDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.eq(BomDetail::getBomId, bomId); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /*使用分页查询*/ Page<BomDetail> page = new Page<>(pageNum, pageSize); IPage<BomDetail> iPage = bomDetailService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<BomDetail> list = bomDetailService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增商品详情 */ @GetMapping("/add/{id}") public String add(@PathVariable("id") Integer id, ModelMap modelMap) { modelMap.put("id",id); return prefix + "/add"; } /** * 新增保存商品 */ @ApiOperation(value="新增商品详情", notes="新增商品详情", httpMethod = "POST") @RequiresPermissions("config:bomDetail:add") @Log(title = "通用-商品", operating = "新增商品", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(@ApiParam(name = "containerType", value = "商品详情", required = true) BomDetail bomDetail) { LambdaQueryWrapper<Material> lamdba = Wrappers.lambdaQuery(); lamdba.eq(Material::getCode, bomDetail.getMaterialCode()); Material material = materialService.getOne(lamdba); if ( material == null){ return AjaxResult.error("不存在物料编码"+bomDetail.getMaterialCode()); } else { bomDetail.setCompanyCode(material.getCompanyCode()); bomDetail.setWarehouseCode(material.getWarehouseCode()); bomDetail.setMaterialCode(material.getCode()); bomDetail.setMaterialName(material.getName()); bomDetail.setMaterialUnit(material.getUnit()); bomDetail.setCreatedBy(ShiroUtils.getLoginName()); bomDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); } return toAjax(bomDetailService.save(bomDetail)); } /** * 修改商品详情 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("bomDetail", bomDetailService.getById(id)); return prefix + "/edit"; } /** * 修改保存商品详情 */ @ApiOperation(value="修改商品详情", notes="修改商品详情", httpMethod = "POST") @RequiresPermissions("config:BomDetail:edit") @Log(title = "通用-商品详情", operating = "修改商品详情", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave( @ApiParam(name = "BomDetail", value = "商品详情实体类", required = true)BomDetail bomDetail) { return toAjax(bomDetailService.updateById(bomDetail)); } /** * 删除商品详情 */ @ApiOperation(value="删除商品详情", notes="根据id批量删除商品详情,参数示例1,2,3", httpMethod = "POST") @RequiresPermissions("config:BomDetail: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(bomDetailService.removeByIds(list)); } }