package com.huimv.guowei.admin.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.huimv.guowei.admin.common.utils.Result;
import com.huimv.guowei.admin.common.utils.ResultCode;
import com.huimv.guowei.admin.entity.BaseDuckInfo;
import com.huimv.guowei.admin.entity.Breed;
import com.huimv.guowei.admin.entity.Departure;
import com.huimv.guowei.admin.entity.DuckHealthInfo;
import com.huimv.guowei.admin.service.IBaseDuckInfoService;
import com.huimv.guowei.admin.service.IBreedService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
* 前端控制器
*
*
* @author author
* @since 2023-06-14
*/
@RestController
@RequestMapping("/breed")
@CrossOrigin
public class BreedController {
@Autowired
private IBreedService breedService;
@Autowired
private IBaseDuckInfoService duckInfoService;
@RequestMapping("/list")
public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
return breedService.list(httpServletRequest, paramsMap);
}
@RequestMapping("/listByDuckId")
public Result listByDuckId(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
String id = paramsMap.get("id");
return new Result(ResultCode.SUCCESS,breedService.getById(id));
}
@RequestMapping("/listSelect")
public Result listSelect(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
return breedService.listSelect(httpServletRequest, paramsMap);
}
@RequestMapping("/listByChiNum")
public Result listByChiNum(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
return breedService.listByChiNum(httpServletRequest, paramsMap);
}
@RequestMapping("/addDuck")
public Result addDuck(HttpServletRequest httpServletRequest, @RequestBody Breed breed) throws ParseException {
Date healthDate = breed.getDate();//发病时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String format = sdf.format(date);
Date parse = sdf.parse(format);//今天日期
if (healthDate.getTime() > parse.getTime()) {
return new Result(10001, "配种日期不能晚于今日", false);
}
String maleNum = breed.getMaleNum();//雄鸭
String femaleNum = breed.getFemaleNum();//雌鸭
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("farm_id", breed.getFarmId()).eq("duck_num", maleNum);
BaseDuckInfo duckInfo = duckInfoService.getOne(queryWrapper);//雄鸭
QueryWrapper queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("farm_id", breed.getFarmId()).eq("duck_num", femaleNum);
BaseDuckInfo duckInfo1 = duckInfoService.getOne(queryWrapper1);//雌鸭
if (ObjectUtil.isNotEmpty(duckInfo)) {
if (duckInfo.getDuckSex() == 0) {
breed.setMaleNum(maleNum);
breed.setMaleChiNum(duckInfo.getChiNum());
breed.setMaleJiaoNum(duckInfo.getJiaoNum());
} else {
return new Result(10001, "雌鸭编号不能填入雄鸭配种中!", false);
}
if (duckInfo.getIsCage() == 1) {
return new Result(10001, "该鸭只已离场", false);
}
if (duckInfo.getDayAge() < 100) {
return new Result(10001, "父亲(或母亲)鸭只日龄小于100天!", false);
}
}else {
return new Result(10001, "无此编号雄鸭!", false);
}
if (ObjectUtil.isNotEmpty(duckInfo1)) {
if (duckInfo1.getDuckSex() == 1) {
breed.setFemaleNum(femaleNum);
breed.setFemaleChiNum(duckInfo1.getChiNum());
breed.setFemaleJiaoNum(duckInfo1.getJiaoNum());
} else {
return new Result(10001, "雄鸭编号不能填入雌鸭配种中!", false);
}
if (duckInfo1.getIsCage() == 1) {
return new Result(10001, "该鸭只已离场", false);
}
if (duckInfo1.getDayAge() < 100) {
return new Result(10001, "父亲(或母亲)鸭只日龄小于100天!", false);
}
} else {
return new Result(10001, "无此编号雌鸭!", false);
}
breedService.save(breed);
return new Result(10000, "添加成功!", true);
}
@RequestMapping("/editDuck")
public Result editDuck(HttpServletRequest httpServletRequest, @RequestBody Breed breed) {
breedService.updateById(breed);
return new Result(10000, "修改成功!", true);
}
@RequestMapping("/deleteDuck")
public Result deleteDuck(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
String id = paramsMap.get("id");
breedService.removeById(id);
return new Result(10000, "删除成功!", true);
}
//excel导入
@PostMapping("/importData")
public Result addDuck(HttpServletRequest httpServletRequest, @RequestParam(name = "file") MultipartFile file) throws Exception {
return breedService.importData(httpServletRequest, file);
}
}