| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- package com.mrxu.admin.controller.sales;
- import com.alibaba.fastjson.JSON;
- import com.mrxu.admin.controller.AdminBaseController;
- import com.mrxu.framework.boot.bean.LayuiPage;
- import com.mrxu.framework.boot.bean.PageResult;
- import com.mrxu.framework.boot.bean.ResponseObj;
- import com.mrxu.framework.common.MrxuConst;
- import com.mrxu.framework.common.util.MrxuAssert;
- import com.mrxu.sales.entity.Goods;
- import com.mrxu.sales.entity.GoodsClass;
- import com.mrxu.sales.entity.HisDrug;
- import com.mrxu.sales.entity.Supplier;
- import com.mrxu.sales.export.GoodsExport;
- import com.mrxu.sales.query.GoodsDto;
- import com.mrxu.sales.service.GoodsClassService;
- import com.mrxu.sales.service.GoodsService;
- import com.mrxu.sales.service.HisDrugService;
- import com.mrxu.sales.service.SupplierService;
- import io.swagger.annotations.Api;
- import lombok.RequiredArgsConstructor;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletResponse;
- import javax.validation.Valid;
- import java.math.BigDecimal;
- import java.util.List;
- @Api(tags = "商品管理")
- @Controller
- @RequestMapping("/sales/goods")
- @RequiredArgsConstructor(onConstructor = @__(@Autowired))
- public class GoodsController extends AdminBaseController {
- private final GoodsClassService classService;
- private final SupplierService supplierService;
- private final GoodsService goodsService;
- private final HisDrugService hisDrugService;
-
- @RequiresPermissions("sales:goods:read")
- @RequestMapping("index.html")
- public String index(Model model) {
- List<Supplier> supplierList = supplierService.list(getTenantId());
- model.addAttribute("supplierJson", JSON.toJSONString(supplierList));
- model.addAttribute("supplierList",supplierList);
- return "sales/goods.html";
- }
-
- @RequiresPermissions("sales:goods:read")
- @ResponseBody
- @RequestMapping("/page.json")
- public LayuiPage<Goods> page(GoodsDto queryDto) {
- PageResult<Goods> rs = goodsService.page(getTenantId(),queryDto);
- return renderLayuiPage(rs);
- }
- @RequiresPermissions("sales:goods:read")
- @ResponseBody
- @RequestMapping("/export.json")
- public void export(HttpServletResponse response, GoodsDto queryDto) {
- queryDto.setPageSize(MrxuConst.MAX_PAGE_SIZE);
- export(response,"药品", GoodsExport.class,goodsService.export(getTenantId(),queryDto));
- }
- @RequiresPermissions("sales:goods:read")
- @ResponseBody
- @RequestMapping("/classList.json")
- public ResponseObj<List<GoodsClass>> classList() {
- return success(classService.list(getTenantId(),null));
- }
- @RequiresPermissions("sales:goods:read")
- @ResponseBody
- @RequestMapping("/getById.json")
- public ResponseObj<Goods> getById(Integer id) {
- return success(goodsService.getById(getTenantId(),id));
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/save.json")
- public ResponseObj<Boolean> save(@Valid @RequestBody Goods bean) {
- if(bean.getStatus() == null) {
- bean.setStatus(MrxuConst.disable);
- }
- if(bean.getSellOut() == null) {
- bean.setSellOut(MrxuConst.disable);
- }
- return success(goodsService.saveOrUpdate(getTenantId(),bean,getUsername()));
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/updateStatus.json")
- public ResponseObj<Boolean> updateStatus(Integer id, Integer status) {
- Goods bean = new Goods();
- bean.setId(id);
- bean.setStatus(status);
- return success(goodsService.saveOrUpdate(getTenantId(),bean,getUsername()));
- }
- @RequiresPermissions("sales:goods:remove")
- @ResponseBody
- @RequestMapping("/remove.json")
- public ResponseObj<Boolean> remove(Integer id) {
- return success(goodsService.remove(getTenantId(),id));
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/classSave.json")
- public ResponseObj<Boolean> classSave(@Valid @RequestBody GoodsClass bean) {
- if(bean.getStatus() == null) {
- bean.setStatus(MrxuConst.disable);
- }
- MrxuAssert.isFalse(bean.getParentId().equals(bean.getId()),"父节点不能是自己");
- GoodsClass exist = classService.getByKey(getTenantId(),"name",bean.getName());
- MrxuAssert.isTrue(exist == null || exist.getId().equals(bean.getId()),
- "【"+bean.getName()+"】已存在");
- return success(classService.saveOrUpdate(getTenantId(),bean,getUsername()));
- }
- @RequiresPermissions("sales:goods:remove")
- @ResponseBody
- @RequestMapping("/removeClass.json")
- public ResponseObj<Boolean> removeClass(Integer id) {
- return success(classService.remove(getTenantId(),id));
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/downloadTemplate.json")
- public void downloadTemplate(HttpServletResponse response) {
- downloadFile(response,"药品导入模版.xlsx");
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/importGoods.json")
- public ResponseObj<Object> importGoods(@RequestParam("file") MultipartFile file) {
- goodsService.importGoods(getTenantId(),file,getUsername());
- return success();
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/getSystemDrug.json")
- public ResponseObj<HisDrug> getSystemDrug(String barcode) {
- return success(hisDrugService.getByBarcode(barcode));
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/batchSet.json")
- public ResponseObj<Object> batchSet(BigDecimal minStock,BigDecimal maxStock) {
- goodsService.batchSet(getTenantId(),minStock,maxStock);
- return success();
- }
- @RequiresPermissions("sales:goods:update")
- @ResponseBody
- @RequestMapping("/stocktaking.json")
- public ResponseObj<Object> stocktaking(Integer id,BigDecimal newStock) {
- goodsService.stocktaking(getTenantId(),id,newStock,getUsername());
- return success();
- }
- @RequiresPermissions("sales:goods:remove")
- @ResponseBody
- @RequestMapping("/updateSupperName.json")
- public ResponseObj<Object> temp() {
- List<Goods> list = goodsService.list();
- for(Goods goods : list) {
- goods.setSupplierName(supplierService.getNamesByIds(goods.getTenantId(),goods.getSupplierId()));
- goodsService.updateById(goods);
- }
- return success();
- }
- }
|