package com.ims.eval.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ims.eval.config.CustomException;
import com.ims.eval.entity.Indicator;
import com.ims.eval.entity.OrganizationEvaluationInfo;
import com.ims.eval.entity.YearGroupCoefficient;
import com.ims.eval.entity.YearOperatingCoefficient;
import com.ims.eval.entity.dto.request.IndicatorDictionaryDTO;
import com.ims.eval.entity.dto.request.YearGroupCoefficientDTO;
import com.ims.eval.entity.dto.result.R;
import com.ims.eval.service.IIndicatorDictionaryService;
import com.ims.eval.service.IIndicatorService;
import com.ims.eval.service.IYearGroupCoefficientService;
import com.ims.eval.service.IYearOperatingCoefficientService;
import com.ims.eval.util.ExcelUtil;
import io.swagger.annotations.ApiOperation;
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.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
*
* 年度经营业绩系数明细 前端控制器
*
*
* @author wang
* @since 2023-03-17
*/
@RestController
@RequestMapping("//year-operating-coefficient")
public class YearOperatingCoefficientController {
@Autowired
private IYearOperatingCoefficientService yearOperatingCoefficientService;
/**
* year
* @param pageNum
* @param pageSize
* @param id
* @param organizationName
* @param organizationId
* @param yearGroupCoefficientId
* @param binSection
* @param year
* @return
*/
//@ImsPreAuth("eval:yearOperatingCoefficient:view")
@GetMapping(value = "list")
public R list(@RequestParam(value = "pageNum") Integer pageNum,
@RequestParam(value = "pageSize") Integer pageSize,
@RequestParam(value = "id", required = false) String id,
@RequestParam(value = "organizationName", required = false) String organizationName,
@RequestParam(value = "organizationId", required = false) String organizationId,
@RequestParam(value = "yearGroupCoefficientId", required = false) String yearGroupCoefficientId,
@RequestParam(value = "binSection", required = false) String binSection,
@RequestParam(value = "year", required = false) String year) {
IPage list = yearOperatingCoefficientService.list(pageNum, pageSize, id, organizationName, organizationId, yearGroupCoefficientId, binSection,year);
return R.ok().data(list);
}
/**
* 查询所有数据
* @param id
* @param organizationName
* @param organizationId
* @param yearGroupCoefficientId
* @param binSection
* @param year
* @return
*/
//@ImsPreAuth("eval:yearOperatingCoefficient:view")
@GetMapping(value = "listAll")
public R listAll(
@RequestParam(value = "id", required = false) String id,
@RequestParam(value = "organizationName", required = false) String organizationName,
@RequestParam(value = "organizationId", required = false) String organizationId,
@RequestParam(value = "yearGroupCoefficientId", required = false) String yearGroupCoefficientId,
@RequestParam(value = "binSection", required = false) String binSection,
@RequestParam(value = "year", required = false) String year) {
List list = yearOperatingCoefficientService.listAll(id, organizationName, organizationId, yearGroupCoefficientId, binSection,year);
return R.ok().data(list);
}
/**
* 添加
*
* @param yearOperatingCoefficient
* @return
*/
//@ImsPreAuth("eval:yearOperatingCoefficient:edit")
@PostMapping(value = "/save")
@ApiOperation(value = "新增(修改)", notes = "新增(修改)")
public R addAll(@RequestBody YearOperatingCoefficient yearOperatingCoefficient) {
try {
boolean b = yearOperatingCoefficientService.saveOrUpdate(yearOperatingCoefficient);
if (b) {
return R.ok().data(b);
} else {
return R.error().data("保存失败!");
}
} catch (CustomException e){
return R.customError(e.getMessage()).data("失败!");
}
}
/**
* 批量删除
*
* @param ids
* @return
*/
//@ImsPreAuth("eval:yearOperatingCoefficient:remove")
@PostMapping(value = "/remove/{ids}")
@ApiOperation(value = "删除", notes = "删除")
public R deleteAll(@PathVariable("ids") String ids) {
String[] strings = ids.split(",");
boolean b = yearOperatingCoefficientService.removeByIds(Arrays.asList(strings));
if (b) {
return R.ok().data(b);
} else {
return R.error().data("删除失败!");
}
}
@PostMapping(value = "/import")
@ResponseBody
public R importAlertrule(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
if (!file.isEmpty()) {
try {
//获取原始的文件名
String originalFilename = file.getOriginalFilename();
//获取文件类型
String fileType = originalFilename.substring(originalFilename.lastIndexOf(".") + 1, originalFilename.length());
//默认从第一行开始读取
Integer startRows = 2;
//获取输入流
InputStream is = file.getInputStream();
List bindingList = new ArrayList<>();
//Excel导入导出的单元类
List strings = ExcelUtil.readData(fileType, startRows, true, is);
//遍历Excel表每一行的数据
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (String[] str : strings) {
YearOperatingCoefficient y = new YearOperatingCoefficient();
y.setId(str[0]);
y.setOrganizationName(str[1]);
y.setZzc(Double.parseDouble(str[2]));
y.setK1(Double.parseDouble(str[3]));
y.setJzs(Double.parseDouble(str[4]));
y.setK2(Double.parseDouble(str[5]));
y.setZmlrze(Double.parseDouble(str[6]));
y.setFdl(Double.parseDouble(str[7]));
y.setDdlr(Double.parseDouble(str[8]));
y.setK3(Double.parseDouble(str[9]));
y.setDy(Double.parseDouble(str[10]));
y.setK4(Double.parseDouble(str[11]));
y.setK(Double.parseDouble(str[12]));
y.setCreateName(str[13]);
y.setCreateTime(simpleDateFormat.parse(str[14]));
bindingList.add(y);
}
boolean b = yearOperatingCoefficientService.saveOrUpdateBatch(bindingList);
if (b) {
return R.ok().data(b);
} else {
return R.error().data("保存失败!");
}
} catch (Exception e) {
return R.customError(e.getMessage()).data("失败!");
}
}
return R.customError("上传文件为空!");
}
}