智慧农业后台管理
guoshilong
2022-08-19 4d60a2ee6bbfe76e2740307c832c8f309090a41e
src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
@@ -26,12 +26,15 @@
import javax.validation.Valid;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * 农事记录控制器
 * @since 2022-05-18
 *
 * @author zhongrj
 * @since 2022-05-18
 */
@RestController
@AllArgsConstructor
@@ -88,8 +91,9 @@
   @Transactional(rollbackFor = Exception.class)
   public R save(@Valid @RequestBody Recovery recovery) {
      recovery.setCreateTime(new Date());
      //新增
      boolean save = recoveryService.save(recovery);
      if (save){
      if (save) {
         //同时生成农事记录和库存记录
         FarmingRecord record = new FarmingRecord();
         record.setCreateTime(new Date());
@@ -98,28 +102,36 @@
         //采收
         record.setType("12");
         record.setLandId(recovery.getLandId());
         record.setDeptId(recovery.getDeptId());
         record.setTenantId(recovery.getTenantId());
         record.setStrainId(recovery.getStrainId());
         record.setOperator(recovery.getOperator());
         Strain strain = strainService.getById(recovery.getStrainId());
         record.setRemarks("品种: "+strain.getStrainName() +", 重量:"+recovery.getWeight());
         record.setContent("品种: " + strain.getStrainName() + ", 重量:" + recovery.getWeight());
         //新增
         farmingRecordService.save(record);
         //库存
         //先查询是否有该农产品的库存
         //先查询是否有该农产品的库存(根据地块,农产品)
         FarmProductStock stock = new FarmProductStock();
         stock.setFarmPlantId(recovery.getFarmPlantId());
         stock.setStrainId(recovery.getStrainId());
         stock.setLandId(recovery.getLandId());
         FarmProductStock stock1 = farmProductStockService.getOne(new QueryWrapper<>(stock));
         if (null!=stock1) {
         if (null != stock1) {
            //更新库存
            //计算库存
            double old = Double.parseDouble(stock1.getWeight());
            double now = Double.parseDouble(recovery.getWeight());
            double addNum = add(old, now);
            stock1.setWeight(String.valueOf(addNum));
            //总采收
            double olds = Double.parseDouble(stock1.getRecovery());
            double addNums = add(olds, now);
            stock1.setRecovery(String.valueOf(addNums));
            //更新
            farmProductStockService.updateById(stock1);
         }else {
         } else {
            //新增库存
            FarmProductStock productStock = new FarmProductStock();
            productStock.setCreateTime(new Date());
@@ -128,7 +140,11 @@
            productStock.setTime(recovery.getTime());
            productStock.setStrainId(recovery.getStrainId());
            productStock.setWeight(recovery.getWeight());
            productStock.setRecovery(recovery.getWeight());
            productStock.setFarmPlantId(recovery.getFarmPlantId());
            productStock.setTenantId(recovery.getTenantId());
            productStock.setDeptId(recovery.getDeptId());
            productStock.setLandId(recovery.getLandId());
            //新增操作
            farmProductStockService.save(productStock);
         }
@@ -136,13 +152,15 @@
      return R.status(save);
   }
   /**
    * double 相加
    *
    * @param d1
    * @param d2
    * @return
    */
   private double add(double d1, double d2){
   private double add(double d1, double d2) {
      // 进行加法运算
      BigDecimal b1 = new BigDecimal(d1);
      BigDecimal b2 = new BigDecimal(d2);
@@ -181,4 +199,24 @@
      return R.status(recoveryService.removeByIds(Func.toLongList(ids)));
   }
   /**
    * 小程序采收详情列表自定义分页
    */
   @GetMapping("/pagec")
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "分页", notes = "传入recovery")
   public R<IPage<RecoveryVO>> pagec(RecoveryVO recovery, Query query) {
      IPage<RecoveryVO> pages = recoveryService.selectRecoveryPage(Condition.getPage(query), recovery);
      for (int i = 0; i < pages.getRecords().size(); i++) {
         String jobWay = pages.getRecords().get(i).getJobWay();
         if (jobWay.equals("0")) {
            pages.getRecords().get(i).setLx("人工");
         } else {
            pages.getRecords().get(i).setLx("机械");
         }
      }
      return R.data(pages);
   }
}