智慧农业后台管理
guoshilong
2022-08-15 6eff17f08affd763b4acdb6d515b470691d56946
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
@@ -9,13 +9,17 @@
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.recovery.service.RecoveryService;
import org.springblade.modules.traceability.dto.TraceabilityDTO;
import org.springblade.modules.traceability.dto.TraceabilityDetailDTO;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
@@ -29,6 +33,9 @@
public class TraceabilityController extends BladeController {
   private final TraceabilityService traceabilityService;
   private final RecoveryService recoveryService;
   /**
    * 详情
@@ -64,6 +71,30 @@
   }
   /**
    * 小程序列表分页
    * @param traceability
    * @param query
    * @return
    */
   @GetMapping("/xcxpage")
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "分页", notes = "传入traceability")
   public R<IPage<TraceabilityVO>> xcxpage(TraceabilityVO traceability, Query query) {
      IPage<TraceabilityVO> pages = traceabilityService.selectTraceabilityXcxPage(Condition.getPage(query), traceability);
      return R.data(pages);
   }
   /**
    * 自定义查询,不分页
    * @param traceability
    * @return
    */
   @GetMapping("/getTraceabilityList")
   public R getTraceabilityList(TraceabilityVO traceability) {
      return R.data(traceabilityService.getTraceabilityList(traceability));
   }
   /**
    * 新增
    */
   @PostMapping("/save")
@@ -71,7 +102,33 @@
   @Transactional(rollbackFor = Exception.class)
   public R save(@Valid @RequestBody Traceability traceability) {
      traceability.setCreateTime(new Date());
      //生成溯源码编号
      //去生成保安证编号
      String pre = getCodePre();
      //查询当前前缀下最大的编号
      int max = recoveryService.getCodePreCount(pre);
      String result = null;
      if (max == 0) {
         result = pre + "0000001";
      } else {
         //格式化
         DecimalFormat decimalFormat = new DecimalFormat("0000000");
         max++;
         result = pre + (decimalFormat.format(max));
      }
      traceability.setCode(result);
      //新增
      return R.status(traceabilityService.save(traceability));
   }
   /**
    * 编号前缀
    * @return
    */
   private String getCodePre() {
      String nowDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
      return nowDate.substring(2,4)+nowDate.substring(5,7);
   }
   /**
@@ -80,6 +137,7 @@
   @PostMapping("/update")
   @ApiOperationSupport(order = 5)
   @ApiOperation(value = "修改", notes = "传入traceability")
   @Transactional(rollbackFor = Exception.class)
   public R update(@Valid @RequestBody Traceability traceability) {
      //更新并返回
      return R.status(traceabilityService.updateById(traceability));
@@ -106,4 +164,37 @@
      return R.status(traceabilityService.removeByIds(Func.toLongList(ids)));
   }
   /**
    * 获取溯源简介信息
    * @param traceability
    * @return
    */
   @GetMapping("/getSimpleInfo")
   public R<TraceabilityDTO> getSimpleInfo(Traceability traceability) {
      TraceabilityDTO traceabilityDTO = traceabilityService.getSimpleInfo(traceability);
      return R.data(traceabilityDTO);
   }
   /**
    * 获取溯源详情信息(包含农产品信息,认证检测信息,产地(地块信息),农事记录,企业信息)
    * @param traceability
    * @return
    */
   @GetMapping("/getTraceabilityDetailInfo")
   public R<TraceabilityDetailDTO> getTraceabilityDetailInfo(Traceability traceability) {
      TraceabilityDetailDTO traceabilityDTO = traceabilityService.getTraceabilityDetailInfo(traceability);
      return R.data(traceabilityDTO);
   }
   /**
    * 获取溯源详情信息(包含农产品信息,认证检测信息,产地(地块信息),农事记录,企业信息)扫码
    * @param traceability
    * @return
    */
   @GetMapping("/getTraceabilityDetailInfos")
   public R<TraceabilityDetailDTO> getTraceabilityDetailInfos(Traceability traceability) {
      TraceabilityDetailDTO traceabilityDTO = traceabilityService.getTraceabilityDetailInfos(traceability);
      return R.data(traceabilityDTO);
   }
}