| | |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springblade.modules.farmplant.entity.FarmProductStock; |
| | | import org.springblade.modules.farmplant.service.FarmProductStockService; |
| | | import org.springblade.modules.InventoryLoss.entity.Inventory; |
| | | import org.springblade.modules.InventoryLoss.service.InventoryService; |
| | | import org.springblade.modules.InventoryLoss.vo.InventoryVO; |
| | | import org.springblade.modules.process.service.IProcessService; |
| | | import org.springblade.modules.processInv.entity.ProcessInv; |
| | | import org.springblade.modules.processInv.service.IProcessInvService; |
| | | import org.springblade.modules.processInv.vo.ProcessInvVO; |
| | | import org.springblade.modules.sale.entity.Sale; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 库存损耗记录表 控制器 |
| | |
| | | |
| | | private final InventoryService inventoryService; |
| | | private final FarmProductStockService farmProductStockService; |
| | | |
| | | // private final IProcessService processService; |
| | | private final IProcessInvService processInvService; |
| | | /** |
| | | * 详情 |
| | | */ |
| | | @GetMapping("/detail") |
| | | @ApiOperationSupport(order = 1) |
| | | @ApiOperation(value = "详情", notes = "传入sale") |
| | | @ApiOperation(value = "详情", notes = "传入inventory") |
| | | public R<Inventory> detail(Inventory inventory) { |
| | | Inventory detail = inventoryService.getOne(Condition.getQueryWrapper(inventory)); |
| | | return R.data(detail); |
| | |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "分页", notes = "传入sale") |
| | | @ApiOperation(value = "分页", notes = "传入inventory") |
| | | public R<IPage<Inventory>> list(Inventory inventory, Query query) { |
| | | IPage<Inventory> pages = inventoryService.page(Condition.getPage(query), Condition.getQueryWrapper(inventory)); |
| | | return R.data(pages); |
| | |
| | | */ |
| | | @GetMapping("/page") |
| | | @ApiOperationSupport(order = 3) |
| | | @ApiOperation(value = "分页", notes = "传入sale") |
| | | @ApiOperation(value = "分页", notes = "传入inventory") |
| | | public R<IPage<InventoryVO>> page(InventoryVO inventory, Query query) { |
| | | IPage<InventoryVO> pages = inventoryService.selectSalePage(Condition.getPage(query), inventory); |
| | | return R.data(pages); |
| | |
| | | */ |
| | | @PostMapping("/save") |
| | | @ApiOperationSupport(order = 4) |
| | | @ApiOperation(value = "新增", notes = "传入sale") |
| | | @ApiOperation(value = "新增", notes = "传入inventory") |
| | | public R save(@Valid @RequestBody Inventory inventory) { |
| | | return R.status(inventoryService.save(inventory)); |
| | | } |
| | |
| | | */ |
| | | @PostMapping("/update") |
| | | @ApiOperationSupport(order = 5) |
| | | @ApiOperation(value = "修改", notes = "传入sale") |
| | | @ApiOperation(value = "修改", notes = "传入inventory") |
| | | public R update(@Valid @RequestBody Inventory inventory) { |
| | | return R.status(inventoryService.updateById(inventory)); |
| | | } |
| | |
| | | */ |
| | | @PostMapping("/submit") |
| | | @ApiOperationSupport(order = 6) |
| | | @ApiOperation(value = "新增或修改", notes = "传入sale") |
| | | @ApiOperation(value = "新增或修改", notes = "传入inventory") |
| | | public R submit(@Valid @RequestBody InventoryVO inventory) { |
| | | boolean res = farmProductStockService.stockCompare(inventory.getSaleNum(),inventory.getProid()); |
| | | if (!res){ |
| | |
| | | //库存充足,减去相应库存 |
| | | farmProductStockService.stockReduce(inventory.getSaleNum(),inventory.getProid()); |
| | | } |
| | | inventory.setProdId(inventory.getProid()); |
| | | return R.status(inventoryService.saveOrUpdate(inventory)); |
| | | } |
| | | |
| | | /** |
| | | * 新增或修改 库存损耗记录表(加工产品) |
| | | */ |
| | | @PostMapping("/submitProcess") |
| | | @ApiOperationSupport(order = 8) |
| | | @ApiOperation(value = "新增或修改", notes = "传入inventory") |
| | | public R submitProcess(@Valid @RequestBody InventoryVO inventory) { |
| | | // boolean res = processService.stockCompare(inventory.getSaleNum(),inventory.getProid()); |
| | | // if (!res){ |
| | | // throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!")); |
| | | // }else { |
| | | // //库存充足,减去相应库存 |
| | | // processService.stockReduce(inventory.getSaleNum(),inventory.getProid()); |
| | | // } |
| | | // return R.status(inventoryService.saveOrUpdate(inventory)); |
| | | boolean res = processInvService.stockCompare(inventory.getSaleNum(),inventory.getProid()); |
| | | if (!res){ |
| | | throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!")); |
| | | }else { |
| | | //库存充足,减去相应库存 |
| | | processInvService.stockReduce(inventory.getSaleNum(),inventory.getProid()); |
| | | //更新updateTIme 和 updateUser |
| | | ProcessInv processInv = new ProcessInv(); |
| | | processInv.setUpdateUser(inventory.getCreateUser()); |
| | | processInv.setUpdateTime(new Date()); |
| | | processInv.setId(Long.parseLong(inventory.getProid())); |
| | | ProcessInvVO processInvVO = processInvService.getLand(processInv); |
| | | inventory.setLandId(processInvVO.getLandId()); |
| | | processInvService.updateById(processInv); |
| | | } |
| | | inventory.setProdId(inventory.getProid()); |
| | | return R.status(inventoryService.saveOrUpdate(inventory)); |
| | | } |
| | | |
| | | /** |
| | | * 删除 库存损耗记录表 |
| | |
| | | @ApiOperationSupport(order = 7) |
| | | @ApiOperation(value = "逻辑删除", notes = "传入ids") |
| | | public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { |
| | | Inventory inventory = inventoryService.getById(Long.parseLong(ids)); |
| | | if (inventory.getType() == 0){ |
| | | FarmProductStock farmProductStock = farmProductStockService.getById(inventory.getProdId()); |
| | | Double weight = Double.parseDouble(farmProductStock.getWeight())+inventory.getSaleNum(); |
| | | farmProductStock.setWeight(weight.toString()); |
| | | farmProductStockService.updateById(farmProductStock); |
| | | }else { |
| | | ProcessInv inv = processInvService.findById(inventory.getProdId()); |
| | | Double weight = inv.getProductInventoryNum()+inventory.getSaleNum(); |
| | | inv.setProductInventoryNum(weight); |
| | | processInvService.updateById(inv); |
| | | } |
| | | return R.status(inventoryService.deleteLogic(Func.toLongList(ids))); |
| | | } |
| | | |