123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- package com.ozs.web.controller.base;
- import com.alibaba.excel.EasyExcel;
- import com.alibaba.excel.ExcelWriter;
- import com.alibaba.excel.write.metadata.WriteSheet;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ozs.base.domain.vo.BaseSupplierVo;
- import com.ozs.common.annotation.Log;
- import com.ozs.common.constant.ModularConstans;
- import com.ozs.common.core.controller.BaseController;
- import com.ozs.common.core.domain.AjaxResult;
- import com.ozs.common.core.domain.model.LoginUser;
- import com.ozs.common.core.page.TableDataInfo;
- import com.ozs.common.enums.BusinessType;
- import com.ozs.common.exception.base.BaseException;
- import com.ozs.common.utils.StringUtils;
- import com.ozs.base.domain.BaseSupplier;
- import com.ozs.base.service.BaseSupplierService;
- import com.ozs.common.utils.poi.ExcelUtil;
- import com.ozs.framework.web.service.TokenService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * 供应商管理
- *
- * @author sunhh
- */
- @Api(tags = "供应商管理")
- @Slf4j
- @RestController
- @RequestMapping("/base/supplier")
- public class BaseSupplierController extends BaseController {
- @Autowired
- private BaseSupplierService baseSupplierService;
- @Autowired
- private TokenService tokenService;
- @ApiOperation(value = "新增供应商户", notes = "")
- @PostMapping("/insertBaseSupplier")
- @PreAuthorize("@ss.hasPermi('base:supplier:insertBaseSupplier')")
- @Log(title = ModularConstans.supplier, businessType = BusinessType.INSERT)
- public AjaxResult insertBaseSupplier(@RequestBody BaseSupplier baseSupplier, HttpServletRequest request) {
- if (StringUtils.isNull(baseSupplier) || StringUtils.isNull(baseSupplier.getSupplierName())) {
- return error("供应商名称不能为空");
- }
- //获取登录人
- LoginUser loginUser = tokenService.getLoginUser(request);
- baseSupplier.setCreated(String.valueOf(loginUser.getUserId()));
- baseSupplier.setCreateTime(new Date());
- // 默认白名单
- if (StringUtils.isNull(baseSupplier.getSupplierState())) {
- baseSupplier.setSupplierState("1");
- }
- return baseSupplierService.insertBaseSupplier(baseSupplier);
- }
- @ApiOperation(value = "导入供应商数据")
- @PostMapping("/importData")
- @PreAuthorize("@ss.hasPermi('base:supplier:importData')")
- @Log(title = ModularConstans.expert, businessType = BusinessType.INSERT)
- public AjaxResult importData(MultipartFile file) throws Exception {
- ExcelUtil<BaseSupplierVo> util = new ExcelUtil<>(BaseSupplierVo.class);
- List<BaseSupplierVo> suppliers = util.importExcel(file.getInputStream(), 1);
- LoginUser loginUser = getLoginUser();
- String message = baseSupplierService.importBaseSuppliers(suppliers, loginUser);
- return success(message);
- }
- @ApiOperation(value = "删除供应商户", notes = "必传ID")
- @PostMapping("/deleteBaseSupplier")
- @PreAuthorize("@ss.hasPermi('base:supplier:deleteBaseSupplier')")
- @Log(title = ModularConstans.supplier, businessType = BusinessType.DELETE)
- public AjaxResult deleteBaseSupplier(@RequestBody BaseSupplier baseSupplier) {
- if (StringUtils.isNull(baseSupplier) || StringUtils.isNull(baseSupplier.getId())) {
- return error("删除ID不能为空");
- }
- return toAjax(baseSupplierService.deleteBaseSupplier(baseSupplier.getId()));
- }
- @ApiOperation(value = "修改供应商户", notes = "必传ID及修改字段")
- @PostMapping("/updateBaseSupplier")
- @PreAuthorize("@ss.hasPermi('base:supplier:updateBaseSupplier')")
- @Log(title = ModularConstans.supplier, businessType = BusinessType.UPDATE)
- public AjaxResult updateBaseSupplier(@RequestBody BaseSupplier baseSupplier, HttpServletRequest request) {
- if (StringUtils.isNull(baseSupplier) || StringUtils.isNull(baseSupplier.getId())) {
- return error("修改数据及ID不能为空");
- }
- //获取登录人
- LoginUser loginUser = tokenService.getLoginUser(request);
- baseSupplier.setUpdated(String.valueOf(loginUser.getUserId()));
- baseSupplier.setUpdateTime(new Date());
- return toAjax(baseSupplierService.updateBaseSupplier(baseSupplier));
- }
- @ApiOperation(value = "预先采购开关", notes = "必传id,supplierAdvancePurchase 其他字段不传; 关闭传0,开启传1")
- @PostMapping("/updateBaseSupplierAdvancePurchase")
- public AjaxResult updateBaseSupplierAdvancePurchase(@RequestBody BaseSupplier baseSupplier) {
- if (StringUtils.isNull(baseSupplier) || StringUtils.isNull(baseSupplier.getId())
- || StringUtils.isNull(baseSupplier.getSupplierAdvancePurchase())) {
- return error("预先采购及ID不能为空");
- }
- return toAjax(baseSupplierService.updateBaseSupplier(baseSupplier));
- }
- @ApiOperation(value = "黑白名单开关", notes = "必传id,supplierState 其他字段不传; 黑名单传0,白名单传1")
- @PostMapping("/updateSupplierType")
- @PreAuthorize("@ss.hasPermi('base:supplier:updateSupplierType')")
- @Log(title = ModularConstans.supplier, businessType = BusinessType.UPDATE)
- public AjaxResult updateSupplierType(@RequestBody BaseSupplier baseSupplier) {
- if (StringUtils.isNull(baseSupplier) || StringUtils.isNull(baseSupplier.getId())
- || StringUtils.isNull(baseSupplier.getSupplierState())) {
- return error("状态及ID不能为空");
- }
- return toAjax(baseSupplierService.updateBaseSupplier(baseSupplier));
- }
- @ApiOperation(value = "查询供应商户", notes = "非必传 查询条件:供应商名称,供应商类型,供应商状态,预先采购状态")
- @PostMapping("/selectBaseSupplier")
- @PreAuthorize("@ss.hasPermi('base:supplier:selectBaseSupplier')")
- @Log(title = ModularConstans.supplier, businessType = BusinessType.QUERY)
- public AjaxResult selectBaseSupplier(@RequestBody BaseSupplierVo baseSupplierVo) {
- // List<BaseSupplier> baseSupplierList = baseSupplierService.selectBaseSupplier(baseSupplier);
- // return getDataTable(baseSupplierList);
- LambdaQueryWrapper<BaseSupplier> lw = new LambdaQueryWrapper<BaseSupplier>();
- if (!StringUtils.isBlank(baseSupplierVo.getSupplierName())) {
- lw.like(BaseSupplier::getSupplierName, "%" + baseSupplierVo.getSupplierName() + "%");
- }
- if (!StringUtils.isBlank(baseSupplierVo.getSupplierState())) {
- lw.eq(BaseSupplier::getSupplierState, baseSupplierVo.getSupplierState());
- }
- if (!StringUtils.isBlank(baseSupplierVo.getSupplierAdvancePurchase())) {
- lw.eq(BaseSupplier::getSupplierAdvancePurchase, baseSupplierVo.getSupplierAdvancePurchase());
- }
- IPage<BaseSupplier> page = baseSupplierService.page(new Page<BaseSupplier>(baseSupplierVo.getPageNum(), baseSupplierVo.getPageSize()), lw);
- return success(page);
- }
- @ApiOperation("模板下载")
- @GetMapping("/downloaExcel")
- public void downloadZip(HttpServletResponse response) {
- List<BaseSupplierVo> list = new ArrayList<BaseSupplierVo>();
- list.add(new BaseSupplierVo("河南移动", "张先生", "河南-张家口"
- , "101019", "张老二", "1512626****",
- "张**", "中国建设银行", "2525********", "是"
- ));
- list.add(new BaseSupplierVo("河北不动", "刘先生", "河北-林泉县",
- "144030", "李老三", "1775959****",
- "刘**", "中原银行", "3366*********", "否"
- ));
- InputStream resourceAsStream = this.getClass().getResourceAsStream("/template/base_supplier.xlsx");
- OutputStream outputStream = null;
- try {
- response.setContentType("application/vnd.ms-excel");
- response.setCharacterEncoding("utf-8");
- // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
- String fileName = URLEncoder.encode("供应商信息(模板)", "UTF-8").replaceAll("\\+", "%20");
- response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
- outputStream = response.getOutputStream();
- ExcelWriter excelWriter = EasyExcel.write(outputStream)
- .withTemplate(resourceAsStream).autoCloseStream(true).build();
- WriteSheet writeSheet = EasyExcel.writerSheet().build();
- excelWriter.fill(list, writeSheet);
- excelWriter.finish();
- outputStream.flush();
- outputStream.close();
- } catch (Exception e) {
- log.error(e.getMessage());
- throw new BaseException("下载异常");
- }
- }
- }
|