|
@@ -1,21 +1,29 @@
|
|
|
package com.huimv.farm.musk.breed.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.huimv.farm.musk.breed.entity.BreedMuskInfo;
|
|
|
import com.huimv.farm.musk.breed.entity.MuskEarmark;
|
|
|
+import com.huimv.farm.musk.breed.entity.vo.AppMuskInfoVo;
|
|
|
import com.huimv.farm.musk.breed.mapper.BreedMuskInfoMapper;
|
|
|
import com.huimv.farm.musk.breed.mapper.MuskEarmarkMapper;
|
|
|
import com.huimv.farm.musk.breed.service.IBreedMuskInfoService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.huimv.farm.musk.common.utils.Result;
|
|
|
import com.huimv.farm.musk.common.utils.ResultCode;
|
|
|
+import com.huimv.farm.musk.entity.BaseBuilding;
|
|
|
+import com.huimv.farm.musk.entity.vo.TreeMuskInfo;
|
|
|
+import com.huimv.farm.musk.mapper.BaseBuildingMapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
@@ -33,6 +41,8 @@ public class BreedMuskInfoServiceImpl extends ServiceImpl<BreedMuskInfoMapper, B
|
|
|
private BreedMuskInfoMapper muskInfoMapper;
|
|
|
@Autowired
|
|
|
private MuskEarmarkMapper earmarkMapper;
|
|
|
+ @Autowired
|
|
|
+ private BaseBuildingMapper buildingMapper;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -51,21 +61,35 @@ public class BreedMuskInfoServiceImpl extends ServiceImpl<BreedMuskInfoMapper, B
|
|
|
return new Result(ResultCode.SUCCESS, muskInfoMapper.selectPage(page, queryWrapper));
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public Result add(BreedMuskInfo muskInfo) {
|
|
|
Integer count = muskInfoMapper.selectCount(new QueryWrapper<BreedMuskInfo>().eq("farm_id", muskInfo.getFarmId()).eq("musk_id", muskInfo.getMuskId()));
|
|
|
if (count != 0) {
|
|
|
return new Result(10001, "添加失败!林麝id编号已存在!", false);
|
|
|
}
|
|
|
+ Integer count1 = muskInfoMapper.selectCount(new QueryWrapper<BreedMuskInfo>().eq("farm_id", muskInfo.getFarmId()).eq("unit_id", muskInfo.getUnitId()));
|
|
|
+ if (count1 != 0) {
|
|
|
+ return new Result(10001, "添加失败!该栏位已存在林麝!", false);
|
|
|
+ }
|
|
|
MuskEarmark earmark = earmarkMapper.selectOne(new QueryWrapper<MuskEarmark>().eq("earmark", muskInfo.getMuskId()));
|
|
|
if (ObjectUtil.isNotEmpty(earmark)) {
|
|
|
earmark.setIsUse(1);
|
|
|
+ earmark.setStatus(1);
|
|
|
earmarkMapper.updateById(earmark);
|
|
|
}
|
|
|
Date date = new Date();
|
|
|
long l = date.getTime() - muskInfo.getBirthDate().getTime();
|
|
|
long l1 = l / (24 * 60 * 60 * 1000);
|
|
|
muskInfo.setDayNum((int) l1);
|
|
|
+ Integer unitId = muskInfo.getUnitId();
|
|
|
+ BaseBuilding building = buildingMapper.selectById(unitId);
|
|
|
+ building.setDisabled(1);
|
|
|
+ buildingMapper.updateById(building);
|
|
|
+ QueryWrapper<BaseBuilding> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("id", building.getParentId());
|
|
|
+ BaseBuilding baseBuilding = buildingMapper.selectOne(queryWrapper);
|
|
|
+ muskInfo.setUnitName(baseBuilding.getBuildName() + building.getBuildName());
|
|
|
muskInfoMapper.insert(muskInfo);
|
|
|
return new Result(ResultCode.SUCCESS);
|
|
|
}
|
|
@@ -77,6 +101,11 @@ public class BreedMuskInfoServiceImpl extends ServiceImpl<BreedMuskInfoMapper, B
|
|
|
if (count > 0) {
|
|
|
return new Result(10001, "修改失败,羊只档案已存在", false);
|
|
|
}
|
|
|
+ Date date = new Date();
|
|
|
+ long l = date.getTime() - muskInfo.getBirthDate().getTime();
|
|
|
+ long l1 = l / (24 * 60 * 60 * 1000);
|
|
|
+ muskInfo.setDayNum((int) l1);
|
|
|
+ muskInfoMapper.insert(muskInfo);
|
|
|
muskInfoMapper.updateById(muskInfo);
|
|
|
return new Result(10000, "修改成功!", true);
|
|
|
}
|
|
@@ -93,10 +122,220 @@ public class BreedMuskInfoServiceImpl extends ServiceImpl<BreedMuskInfoMapper, B
|
|
|
MuskEarmark earmark = earmarkMapper.selectOne(new QueryWrapper<MuskEarmark>().eq("earmark", muskInfo.getMuskId()));
|
|
|
if (ObjectUtil.isNotEmpty(earmark)) {
|
|
|
earmark.setIsUse(0);
|
|
|
+ earmark.setStatus(0);
|
|
|
earmarkMapper.updateById(earmark);
|
|
|
}
|
|
|
muskInfoMapper.deleteById(s);
|
|
|
}
|
|
|
return new Result(10000, "删除成功!", true);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result pedigree(Map<String, String> paramsMap) {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ String sheepId = paramsMap.get("muskId");
|
|
|
+ QueryWrapper<BreedMuskInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("musk_id", sheepId).eq("is_leave", 0);
|
|
|
+ BreedMuskInfo sheepInfo = muskInfoMapper.selectOne(queryWrapper);
|
|
|
+ TreeMuskInfo treeSheepInfo = new TreeMuskInfo();
|
|
|
+ if (ObjectUtil.isNotEmpty(sheepInfo)) {
|
|
|
+ treeSheepInfo.setDayNum(sheepInfo.getDayNum());
|
|
|
+ treeSheepInfo.setSex(sheepInfo.getSex());
|
|
|
+ treeSheepInfo.setMuskId(sheepInfo.getMuskId());
|
|
|
+ treeSheepInfo.setMuskVariety(sheepInfo.getBreed());
|
|
|
+ treeSheepInfo.setUnitName(sheepInfo.getUnitName());
|
|
|
+ treeSheepInfo.setId(sheepInfo.getId());
|
|
|
+ if (StringUtils.isNotBlank(sheepInfo.getFemaleId())) {
|
|
|
+ BreedMuskInfo mother = muskInfoMapper.selectOne(new QueryWrapper<BreedMuskInfo>().eq("musk_id", sheepInfo.getFemaleId()));
|
|
|
+ TreeMuskInfo treeSheepInfo1 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setDayNum(mother.getDayNum());
|
|
|
+ treeSheepInfo1.setSex(mother.getSex());
|
|
|
+ treeSheepInfo1.setMuskId(mother.getMuskId());
|
|
|
+ treeSheepInfo1.setMuskVariety(mother.getBreed());
|
|
|
+ treeSheepInfo1.setUnitName(mother.getUnitName());
|
|
|
+ treeSheepInfo1.setId(mother.getId());
|
|
|
+ treeSheepInfo.setMotherMusk(treeSheepInfo1);
|
|
|
+ if (StringUtils.isNotBlank(mother.getFemaleId())) {
|
|
|
+ BreedMuskInfo grandma = muskInfoMapper.selectOne(new QueryWrapper<BreedMuskInfo>().eq("musk_id", mother.getFemaleId()));
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo2.setDayNum(grandma.getDayNum());
|
|
|
+ treeSheepInfo2.setSex(grandma.getSex());
|
|
|
+ treeSheepInfo2.setMuskId(grandma.getMuskId());
|
|
|
+ treeSheepInfo2.setMuskVariety(grandma.getBreed());
|
|
|
+ treeSheepInfo2.setUnitName(grandma.getUnitName());
|
|
|
+ treeSheepInfo2.setId(grandma.getId());
|
|
|
+ treeSheepInfo1.setMotherMusk(treeSheepInfo2);
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeSheepInfo3 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo3);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(mother.getMaleId())) {
|
|
|
+ BreedMuskInfo grandma = muskInfoMapper.selectOne(new QueryWrapper<BreedMuskInfo>().eq("musk_id", mother.getMaleId()));
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo2.setDayNum(grandma.getDayNum());
|
|
|
+ treeSheepInfo2.setSex(grandma.getSex());
|
|
|
+ treeSheepInfo2.setMuskId(grandma.getMuskId());
|
|
|
+ treeSheepInfo2.setMuskVariety(grandma.getBreed());
|
|
|
+ treeSheepInfo2.setUnitName(grandma.getUnitName());
|
|
|
+ treeSheepInfo2.setId(grandma.getId());
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo2);
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeSheepInfo3 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo3);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeSheepInfo1 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo.setMotherMusk(treeSheepInfo1);
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setMotherMusk(treeSheepInfo2);
|
|
|
+ TreeMuskInfo treeSheepInfo3 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo3);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(sheepInfo.getMaleId())) {
|
|
|
+ BreedMuskInfo father = muskInfoMapper.selectOne(new QueryWrapper<BreedMuskInfo>().eq("musk_id", sheepInfo.getMaleId()));
|
|
|
+ TreeMuskInfo treeSheepInfo1 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setDayNum(father.getDayNum());
|
|
|
+ treeSheepInfo1.setSex(father.getSex());
|
|
|
+ treeSheepInfo1.setMuskId(father.getMuskId());
|
|
|
+ treeSheepInfo1.setMuskVariety(father.getBreed());
|
|
|
+ treeSheepInfo1.setUnitName(father.getUnitName());
|
|
|
+ treeSheepInfo1.setId(father.getId());
|
|
|
+ treeSheepInfo.setFatherMusk(treeSheepInfo1);
|
|
|
+ if (StringUtils.isNotBlank(father.getMaleId())) {
|
|
|
+ BreedMuskInfo grandfa = muskInfoMapper.selectOne(new QueryWrapper<BreedMuskInfo>().eq("musk_id", father.getMaleId()));
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo2.setDayNum(grandfa.getDayNum());
|
|
|
+ treeSheepInfo2.setSex(grandfa.getSex());
|
|
|
+ treeSheepInfo2.setMuskId(grandfa.getMuskId());
|
|
|
+ treeSheepInfo2.setMuskVariety(grandfa.getBreed());
|
|
|
+ treeSheepInfo2.setUnitName(grandfa.getUnitName());
|
|
|
+ treeSheepInfo2.setId(grandfa.getId());
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo2);
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo2);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(father.getFemaleId())) {
|
|
|
+ BreedMuskInfo grandfa = muskInfoMapper.selectOne(new QueryWrapper<BreedMuskInfo>().eq("musk_id", father.getFemaleId()));
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo2.setDayNum(grandfa.getDayNum());
|
|
|
+ treeSheepInfo2.setSex(grandfa.getSex());
|
|
|
+ treeSheepInfo2.setMuskId(grandfa.getMuskId());
|
|
|
+ treeSheepInfo2.setMuskVariety(grandfa.getBreed());
|
|
|
+ treeSheepInfo2.setUnitName(grandfa.getUnitName());
|
|
|
+ treeSheepInfo2.setId(grandfa.getId());
|
|
|
+ treeSheepInfo1.setMotherMusk(treeSheepInfo2);
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeSheepInfo3 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setMotherMusk(treeSheepInfo3);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeSheepInfo1 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo.setFatherMusk(treeSheepInfo1);
|
|
|
+ TreeMuskInfo treeSheepInfo2 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setFatherMusk(treeSheepInfo2);
|
|
|
+ TreeMuskInfo treeSheepInfo3 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo1.setMotherMusk(treeSheepInfo3);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ TreeMuskInfo treeMuskInfo = new TreeMuskInfo();
|
|
|
+ TreeMuskInfo treeMuskInfo1 = new TreeMuskInfo();
|
|
|
+ treeSheepInfo.setFatherMusk(treeMuskInfo);
|
|
|
+ treeSheepInfo.setMotherMusk(treeMuskInfo1);
|
|
|
+ TreeMuskInfo treeMuskInfo2 = new TreeMuskInfo();
|
|
|
+ TreeMuskInfo treeMuskInfo3 = new TreeMuskInfo();
|
|
|
+ treeMuskInfo.setFatherMusk(treeMuskInfo2);
|
|
|
+ treeMuskInfo.setMotherMusk(treeMuskInfo3);
|
|
|
+ TreeMuskInfo treeMuskInfo4 = new TreeMuskInfo();
|
|
|
+ TreeMuskInfo treeMuskInfo5 = new TreeMuskInfo();
|
|
|
+ treeMuskInfo1.setMotherMusk(treeMuskInfo4);
|
|
|
+ treeMuskInfo1.setFatherMusk(treeMuskInfo5);
|
|
|
+ }
|
|
|
+
|
|
|
+ return new Result(ResultCode.SUCCESS, treeSheepInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateDayAge() {
|
|
|
+ muskInfoMapper.updateDayAge();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result appMuskInfo(Map<String, String> paramsMap) {
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ QueryWrapper<BaseBuilding> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("f_type", 1).orderByAsc("id");
|
|
|
+ List<BaseBuilding> buildings = buildingMapper.selectList(queryWrapper);
|
|
|
+ List<AppMuskInfoVo> muskInfoVos = muskInfoMapper.listMuskAndBuild(farmId);
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ for (BaseBuilding building : buildings) {
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+ JSONArray jsonArray1 = new JSONArray();
|
|
|
+ Integer buildCount = 0;
|
|
|
+ Integer muskCount = 0;
|
|
|
+ for (AppMuskInfoVo muskInfoVo : muskInfoVos) {
|
|
|
+ if (muskInfoVo.getParentId().equals(building.getId())) {
|
|
|
+ JSONObject jsonObject1 = new JSONObject();
|
|
|
+ if (null==muskInfoVo.getIsLeave()) {
|
|
|
+ buildCount = buildCount + 1;
|
|
|
+ jsonObject1.put("unitId", muskInfoVo.getUnitId());
|
|
|
+ jsonObject1.put("unitName", muskInfoVo.getUnitName());
|
|
|
+ jsonObject1.put("result", 4);
|
|
|
+ jsonObject1.put("muskId", muskInfoVo.getMuskId());
|
|
|
+ jsonObject1.put("batchName", muskInfoVo.getBatchName());
|
|
|
+ jsonObject1.put("batchNum", muskInfoVo.getBatchNum());
|
|
|
+ } else if (muskInfoVo.getIsLeave() == 0) {
|
|
|
+ muskCount = muskCount + 1;
|
|
|
+ buildCount = buildCount + 1;
|
|
|
+ jsonObject1.put("unitId", muskInfoVo.getUnitId());
|
|
|
+ jsonObject1.put("unitName", muskInfoVo.getUnitName());
|
|
|
+ jsonObject1.put("result", muskInfoVo.getAppStatus());
|
|
|
+ jsonObject1.put("muskId", muskInfoVo.getMuskId());
|
|
|
+ jsonObject1.put("batchName", muskInfoVo.getBatchName());
|
|
|
+ jsonObject1.put("batchNum", muskInfoVo.getBatchNum());
|
|
|
+ }
|
|
|
+ jsonObject1.put("breed", muskInfoVo.getBreed());
|
|
|
+ jsonObject1.put("sex", muskInfoVo.getSex());
|
|
|
+ jsonObject1.put("birthDate", muskInfoVo.getBirthDate());
|
|
|
+ jsonObject1.put("inspectResult", muskInfoVo.getInspectResult());
|
|
|
+ jsonObject1.put("weight", muskInfoVo.getWeight());
|
|
|
+ jsonObject1.put("femaleId", muskInfoVo.getFemaleId());
|
|
|
+ jsonObject1.put("maleId", muskInfoVo.getMaleId());
|
|
|
+ jsonObject1.put("dayNum", muskInfoVo.getDayNum());
|
|
|
+ jsonObject1.put("farmId", muskInfoVo.getFarmId());
|
|
|
+ jsonObject1.put("temp", muskInfoVo.getTemp());
|
|
|
+ jsonObject1.put("act", muskInfoVo.getAct());
|
|
|
+ jsonObject1.put("stage", muskInfoVo.getStage());
|
|
|
+ jsonArray1.add(jsonObject1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ jsonObject.put("buildCount", buildCount);
|
|
|
+ jsonObject.put("muskCount", muskCount);
|
|
|
+ jsonObject.put("buildName", building.getBuildName());
|
|
|
+ jsonObject.put("buildUnit", building.getId());
|
|
|
+ jsonObject.put("list", jsonArray1);
|
|
|
+ jsonArray.add(jsonObject);
|
|
|
+ }
|
|
|
+ return new Result(ResultCode.SUCCESS, jsonArray);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Result appUpdateMuskInfo(Map<String, String> paramsMap) {
|
|
|
+ String unitId = paramsMap.get("unitId");
|
|
|
+ String result = paramsMap.get("result");
|
|
|
+ String farmId = paramsMap.get("farmId");
|
|
|
+ QueryWrapper<BreedMuskInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("farm_id", farmId).eq("unit_id", unitId).eq("is_leave", 0);
|
|
|
+ BreedMuskInfo muskInfo = muskInfoMapper.selectOne(queryWrapper);
|
|
|
+ muskInfo.setAppStatus(Integer.parseInt(result));
|
|
|
+ muskInfoMapper.updateById(muskInfo);
|
|
|
+ return new Result(ResultCode.SUCCESS);
|
|
|
+ }
|
|
|
+
|
|
|
}
|