Browse Source

coopChange增加是否转群字段

klzhangweiya 1 week ago
parent
commit
e1a654794e

+ 56 - 20
SERVER/ChickenFarmV3/vb-modules/vb-app/src/main/java/com/vber/app/controller/BreedingController.java

@@ -7,21 +7,29 @@ import cn.vber.breeding.domain.Batch;
 import cn.vber.breeding.domain.bo.BatchBo;
 import cn.vber.breeding.domain.bo.WingTagBo;
 import cn.vber.breeding.domain.vo.BatchVo;
+import cn.vber.breeding.domain.vo.FamilyVo;
 import cn.vber.breeding.domain.vo.WingTagVo;
 import cn.vber.breeding.mapper.BatchMapper;
+import cn.vber.breeding.mapper.WingTagMapper;
 import cn.vber.breeding.service.IBatchService;
 import cn.vber.breeding.service.IWingTagService;
+import cn.vber.common.core.domain.R;
 import cn.vber.common.mybatis.core.page.PageQuery;
 import cn.vber.common.mybatis.core.page.TableDataInfo;
 import cn.vber.common.web.core.BaseController;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.vber.app.domain.bo.BatchChickenCreateBo;
+import com.vber.app.domain.bo.ChickenChangeCageBo;
+import com.vber.app.domain.bo.ChickenCullBo;
+import com.vber.app.domain.bo.ChickenWightCreateBo;
+import com.vber.app.service.IBreedingService;
+import com.vber.app.service.IGeneralService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 @Validated
 @RequiredArgsConstructor
@@ -29,35 +37,63 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/app/breeding")
 public class BreedingController extends BaseController {
 
-    private final IWingTagService wingTagService;
-    private final BatchMapper batchMapper;
+    private IGeneralService generalService;
+    private IBreedingService breedingService;
 
     /**
      * 查询批次信息列表
      */
     @SaCheckPermission("app:breeding:batch")
-    @GetMapping("/listBatch")
-    public TableDataInfo<BatchVo> list(BatchBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<Batch> lqw = new LambdaQueryWrapper<>();
-        lqw.and(wrapper->{
-            wrapper.eq(Batch::getStatus, BatchStatusEnum.CREATED.getCode());
-            wrapper.or().eq(Batch::getStatus, BatchStatusEnum.GROWING.getCode());
-        });
-        lqw.eq(bo.getBatchType()!=null, Batch::getBatchType, bo.getBatchType());
-        Page<BatchVo> result = batchMapper.selectVoPage(pageQuery.build(), lqw);
+    @GetMapping("/listBatch/{keyword}")
+    public TableDataInfo<BatchVo> listBatch(@PathVariable String keyword, PageQuery pageQuery) {
+        Page<BatchVo> result = generalService.queryBatchList(keyword, pageQuery);
         return TableDataInfo.build(result);
     }
 
     @SaCheckPermission("app:breeding:batch")
-    @GetMapping("/listWingTag")
-    public TableDataInfo<WingTagVo> listWingTag(WingTagBo bo, PageQuery pageQuery) {
-        return wingTagService.queryPageList(bo, pageQuery);
+    @GetMapping("/listWingTagPage/{batchNum}/{keyword}")
+    public TableDataInfo<WingTagVo> listWingTag(@PathVariable String batchNum, @PathVariable String keyword, PageQuery pageQuery) {
+        Page<WingTagVo> wingTagVoPage = generalService.queryWingTagList(batchNum, keyword, pageQuery);
+        return TableDataInfo.build(wingTagVoPage);
+    }
+
+    @SaCheckPermission("app:breeding:batch")
+    @GetMapping("/listWingTag/{batchNum}/{keyword}")
+    public R<List<WingTagVo>> listWingTag(@PathVariable String batchNum, @PathVariable String keyword) {
+        var wingTagVoList = generalService.queryWingTagListNoPage(batchNum, keyword);
+        return R.ok(wingTagVoList);
+    }
+
+    @SaCheckPermission("app:breeding:batch")
+    @GetMapping("/listFamily/{keyword}")
+    public TableDataInfo<FamilyVo> listFamily(@PathVariable String keyword, PageQuery pageQuery) {
+        Page<FamilyVo> familyVoPage = generalService.queryFamilyList(keyword, pageQuery);
+        return TableDataInfo.build(familyVoPage);
     }
 
     @SaCheckPermission("app:breeding:batch")
     @PostMapping("/addChicken")
-    public TableDataInfo<WingTagVo> add(WingTagBo bo, PageQuery pageQuery) {
-        return wingTagService.queryPageList(bo, pageQuery);
+    public R<Boolean> addChicken(List<BatchChickenCreateBo> input) {
+        boolean b = breedingService.chickenInsert(input);
+        return R.ok(b);
+    }
+
+    @SaCheckPermission("app:breeding:batch")
+    @PostMapping("/changeCage")
+    public R<Boolean> changeCage(ChickenChangeCageBo input) {
+        return R.ok(breedingService.changeCage(input));
+    }
+
+    @SaCheckPermission("app:breeding:batch")
+    @PostMapping("/cullChicken")
+    public R<Boolean> cullChicken(List<ChickenCullBo> input) {
+        return R.ok(breedingService.cullChicken(input));
+    }
+
+    @SaCheckPermission("app:breeding:batch")
+    @PostMapping("/chickenWeight")
+    public R<Boolean> chickenWeight(List<ChickenWightCreateBo> input) {
+        return R.ok(breedingService.chickenWeight(input));
     }
 
 }

+ 11 - 3
SERVER/ChickenFarmV3/vb-modules/vb-app/src/main/java/com/vber/app/service/IGeneralService.java

@@ -1,13 +1,20 @@
 package com.vber.app.service;
 
-import cn.vber.breeding.domain.vo.ChickenCageVo;
-import cn.vber.breeding.domain.vo.ChickenVo;
-import cn.vber.breeding.domain.vo.FamilyVo;
+import cn.vber.breeding.domain.vo.*;
+import cn.vber.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
 import java.util.List;
 
 public interface IGeneralService {
 
+
+    Page<BatchVo> queryBatchList(String keyword, PageQuery pageQuery);
+
+    Page<WingTagVo> queryWingTagList(String batchNum, String keyword, PageQuery pageQuery);
+    List<WingTagVo> queryWingTagListNoPage(String batchNum, String keyword);
+    Page<FamilyVo> queryFamilyList(String keyword, PageQuery pageQuery);
+
     ChickenCageVo getCageByNum(String cageNum);
 
     FamilyVo getFamilyByNum(String familyNum);
@@ -23,4 +30,5 @@ public interface IGeneralService {
     List<ChickenVo> getChickenByElectronicIds(List<String> electronicIds);
 
 
+
 }

+ 42 - 14
SERVER/ChickenFarmV3/vb-modules/vb-app/src/main/java/com/vber/app/service/impl/GeneralServiceImpl.java

@@ -1,21 +1,15 @@
 package com.vber.app.service.impl;
 
-import cn.vber.base.enums.ChickenStatusEnum;
-import cn.vber.base.enums.FamilyStatusEnum;
-import cn.vber.base.enums.WingTagStatusEnum;
-import cn.vber.breeding.domain.Chicken;
-import cn.vber.breeding.domain.ChickenCage;
-import cn.vber.breeding.domain.Family;
-import cn.vber.breeding.domain.WingTag;
-import cn.vber.breeding.domain.vo.ChickenCageVo;
-import cn.vber.breeding.domain.vo.ChickenVo;
-import cn.vber.breeding.domain.vo.FamilyVo;
-import cn.vber.breeding.mapper.ChickenCageMapper;
-import cn.vber.breeding.mapper.ChickenMapper;
-import cn.vber.breeding.mapper.FamilyMapper;
-import cn.vber.breeding.mapper.WingTagMapper;
+import cn.hutool.core.util.StrUtil;
+import cn.vber.base.enums.*;
+import cn.vber.breeding.domain.*;
+import cn.vber.breeding.domain.vo.*;
+import cn.vber.breeding.mapper.*;
+import cn.vber.breeding.utils.*;
 import cn.vber.common.core.exception.ServiceException;
+import cn.vber.common.mybatis.core.page.PageQuery;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vber.app.service.IGeneralService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -26,11 +20,45 @@ import java.util.List;
 @RequiredArgsConstructor
 public class GeneralServiceImpl implements IGeneralService {
 
+    private final BatchMapper batchMapper;
     private final WingTagMapper wingTagMapper;
     private final ChickenCageMapper cageMapper;
     private final ChickenMapper chickenMapper;
     private final FamilyMapper familyMapper;
 
+
+    public Page<BatchVo> queryBatchList(String keyword, PageQuery pageQuery) {
+        LambdaQueryWrapper<Batch> lqw = new LambdaQueryWrapper<>();
+        lqw.and(wrapper->{
+            wrapper.eq(Batch::getStatus, BatchStatusEnum.CREATED.getCode());
+            wrapper.or().eq(Batch::getStatus, BatchStatusEnum.GROWING.getCode());
+        });
+        lqw.eq(Batch::getBatchType, BatchTypeEnum.BREEDING.getCode());
+        lqw.like(Batch::getBatchNum, keyword);
+        return batchMapper.selectVoPage(pageQuery.build(), lqw);
+    }
+
+    @Override
+    public Page<WingTagVo> queryWingTagList(String batchNum, String keyword, PageQuery pageQuery) {
+        Batch batch = batchMapper.selectOne(new LambdaQueryWrapper<Batch>().eq(Batch::getBatchNum, batchNum));
+        if (batch == null || StrUtil.isEmpty(batch.getWingTagNumScope())) {
+            throw new ServiceException("该批次没有设置好可用的翅号范围!");
+        }
+        LambdaQueryWrapper<WingTag> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(WingTag::getStatus, WingTagStatusEnum.IDLE.getCode());
+        BreedingCommonUtils.addFilterWingTagQueryWrapper(lqw, batch.getWingTagNumScope());
+        lqw.like(WingTag::getWingTagNum, keyword);
+        return wingTagMapper.selectVoPage(pageQuery.build(), lqw);
+    }
+
+    @Override
+    public Page<FamilyVo> queryFamilyList(String keyword, PageQuery pageQuery) {
+        LambdaQueryWrapper<Family> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(Family::getStatus, FamilyStatusEnum.NORMAL.getCode());
+        lqw.like(Family::getFamilyNum, keyword);
+        return familyMapper.selectVoPage(pageQuery.build(), lqw);
+    }
+
     /**
      * 验证笼子编号
      *

+ 5 - 4
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/CoopChange.java

@@ -48,10 +48,6 @@ public class CoopChange extends BaseEntity {
      */
     private String batchNum;
 
-    /**
-     * 性别
-     */
-    //private Integer gender;
 
     /**
      * 鸡数量
@@ -79,6 +75,11 @@ public class CoopChange extends BaseEntity {
     @TableLogic
     private String delFlag;
 
+    /**
+     * 是否为转群变更鸡舍(0:否, 1:是)
+     */
+    private Integer covertGroupState;
+
 
 }
 

+ 3 - 0
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/bo/CoopChangeBo.java

@@ -81,6 +81,9 @@ public class CoopChangeBo extends BaseEntity {
     private String remark;
 
 
+    private Integer covertGroupState;
+
+
 }
 
           

+ 2 - 0
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/domain/vo/CoopChangeVo.java

@@ -97,6 +97,8 @@ public class CoopChangeVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    private Integer covertGroupState;
+
 
 }
 

+ 1 - 0
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/service/impl/BatchServiceImpl.java

@@ -296,6 +296,7 @@ public class BatchServiceImpl implements IBatchService {
             coopChange.setTargetGender(targetCoopItemBo.getGender());
             coopChange.setChickenCount(targetCoopItemBo.getChickenCount());
             coopChange.setBindTime(DateUtil.date());
+            coopChange.setCovertGroupState(1);
             count+= coopChangeMapper.insert(coopChange);
         }
         return count;

+ 11 - 10
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/service/impl/WingTagServiceImpl.java

@@ -73,16 +73,17 @@ public class WingTagServiceImpl implements IWingTagService {
             batchLqw.eq(Batch::getBatchNum, bo.getBatchNum());
             Batch batch = batchMapper.selectOne(batchLqw);
             if (batch != null && StringUtils.isNotBlank(batch.getWingTagNumScope())){
-                List<String[]> batchWingTagRange = BreedingCommonUtils.getBatchWingTagRange(batch.getWingTagNumScope());
-                lqw.and(wrapper -> {
-                    for (int i = 0; i < batchWingTagRange.size(); i++) {
-                        if (i > 0) {
-                            wrapper.or();
-                        }
-                        String[] rangeStrings = batchWingTagRange.get(i);
-                        wrapper.between(WingTag::getWingTagNum, rangeStrings[0], rangeStrings[1]);
-                    }
-                });
+                BreedingCommonUtils.addFilterWingTagQueryWrapper(lqw, batch.getWingTagNumScope());
+//                List<String[]> batchWingTagRange = BreedingCommonUtils.getBatchWingTagRange(batch.getWingTagNumScope());
+//                lqw.and(wrapper -> {
+//                    for (int i = 0; i < batchWingTagRange.size(); i++) {
+//                        if (i > 0) {
+//                            wrapper.or();
+//                        }
+//                        String[] rangeStrings = batchWingTagRange.get(i);
+//                        wrapper.between(WingTag::getWingTagNum, rangeStrings[0], rangeStrings[1]);
+//                    }
+//                });
             }
 
         }

+ 15 - 0
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/utils/BreedingCommonUtils.java

@@ -1,7 +1,9 @@
 package cn.vber.breeding.utils;
 
 import cn.hutool.core.util.StrUtil;
+import cn.vber.breeding.domain.WingTag;
 import cn.vber.common.core.utils.StringUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -27,6 +29,19 @@ public class BreedingCommonUtils {
         }
         return batchWingTag;
     }
+
+    public static void addFilterWingTagQueryWrapper(LambdaQueryWrapper<WingTag> lqw, String wingTagNumScope){
+        List<String[]> batchWingTagRange = getBatchWingTagRange(wingTagNumScope);
+        lqw.and(wrapper -> {
+            for (int i = 0; i < batchWingTagRange.size(); i++) {
+                if (i > 0) {
+                    wrapper.or();
+                }
+                String[] rangeStrings = batchWingTagRange.get(i);
+                wrapper.between(WingTag::getWingTagNum, rangeStrings[0], rangeStrings[1]);
+            }
+        });
+    }
     public static List<String> getBatchWingTag(String wingTagNumScope) {
         List<String> batchWingTag = new ArrayList<>();
         if (StrUtil.isNotEmpty(wingTagNumScope)) {