package org.jeecg.modules.eam.controller;
|
|
import java.io.IOException;
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.Map;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
import org.apache.shiro.SecurityUtils;
|
import org.jeecg.common.api.vo.Result;
|
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.system.query.QueryGenerator;
|
import org.jeecg.common.system.vo.LoginUser;
|
import org.jeecg.common.util.ImportExcelUtil;
|
import org.jeecg.modules.base.entity.Unit;
|
import org.jeecg.modules.base.service.IUnitService;
|
import org.jeecg.modules.eam.entity.*;
|
import org.jeecg.modules.eam.service.IInspectionProjectService;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.jeecg.modules.eam.service.IInspectionProjectCategoryService;
|
import org.jeecg.common.system.base.controller.JeecgController;
|
import org.jeecg.modules.eam.vo.InspectionProjectImportVo;
|
import org.jeecg.modules.system.entity.SysDict;
|
import org.jeecg.modules.system.entity.SysDictItem;
|
import org.jeecg.modules.system.service.ISysDictItemService;
|
import org.jeecg.modules.system.service.ISysDictService;
|
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.servlet.ModelAndView;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.jeecg.common.aspect.annotation.AutoLog;
|
|
/**
|
* @Description: mom_eam_inspection_project
|
* @Author: jeecg-boot
|
* @Date: 2023-03-10
|
* @Version: V1.0
|
*/
|
@Api(tags="mom_eam_inspection_project")
|
@RestController
|
@RequestMapping("/eam/inspectionProject")
|
@Slf4j
|
public class InspectionProjectController extends JeecgController<InspectionProject, IInspectionProjectService> {
|
@Autowired
|
private IInspectionProjectService inspectionProjectService;
|
@Autowired
|
private IInspectionProjectCategoryService inspectionProjectCategoryService;
|
@Autowired
|
private ISysDictService sysDictService;
|
@Autowired
|
private ISysDictItemService sysDictItemService;
|
@Autowired
|
private IUnitService unitService;
|
|
/**
|
* 分页列表查询
|
*
|
* @param inspectionProject
|
* @param pageNo
|
* @param pageSize
|
* @param req
|
* @return
|
*/
|
//@AutoLog(value = "mom_eam_inspection_project-分页列表查询")
|
@ApiOperation(value="mom_eam_inspection_project-分页列表查询", notes="mom_eam_inspection_project-分页列表查询")
|
@GetMapping(value = "/list")
|
public Result<IPage<InspectionProject>> queryPageList(InspectionProject inspectionProject,
|
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
HttpServletRequest req) {
|
QueryWrapper<InspectionProject> queryWrapper = QueryGenerator.initQueryWrapper(inspectionProject, req.getParameterMap());
|
Page<InspectionProject> page = new Page<InspectionProject>(pageNo, pageSize);
|
IPage<InspectionProject> pageList = inspectionProjectService.page(page, queryWrapper);
|
List<InspectionProject> records = pageList.getRecords();
|
for (InspectionProject record : records) {
|
String inspectionProjectTypeId = record.getInspectionProjectCategoryId();
|
InspectionProjectCategory inspectionProjectCategory = inspectionProjectCategoryService.getById(inspectionProjectTypeId);
|
if(inspectionProjectCategory != null ){
|
record.setInspectionProjectCategoryNumName(inspectionProjectCategory.getNum()+"/"+ inspectionProjectCategory.getName());
|
}else{
|
record.setInspectionProjectCategoryNumName("/");
|
}
|
|
}
|
return Result.OK(pageList);
|
}
|
|
/**
|
* 添加
|
*
|
* @param inspectionProject
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_inspection_project-添加")
|
@ApiOperation(value="mom_eam_inspection_project-添加", notes="mom_eam_inspection_project-添加")
|
//@RequiresPermissions("org.jeecg.modules.demo:mom_eam_inspection_project:add")
|
@PostMapping(value = "/add")
|
public Result<String> add(@RequestBody InspectionProject inspectionProject) {
|
String testValueType = inspectionProject.getTestValueType();
|
if("1".equals(testValueType)){
|
BigDecimal surfaceValue = inspectionProject.getSurfaceValue();
|
BigDecimal upValue = inspectionProject.getUpValue();
|
BigDecimal downValue = inspectionProject.getDownValue();
|
BigDecimal subtract = surfaceValue.subtract(upValue);
|
BigDecimal add = surfaceValue.add(downValue);
|
inspectionProject.setDetectionStandard(surfaceValue+"(-"+upValue+",+"+downValue+")");
|
inspectionProject.setAcceptabilityLimit("["+subtract+","+add+"]");
|
}else{
|
inspectionProject.setSurfaceValue(null);
|
inspectionProject.setUpValue(null);
|
inspectionProject.setDownValue(null);
|
// inspectionProject.setDetectionStandard("");
|
inspectionProject.setAcceptabilityLimit("/");
|
}
|
inspectionProjectService.save(inspectionProject);
|
return Result.OK("添加成功!");
|
}
|
|
/**
|
* 编辑
|
*
|
* @param inspectionProject
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_inspection_project-编辑")
|
@ApiOperation(value="mom_eam_inspection_project-编辑", notes="mom_eam_inspection_project-编辑")
|
//@RequiresPermissions("org.jeecg.modules.demo:mom_eam_inspection_project:edit")
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
|
public Result<String> edit(@RequestBody InspectionProject inspectionProject) {
|
String testValueType = inspectionProject.getTestValueType();
|
if("1".equals(testValueType)){
|
BigDecimal surfaceValue = inspectionProject.getSurfaceValue();
|
BigDecimal upValue = inspectionProject.getUpValue();
|
BigDecimal downValue = inspectionProject.getDownValue();
|
BigDecimal subtract = surfaceValue.subtract(upValue);
|
BigDecimal add = surfaceValue.add(downValue);
|
inspectionProject.setDetectionStandard(surfaceValue+"(-"+upValue+",+"+downValue+")");
|
inspectionProject.setAcceptabilityLimit("["+subtract+","+add+"]");
|
}else{
|
inspectionProject.setSurfaceValue(null);
|
inspectionProject.setUpValue(null);
|
inspectionProject.setDownValue(null);
|
// inspectionProject.setDetectionStandard("");
|
inspectionProject.setAcceptabilityLimit("/");
|
}
|
inspectionProjectService.updateById(inspectionProject);
|
return Result.OK("编辑成功!");
|
}
|
|
/**
|
* 通过id删除
|
*
|
* @param id
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_inspection_project-通过id删除")
|
@ApiOperation(value="mom_eam_inspection_project-通过id删除", notes="mom_eam_inspection_project-通过id删除")
|
//@RequiresPermissions("org.jeecg.modules.demo:mom_eam_inspection_project:delete")
|
@DeleteMapping(value = "/delete")
|
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
|
InspectionProject inspectionProject = inspectionProjectService.getById(id);
|
inspectionProject.setDelFlag(1);
|
inspectionProjectService.updateById(inspectionProject);
|
return Result.OK("删除成功!");
|
}
|
|
/**
|
* 批量删除
|
*
|
* @param ids
|
* @return
|
*/
|
@AutoLog(value = "mom_eam_inspection_project-批量删除")
|
@ApiOperation(value="mom_eam_inspection_project-批量删除", notes="mom_eam_inspection_project-批量删除")
|
//@RequiresPermissions("org.jeecg.modules.demo:mom_eam_inspection_project:deleteBatch")
|
@DeleteMapping(value = "/deleteBatch")
|
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
|
List<String> idList = Arrays.asList(ids.split(","));
|
for (String id : idList) {
|
InspectionProject inspectionProject = inspectionProjectService.getById(id);
|
inspectionProject.setDelFlag(1);
|
inspectionProjectService.updateById(inspectionProject);
|
}
|
// this.inspectionProjectService.removeByIds(Arrays.asList(ids.split(",")));
|
return Result.OK("批量删除成功!");
|
}
|
|
/**
|
* 通过id查询
|
*
|
* @param id
|
* @return
|
*/
|
//@AutoLog(value = "mom_eam_inspection_project-通过id查询")
|
@ApiOperation(value="mom_eam_inspection_project-通过id查询", notes="mom_eam_inspection_project-通过id查询")
|
@GetMapping(value = "/queryById")
|
public Result<InspectionProject> queryById(@RequestParam(name="id",required=true) String id) {
|
InspectionProject inspectionProject = inspectionProjectService.getById(id);
|
if(inspectionProject==null) {
|
return Result.error("未找到对应数据");
|
}
|
return Result.OK(inspectionProject);
|
}
|
|
/**
|
* 导出excel
|
*
|
* @param request
|
* @param inspectionProject
|
*/
|
//@RequiresPermissions("org.jeecg.modules.demo:mom_eam_inspection_project:exportXls")
|
@RequestMapping(value = "/exportXls")
|
public ModelAndView exportXls(HttpServletRequest request, InspectionProject inspectionProject) {
|
return super.exportXls(request, inspectionProject, InspectionProject.class, "mom_eam_inspection_project");
|
}
|
|
/**
|
* 通过excel导入数据
|
*
|
* @param request
|
* @param response
|
* @return
|
*/
|
//@RequiresPermissions("mom_eam_inspection_project:importExcel")
|
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
|
@Transactional(rollbackFor = Exception.class)
|
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
// 错误信息
|
List<String> errorMessage = new ArrayList<>();
|
int successLines = 0, errorLines = 0;
|
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
MultipartFile file = entity.getValue();
|
ImportParams params = new ImportParams();
|
params.setNeedSave(true);
|
try {
|
List<InspectionProjectImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), InspectionProjectImportVo.class, params);
|
for (int i = 0; i < list.size(); i++) {
|
InspectionProjectImportVo inspectionProjectImportVo = list.get(i);
|
InspectionProject inspectionProject = new InspectionProject();
|
InspectionProjectCategory inspectionProjectCategory = inspectionProjectCategoryService.getOne(new QueryWrapper<InspectionProjectCategory>().eq("name", inspectionProjectImportVo.getInspectionProjectCategoryId()), false);
|
Unit unit = unitService.getOne(new QueryWrapper<Unit>().eq("name",inspectionProjectImportVo.getUnitId()),false);
|
inspectionProject.setInspectionTool(inspectionProjectImportVo.getInspectionTool());
|
if (StringUtils.isBlank(inspectionProjectImportVo.getNum())) {
|
errorMessage.add("第" + (i + 1) + "行导入失败,原因:点检项目编码缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setNum(inspectionProjectImportVo.getNum());
|
}
|
if(StringUtils.isBlank(inspectionProjectImportVo.getName())){
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:点检项目名称缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setNum(inspectionProjectImportVo.getName());
|
}
|
if(StringUtils.isBlank(inspectionProjectImportVo.getTestValueType())){
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:检验值类型缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"test_value_type").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getTestValueType()).list())){
|
errorMessage.add("第" + (i + 1) + "行导入失败,原因:检验值类型不存在,请先维护检验值类型;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setTestValueType(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"test_value_type").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).one().getItemValue());
|
}
|
if(ObjectUtils.isNull(inspectionProjectCategory)) {
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:该点检项目分类不存在,请先维护点检项目分类;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setInspectionProjectCategoryId(inspectionProjectCategory.getId());
|
}
|
if("枚举型".equals(inspectionProjectImportVo.getTestValueType())){
|
if(ObjectUtils.isNull(inspectionProjectImportVo.getDetectionStandard())){
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:检测标准缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setDetectionStandard(inspectionProjectImportVo.getDetectionStandard());
|
}
|
}
|
if("数值型".equals(inspectionProjectImportVo.getTestValueType())){
|
if(ObjectUtils.isNull(inspectionProjectImportVo.getSurfaceValue())){
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:名义值缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else{
|
inspectionProject.setSurfaceValue(inspectionProjectImportVo.getSurfaceValue());
|
}
|
if(ObjectUtils.isNull(inspectionProjectImportVo.getUpValue())){
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:上偏差缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else{
|
inspectionProject.setUpValue(inspectionProjectImportVo.getUpValue());
|
}
|
if(ObjectUtils.isNull(inspectionProjectImportVo.getDownValue())){
|
errorMessage.add("第"+(i+1)+"行导入失败,原因:下偏差缺失,请填写必填项后再导入;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setDownValue(inspectionProjectImportVo.getDownValue());
|
}
|
}
|
if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"inspection_method").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).list())){
|
errorMessage.add("第" + (i + 1) + "行导入失败,原因:点检方法不存在,请先维护点检方法;");
|
errorLines++;
|
continue;
|
}else{
|
inspectionProject.setInspectionMethod(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"inspection_method").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).one().getItemValue());
|
}
|
if(ObjectUtils.isNull(unit)){
|
errorMessage.add("第" + (i + 1) + "行导入失败,原因:计量单位不存在,请先维护计量单位;");
|
errorLines++;
|
continue;
|
}else {
|
inspectionProject.setUnitId(unit.getId());
|
}
|
List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getNum,inspectionProjectImportVo.getNum()).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
|
if(CollectionUtils.isEmpty(inspectionProjectList)){
|
inspectionProjectService.save(inspectionProject);
|
successLines++;
|
}
|
}
|
} catch (Exception e) {
|
errorMessage.add("发生异常:" + e.getMessage());
|
log.error(e.getMessage(), e);
|
return (Result<?>) errorMessage;
|
} finally {
|
try {
|
file.getInputStream().close();
|
} catch (IOException e) {
|
log.error(e.getMessage(), e);
|
}
|
}
|
}
|
return ImportExcelUtil.imporReturnRes(errorLines, successLines, errorMessage);
|
}
|
|
}
|