|
@@ -1,29 +1,36 @@
|
|
|
package com.huimv.guowei.admin.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
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.guowei.admin.common.utils.Result;
|
|
|
import com.huimv.guowei.admin.common.utils.ResultCode;
|
|
|
+import com.huimv.guowei.admin.common.utils.UploadImage;
|
|
|
import com.huimv.guowei.admin.entity.*;
|
|
|
import com.huimv.guowei.admin.mapper.*;
|
|
|
import com.huimv.guowei.admin.service.IBaseDuckInfoService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.huimv.guowei.admin.utils.Print;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.time.temporal.ChronoUnit;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
- * 服务实现类
|
|
|
+ * 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
* @author author
|
|
@@ -44,10 +51,14 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
|
private DuckHealthInfoMapper healthInfoMapper;
|
|
|
@Autowired
|
|
|
private DuckImmunityInfoMapper infoMapper;
|
|
|
+ @Autowired
|
|
|
+ private UploadImage uploadImage;
|
|
|
+
|
|
|
@Override
|
|
|
public Result listDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
- String code = paramsMap.get("code");//前端传来的是编号
|
|
|
+ String code = paramsMap.get("duckCode");//前端传来的是编号
|
|
|
String location = paramsMap.get("location");//前端传来的是位置名字
|
|
|
+ String farmId = paramsMap.get("farmId");//场的编码
|
|
|
String pageNum = paramsMap.get("pageNum");
|
|
|
String pageSize = paramsMap.get("pageSize");
|
|
|
if (pageNum == null || "".equals(pageNum)) {
|
|
@@ -57,21 +68,32 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
|
pageSize = "10";
|
|
|
}
|
|
|
QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.like(StringUtils.isNotBlank(code), "id", code).eq(StringUtils.isNotBlank(location), "unit_name", location);
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(code), "duck_num", code)
|
|
|
+ .eq(StringUtils.isNotBlank(location), "unit_name", location).eq("farm_id", farmId);
|
|
|
Page<BaseDuckInfo> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
|
|
|
return new Result(ResultCode.SUCCESS, duckInfoMapper.selectPage(page, queryWrapper));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Result addDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws ParseException {
|
|
|
+ public Result addDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap, MultipartFile imgUrl) throws ParseException, IOException {
|
|
|
BaseDuckInfo baseDuckInfo = new BaseDuckInfo();
|
|
|
- baseDuckInfo.setId(Integer.parseInt(paramsMap.get("id")));
|
|
|
+ baseDuckInfo.setDuckNum(paramsMap.get("duckCode"));
|
|
|
+
|
|
|
+ baseDuckInfo.setUnitName(paramsMap.get("unitName"));
|
|
|
+ baseDuckInfo.setFarmId(Integer.parseInt(paramsMap.get("farmId")));
|
|
|
baseDuckInfo.setDuckBreed(Integer.parseInt(paramsMap.get("duckBreed")));
|
|
|
baseDuckInfo.setDuckSex(Integer.parseInt(paramsMap.get("duckSex")));
|
|
|
baseDuckInfo.setDuckBirthplace(paramsMap.get("duckBirthPlace"));
|
|
|
String date = paramsMap.get("duckBirthDay");
|
|
|
+ date = date + " 00:00:00";
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
|
|
|
baseDuckInfo.setDuckBirthday(sdf.parse(date));
|
|
|
+
|
|
|
+ Date date1 = sdf.parse(date);
|
|
|
+ Date date2 = new Date();
|
|
|
+ // 计算两个日期之间的天数
|
|
|
+ int between = daysBetween(date1, date2);
|
|
|
+ baseDuckInfo.setDayAge(between);
|
|
|
baseDuckInfo.setGenotype(paramsMap.get("genotype"));
|
|
|
BigDecimal big = new BigDecimal(paramsMap.get("nowWeight"));
|
|
|
baseDuckInfo.setNowWeight(big);
|
|
@@ -88,25 +110,47 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
|
baseDuckInfo.setSpecialNeeds(paramsMap.get("specialNeeds"));
|
|
|
baseDuckInfo.setIsCage(0);
|
|
|
QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("id", paramsMap.get("id")).or().eq("unit_id", paramsMap.get("unitId"));
|
|
|
+ queryWrapper.eq("duck_num", paramsMap.get("duckCode")).or().eq("unit_id", paramsMap.get("unitId"));
|
|
|
Integer integer = duckInfoMapper.selectCount(queryWrapper);
|
|
|
- baseDuckInfo.setDuckImgUrl(paramsMap.get("imgUrl"));
|
|
|
if (integer == 0) {
|
|
|
+ String content = uploadImage.getImageCom(imgUrl);
|
|
|
+ baseDuckInfo.setDuckImgUrl(content);
|
|
|
duckInfoMapper.insert(baseDuckInfo);
|
|
|
- return new Result(ResultCode.SUCCESS);
|
|
|
+ return new Result(10000, "添加成功!", true);
|
|
|
} else {
|
|
|
- return new Result(10001, "编码已存在或该笼位已使用", false);
|
|
|
+ return new Result(10001, "鸭只编码已存在或该笼位已使用", false);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 获取两个日期间的天数,精确到年月日
|
|
|
+ * @param start
|
|
|
+ * @param end
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static int daysBetween(Date start, Date end) {
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ try {
|
|
|
+ start = sdf.parse(sdf.format(start));
|
|
|
+ end = sdf.parse(sdf.format(end));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ long startTime = start.getTime();
|
|
|
+ long endTime = end.getTime();
|
|
|
+ long betweenDays = (endTime - startTime) / (1000 * 3600 * 24);
|
|
|
+ return Integer.parseInt(String.valueOf(betweenDays));
|
|
|
+ }
|
|
|
@Override
|
|
|
- public Result editDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
|
|
|
- String id = paramsMap.get("id");
|
|
|
- String isCage = paramsMap.get("isCage");
|
|
|
- BaseDuckInfo baseDuckInfo = duckInfoMapper.selectById(id);
|
|
|
- baseDuckInfo.setIsCage(Integer.parseInt(isCage));
|
|
|
- duckInfoMapper.updateById(baseDuckInfo);
|
|
|
- return new Result(ResultCode.SUCCESS);
|
|
|
+ public Result editDuck(HttpServletRequest httpServletRequest, BaseDuckInfo baseDuckInfo) {
|
|
|
+ QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.ne("id", baseDuckInfo.getId()).and(i -> i.eq("duck_num", baseDuckInfo.getDuckNum()).or().eq("unit_id", baseDuckInfo.getUnitId()));
|
|
|
+ BaseDuckInfo baseDuckInfo1 = duckInfoMapper.selectOne(queryWrapper);
|
|
|
+ if (ObjectUtil.isEmpty(baseDuckInfo1)) {
|
|
|
+ duckInfoMapper.updateById(baseDuckInfo);
|
|
|
+ return new Result(10000, "修改成功!", true);
|
|
|
+ } else {
|
|
|
+ return new Result(10001, "鸭只编号已存在或者鸭笼已被占用", false);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -118,4 +162,20 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
|
|
|
return new Result(ResultCode.SUCCESS, baseDuckInfo);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void printDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) throws Exception {
|
|
|
+ String duckCode = paramsMap.get("duckCode");
|
|
|
+ QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("duck_num", duckCode);
|
|
|
+ BaseDuckInfo baseDuckInfo = duckInfoMapper.selectOne(queryWrapper);//鸭只档案
|
|
|
+ QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
|
|
|
+ queryWrapper1.eq("duck_code", duckCode);
|
|
|
+ List<EnvMoveCall> envMoveCalls = moveCallMapper.selectList(queryWrapper1);//日龄体重
|
|
|
+ QueryWrapper<DuckHealthInfo> healthInfoQueryWrapper = new QueryWrapper<>();
|
|
|
+ List<DuckHealthInfo> duckHealthInfos = healthInfoMapper.selectList(healthInfoQueryWrapper);//健康状况
|
|
|
+ QueryWrapper<DuckImmunityInfo> queryWrapper2 = new QueryWrapper<>();
|
|
|
+ List<DuckImmunityInfo> duckImmunityInfos = infoMapper.selectList(queryWrapper2);//免疫记录
|
|
|
+ Print.printDuck(baseDuckInfo, duckHealthInfos, duckImmunityInfos, envMoveCalls);
|
|
|
+ }
|
|
|
+
|
|
|
}
|