| | |
| | | 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.modules.eam.entity.InspectionProject; |
| | | import org.jeecg.modules.eam.entity.InspectionProjectCategory; |
| | | 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 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; |
| | |
| | | private IInspectionProjectService inspectionProjectService; |
| | | @Autowired |
| | | private IInspectionProjectCategoryService inspectionProjectCategoryService; |
| | | @Autowired |
| | | private ISysDictService sysDictService; |
| | | @Autowired |
| | | private ISysDictItemService sysDictItemService; |
| | | @Autowired |
| | | private IUnitService unitService; |
| | | |
| | | /** |
| | | * å页å表æ¥è¯¢ |
| | |
| | | */ |
| | | //@RequiresPermissions("mom_eam_inspection_project:importExcel") |
| | | @RequestMapping(value = "/importExcel", method = RequestMethod.POST) |
| | | public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { |
| | | return super.importExcel(request, response, InspectionProject.class); |
| | | @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); |
| | | } |
| | | |
| | | } |