智慧农业后台管理
guoshilong
2022-11-08 72b971c98c46531064d74b68fc8fe8864ed0b544
src/main/java/org/springblade/modules/farm/controller/FarmingRecordController.java
@@ -29,15 +29,27 @@
import org.springblade.modules.farm.entity.FarmingRecord;
import org.springblade.modules.farm.service.FarmingRecordService;
import org.springblade.modules.farm.vo.FarmingRecordVO;
import org.springblade.modules.farmplant.entity.Strain;
import org.springblade.modules.farmplant.service.StrainService;
import org.springblade.modules.soldr.entity.Soldr;
import org.springblade.modules.soldr.service.ISoldrService;
import org.springblade.modules.soldrecord.service.ISoldrecordService;
import org.springblade.modules.stockfactory.entity.Stockfactory;
import org.springblade.modules.stockfactory.service.IStockfactoryService;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * 农事记录控制器
 * @since 2022-05-13
 *
 * @author zhongrj
 * @since 2022-05-13
 */
@RestController
@AllArgsConstructor
@@ -45,7 +57,10 @@
public class FarmingRecordController extends BladeController {
   private final FarmingRecordService farmService;
   private final ISoldrService soldrService;
   private final ISoldrecordService soldrecordService;
   private final IStockfactoryService stockfactoryService;
   private final StrainService strainService;
   /**
    * 详情
    */
@@ -55,6 +70,16 @@
   public R<FarmingRecord> detail(FarmingRecord farm) {
      FarmingRecord detail = farmService.getOne(Condition.getQueryWrapper(farm));
      return R.data(detail);
   }
   /**
    * 获取农事记录详情带中文
    * @param farmingRecordVO
    * @return
    */
   @GetMapping("/details")
   public R details(FarmingRecordVO farmingRecordVO){
      return R.data(farmService.getDetails(farmingRecordVO));
   }
   /**
@@ -79,14 +104,93 @@
      return R.data(pages);
   }
   @GetMapping("/pageNz")
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "分页", notes = "传入farm")
   public R<IPage<FarmingRecordVO>> pageNz(FarmingRecordVO farm, Query query) {
      IPage<FarmingRecordVO> pages = farmService.selectFarmingRecordPageByNz(Condition.getPage(query), farm);
      return R.data(pages);
   }
   /**
    * 查询农事操作记录(不分页)
    * @param farm
    * @return
    */
   @GetMapping("/getFarmingRecordList")
   public R getFarmingRecordList(FarmingRecordVO farm) {
      return R.data(farmService.getFarmingRecordListfarm(farm));
   }
   /**
    * 新增
    */
   @PostMapping("/save")
   @ApiOperationSupport(order = 4)
   @ApiOperation(value = "新增", notes = "传入farm")
   public R save(@Valid @RequestBody FarmingRecord farm) {
   public R save(@Valid @RequestBody FarmingRecordVO farm) {
      //通过已出资农资id查询已出农资详情
      Soldr soldr = new Soldr();
      farm.setCreateTime(new Date());
      if (farm.getStockId() != "") {
         Long id = Long.valueOf(farm.getStockId());
         soldr.setId(id);
         //返回已出农资详情
         Soldr detail = soldrService.getOne(Condition.getQueryWrapper(soldr));
         //统计公斤
         Integer specsValue1 = detail.getSpecsVal1();
         String specs1 = detail.getSpecs1();
         int spe = Integer.parseInt(specs1);
         //已出农资数量
         Integer amount1 = detail.getAmount1();
         double v = 0;
         //克
         if (specsValue1 == 0) {
            v = farm.getSnum() * spe * 0.001;
         }
         //斤
         if (specsValue1 == 1) {
            v = farm.getSnum() * spe * 0.5;
         }
         //公斤
         if (specsValue1 == 2) {
            v = farm.getSnum() * spe;
         }
         //吨
         if (specsValue1 == 3) {
            v = farm.getSnum() * spe * 1000;
         }
         //毫升
         if (specsValue1 == 4) {
            //毫升换成升
            double s = farm.getSnum() * spe * 0.001;
            //升换成公斤
            v = s;
         }
         //升
         if (specsValue1 == 5) {
            v = farm.getSnum() * spe;
         }
         Long ids = Long.valueOf(detail.getStockId1());
         farm.setStockId(detail.getStockId1());
         farm.setCensus(v);
         farm.setCreateTime(new Date());
         Stockfactory stockfactory = new Stockfactory();
         stockfactory.setId(ids);
         Stockfactory detailstock = stockfactoryService.getOne(Condition.getQueryWrapper(stockfactory));
         String agriculturalName = detailstock.getAgriculturalName();
         Strain strain = strainService.getById(farm.getStrainId());
         String content =strain.getStrainName()+"-"+ agriculturalName + "   " + v + "公斤";
         farm.setContent(content);
         //使用农资数量等于已出农资数量
         if (farm.getSnum() == detail.getAmount1()) {
            soldrService.dels(id);
         } else {
            soldrecordService.updateSold(amount1 - farm.getSnum(), id, detail.getCensus() - v);
            detail.setAmount1(detail.getAmount1()-farm.getSnum());
            soldrService.updateById(detail);
         }
      }
      return R.status(farmService.save(farm));
   }
@@ -124,11 +228,44 @@
   /**
    * 查询统计本年农事记录操作总数
    *
    * @return
    */
   @GetMapping("/getFarmingCount")
   public R getFarmingCount(){
      return R.data(farmService.getFarmingCount());
   public R getFarmingCount(String farmId) {
      return R.data(farmService.getFarmingCount(farmId));
   }
   /**
    * 查询统计本年农事记录操作,按分类统计
    *
    * @return
    */
   @GetMapping("/getFarmingStatis")
   public R getFarmingStatis(String farmId) {
      return R.data(farmService.getFarmingStatis(farmId));
   }
   /**
    * 大屏农资使用概况统计
    * @param farmId 农场id
    * @return
    */
   @GetMapping("/getStockCount")
   public R getStockCount(String farmId) {
      //今年
      Double aDouble = farmService.selectJyCount(farmId);
      //去年
      Double aDouble1 = farmService.selectQyCount(farmId);
      //本月
      Double aDouble2 = farmService.selectByCount(farmId);
      Map map = new HashMap();
      map.put("jn", aDouble);
      map.put("qn", aDouble1);
      map.put("by", aDouble2);
      return R.data(map);
   }
}