package com.huaheng.pc.config.company.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.exception.service.ServiceException; 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.company.domain.Company; import com.huaheng.pc.config.company.service.CompanyService; import com.huaheng.pc.config.warehouse.domain.Warehouse; import com.huaheng.pc.config.warehouse.service.WarehouseService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Map; @Controller @RequestMapping("/config/company") public class CompanyController extends BaseController { @Resource private CompanyService companyService; @Resource private WarehouseService warehouseService; private String prefix = "config/company"; @RequiresPermissions("config:company:view") @GetMapping() public String company() { return prefix + "/company"; } /** * 查询货主列表 */ @RequiresPermissions("config:company:list") @Log(title = "配置-库存资料-货主管理", operating = "查看货主列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list(Company company, String createdBegin, String createdEnd) { LambdaQueryWrapper<Company> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), Company::getCreated, createdBegin) .lt(StringUtils.isNotEmpty(createdEnd), Company::getCreated, createdEnd) .eq(Company::getWarehouseCode,ShiroUtils.getWarehouseCode()) .like(StringUtils.isNotNull(company.getCode())&&StringUtils.isNotEmpty(company.getCode()), Company::getCode, company.getCode()) .like(StringUtils.isNotNull(company.getCode())&&StringUtils.isNotEmpty(company.getName()), Company::getName, company.getName()) .eq(Company::getDeleted,false) .orderByDesc(Company::getId); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /** * 使用分页查询 */ Page<Company> page = new Page<>(pageNum, pageSize); IPage<Company> iPage = companyService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<Company> list = companyService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增货主 */ @GetMapping("/add") public String add(ModelMap modelMap) { /*LambdaQueryWrapper<Warehouse> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.select(Warehouse::getCode,Warehouse::getName,Warehouse::getEnable); List<Map<String, Object>> warehouseList = warehouseService.listMaps(lambdaQueryWrapper); for (Map<String, Object> item : warehouseList){ item.put("value",item.get("code").toString()); } modelMap.put("warehouseList",warehouseList);*/ return prefix + "/add"; } /** * 新增保存货主 */ @RequiresPermissions("config:company:add") @Log(title = "配置-库存资料-货主管理", operating = "新增货主", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(Company company) { if(StringUtils.isEmpty(company.getCode()) && StringUtils.isEmpty(company.getName())){ return AjaxResult.error("货主编码和名称不能为空!"); } company.setWarehouseCode(ShiroUtils.getWarehouseCode()); company.setCreated(new Date()); company.setCreatedBy(ShiroUtils.getLoginName()); company.setLastUpdated(new Date()); company.setLastUpdatedBy(ShiroUtils.getLoginName()); return companyService.addCompany(company); } /** * 修改货主 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { Company company = companyService.getById(id); mmap.put("company", company); mmap.put("warehouseList",warehouseService.getWarehouseList(id)); return prefix + "/edit"; } /** * 修改保存货主 */ @RequiresPermissions("config:company:edit") @Log(title = "配置-库存资料-货主管理", operating = "修改货主", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(Company company) { company.setLastUpdated(new Date()); company.setLastUpdatedBy(ShiroUtils.getLoginName()); return companyService.updateCompany(company); } /** * 删除货主 */ @RequiresPermissions("config:company:remove") @Log(title = "配置-库存资料-货主管理", operating ="删除货主", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody @Transactional public AjaxResult remove(String ids) { if (StringUtils.isEmpty(ids)){ return AjaxResult.error("id不能为空"); } for (Integer id : Convert.toIntArray(ids)){ Company company = new Company(); company.setId(id); company.setDeleted(true); company.setLastUpdatedBy(ShiroUtils.getLoginName()); companyService.updateById(company); } return AjaxResult.success("删除成功!"); // List<Integer> idList = Arrays.asList(Convert.toIntArray(ids)); // return toAjax(companyService.removeByIds(idList)); } @PostMapping( "/findByWarehouseCode") @ResponseBody @Transactional public TableDataInfo findByWarehouseCode(String warehouseCode) { List<Company> companyList = companyService.findByWarehouseCode(warehouseCode); return getDataTable(companyList); } }