package com.huimv.farm.damsubsidy.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.UUID;
import com.huimv.farm.damsubsidy.common.token.TokenSign;
import com.huimv.farm.damsubsidy.common.utils.Result;
import com.huimv.farm.damsubsidy.common.utils.ResultCode;
import com.huimv.farm.damsubsidy.common.utils.UploadImage;
import com.huimv.farm.damsubsidy.entity.BillLandingInspection;
import com.huimv.farm.damsubsidy.service.IBillLandingInspectionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
*
* 落地检 前端控制器
*
*
* @author author
* @since 2023-04-26
*/
@RestController
@RequestMapping("/bill-landing-inspection")
@CrossOrigin
public class BillLandingInspectionController {
@Autowired
private IBillLandingInspectionService iBillLandingInspectionService;
@PostMapping("/addApplication")
public Result addApplication(HttpServletRequest httpServletRequest, @RequestBody BillLandingInspection billLandingInspection){
return iBillLandingInspectionService.addApplication(httpServletRequest,billLandingInspection);
}
@PostMapping("/cancelApplication")
public Result cancelApplication(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap){
return iBillLandingInspectionService.cancelApplication(httpServletRequest,paramsMap);
}
//根据检疫证号返回全部耳标
@PostMapping("/getEartagNoBy")
public Result getEartagNoBy(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap){
return iBillLandingInspectionService.getEartagNoBy(httpServletRequest,paramsMap);
}
@PostMapping("agreeApplication")
public Result agreeApplication(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap){
return iBillLandingInspectionService.agreeApplication(httpServletRequest,paramsMap);
}
@PostMapping("/listApplication")
public Result listApplication(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap){
return iBillLandingInspectionService.listApplication(httpServletRequest,paramsMap);
}
@PostMapping("/listDetail")
public Result listDetail(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap){
String id = paramsMap.get("id");
return new Result(ResultCode.SUCCESS,iBillLandingInspectionService.getById(id));
}
@PostMapping("/rejectApplication")
public Result rejectApplication(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap){
return iBillLandingInspectionService.rejectApplication(httpServletRequest,paramsMap);
}
@PostMapping("/listReadyApplication")
public Result listReadyApplication(){
return new Result(ResultCode.SUCCESS,iBillLandingInspectionService.list(new QueryWrapper()
.eq("inspection_sch",4)
.eq("is_delete",0)));
}
@PostMapping("/listPersonal")
public Result listPersonal(HttpServletRequest httpServletRequest){
return new Result(ResultCode.SUCCESS,iBillLandingInspectionService.list(new QueryWrapper()
.eq("inspection_sch",4)
.eq("create_user",TokenSign.getMemberIdByJwtToken(httpServletRequest))
.isNull("reject_reason")
.eq("is_delete",0)));
}
@Autowired
private IBillLandingInspectionService billLandingInspectionService;
@RequestMapping("/list")
public Result list(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
return billLandingInspectionService.list(httpServletRequest, paramsMap);
}
@RequestMapping("/listById")
public Result listById(HttpServletRequest httpServletRequest, @RequestBody Map paramsMap) {
return billLandingInspectionService.listById(httpServletRequest, paramsMap);
}
@RequestMapping("/addPay")
public Result addPay(HttpServletRequest httpServletRequest,
@RequestParam(name = "idCordBackUrl",required = false) MultipartFile idCordBackUrl,
@RequestParam("id") String id) {
Map map = new HashMap<>();
if (ObjectUtil.isNotEmpty(idCordBackUrl)) {
String imgname = "成功";
String originalFilename = idCordBackUrl.getOriginalFilename();
String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
String path = DateUtil.format(new Date(), "yyyy-MM");
try {
InputStream inputStream = idCordBackUrl.getInputStream();
BufferedInputStream in = new BufferedInputStream(inputStream);
ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
byte[] temp = new byte[1024];
int size = 0;
while ((size = in.read(temp)) != -1) {
out.write(temp, 0, size);
}
in.close();
byte[] content = out.toByteArray();
imgname = UUID.randomUUID() + "." + filenameExtension;
UploadImage.sshSftp(content, path, imgname);
} catch (Exception e) {
e.printStackTrace();
}
String content = "https://dam.img.ifarmcloud.com:8030/images/" + path + "/" + imgname;
map.put("url", content);
} else {
String content = null;
map.put("url", "");
}
map.put("id", id);
return billLandingInspectionService.addPay(httpServletRequest, map);
}
}