智慧农业后台管理
guoshilong
2022-09-17 680b380e3d9189f2bfd79fb33a6428d82219e4bc
src/main/java/org/springblade/modules/retrieval/controller/RetrievalController.java
@@ -29,8 +29,13 @@
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.InventoryLoss.entity.Inventory;
import org.springblade.modules.farmplant.entity.FarmProductStock;
import org.springblade.modules.farmplant.service.FarmProductStockService;
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.vo.SaleVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -38,6 +43,8 @@
import org.springblade.modules.retrieval.vo.RetrievalVO;
import org.springblade.modules.retrieval.service.IRetrievalService;
import org.springblade.core.boot.ctrl.BladeController;
import java.util.Date;
/**
 * 库存出库记录表 控制器
@@ -53,6 +60,7 @@
   private final IRetrievalService retrievalService;
   private final FarmProductStockService farmProductStockService;
   private final IProcessInvService processInvService;
   /**
    * 详情
@@ -121,9 +129,45 @@
         //库存充足,减去相应库存
         farmProductStockService.stockReduce(retrieval.getSaleNum(), retrieval.getProid());
      }
      retrieval.setProdId(retrieval.getProid());
      return R.status(retrievalService.saveOrUpdate(retrieval));
   }
   /**
    * 新增或修改 库存出库记录表(加工产品)
    */
   @PostMapping("/submitProcess")
   @ApiOperationSupport(order = 8)
   @ApiOperation(value = "新增或修改", notes = "传入sale")
   public R submitProcess(@Valid @RequestBody RetrievalVO retrieval) {
//      //对比加工表库存量
//      boolean res = processService.stockCompare(sale.getSaleNum(),sale.getProid());
//      if (!res){
//         throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!"));
//      }else {
//         //库存充足,减去相应库存
//         processService.stockReduce(sale.getSaleNum(),sale.getProid());
//      }
//      return R.status(saleService.saveOrUpdate(sale));
      //对比加工表库存量
      boolean res = processInvService.stockCompare(retrieval.getSaleNum(),retrieval.getProid());
      if (!res){
         throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("当前库存不足!"));
      }else {
         //库存充足,减去相应库存
         processInvService.stockReduce(retrieval.getSaleNum(),retrieval.getProid());
         //更新updateTIme 和 updateUser
         ProcessInv processInv = new ProcessInv();
         processInv.setUpdateUser(retrieval.getCreateUser());
         processInv.setUpdateTime(new Date());
         processInv.setId(Long.parseLong(retrieval.getProid()));
         ProcessInvVO processInvVO = processInvService.getLand(processInv);
         retrieval.setLandId(processInvVO.getLandId());
         processInvService.updateById(processInv);
      }
      retrieval.setProdId(retrieval.getProid());
      return R.status(retrievalService.saveOrUpdate(retrieval));
   }
   /**
    * 删除 库存出库记录表
@@ -132,11 +176,25 @@
   @ApiOperationSupport(order = 7)
   @ApiOperation(value = "逻辑删除", notes = "传入ids")
   public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
//      Retrieval retrieval = retrievalService.getById(Long.parseLong(ids));
//      FarmProductStock farmProductStock = farmProductStockService.selectBy2Id(retrieval.getStrainId(), retrieval.getLandId());
//      Double weight = Double.parseDouble(farmProductStock.getWeight())+retrieval.getSaleNum();
//      farmProductStock.setWeight(weight.toString());
//      farmProductStockService.updateById(farmProductStock);
//      return R.status(retrievalService.deleteLogic(Func.toLongList(ids)));
      Retrieval retrieval = retrievalService.getById(Long.parseLong(ids));
      FarmProductStock farmProductStock = farmProductStockService.selectBy2Id(retrieval.getStrainId(), retrieval.getLandId());
      Double weight = Double.parseDouble(farmProductStock.getWeight())+retrieval.getSaleNum();
      farmProductStock.setWeight(weight.toString());
      farmProductStockService.updateById(farmProductStock);
      if (retrieval.getType() == 0){
         FarmProductStock farmProductStock = farmProductStockService.getById(retrieval.getProdId());
         Double weight = Double.parseDouble(farmProductStock.getWeight())+retrieval.getSaleNum();
         farmProductStock.setWeight(weight.toString());
         farmProductStockService.updateById(farmProductStock);
      }else {
         ProcessInv inv = processInvService.findById(retrieval.getProdId());
         Double weight = inv.getProductInventoryNum()+retrieval.getSaleNum();
         inv.setProductInventoryNum(weight);
         processInvService.updateById(inv);
      }
      return R.status(retrievalService.deleteLogic(Func.toLongList(ids)));
   }