diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java index 3e73466..8f0b8f2 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/rulex/controller/RulexController.java @@ -3,22 +3,15 @@ package org.jeecg.modules.demo.rulex.controller; import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.demo.functionx.entity.Functionx; import org.jeecg.modules.demo.functionx.mapper.FunctionxMapper; -import org.jeecg.modules.demo.requirementfun.entity.RequirementFun; -import org.jeecg.modules.demo.requirementfun.service.IRequirementFunService; -import org.jeecg.modules.demo.requirementitem.entity.RequirementItem; -import org.jeecg.modules.demo.requirementitem.service.IRequirementItemService; +import org.jeecg.modules.demo.rulex.entity.RuleVo; import org.jeecg.modules.demo.rulex.entity.Rulex; +import org.jeecg.modules.demo.rulex.service.IRuleVoService; import org.jeecg.modules.demo.rulex.service.IRulexService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -26,18 +19,20 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.fieldx.entity.Fieldx; +import org.jeecg.modules.fieldx.service.IFieldxService; +import org.jeecg.modules.modulex.entity.Modulex; +import org.jeecg.modules.modulex.service.IModulexService; +import org.jeecg.modules.tablex.entity.Tablex; +import org.jeecg.modules.tablex.service.ITablexService; import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; 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 com.alibaba.fastjson.JSON; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; @@ -55,12 +50,17 @@ import org.jeecg.common.aspect.annotation.AutoLog; public class RulexController extends JeecgController { @Autowired private IRulexService rulexService; + @Autowired + private IRuleVoService iRuleVoService; @Autowired FunctionxMapper functionxMapper; + + @Autowired + IFieldxService iFieldxService; @Autowired - private IRequirementFunService requirementFunService; + ITablexService iTablexService; @Autowired - private IRequirementItemService requirementItemService; + IModulexService iModulexService; /** @@ -126,43 +126,6 @@ public class RulexController extends JeecgController { return Result.OK("添加成功!"); } - /** - * 转化规则 - * - * @param rulex - * @return - */ - @AutoLog(value = "转化规则") - @ApiOperation(value="转化规则", notes="转化规则") - @PostMapping(value = "/zhgz") - public Result zhgz(@RequestBody Rulex rulex) { - if(rulex.getFunctionId()==null){ - return Result.error("功能点错误!!!"); - } - Functionx functionx = functionxMapper.selectById(rulex.getFunctionId()); - if(functionx.getStartTime()!=null){ - rulex.setStartTime(functionx.getStartTime()); - } - if(functionx.getSubmitTime()!=null){ - rulex.setSubmitTime(functionx.getSubmitTime()); - } - if(functionx.getRealDuration()!=null){ - rulex.setRealDuration(functionx.getRealDuration()); - } - rulex.setManagerUsers(functionx.getManagerUsers()); - rulex.setWorkStatus(functionx.getWorkStatus()); - rulexService.save(rulex); - RequirementItem requirementItem = requirementItemService.getById(rulex.getModuleId()); - requirementItem.setRequirementStatus(2); - requirementItemService.updateById(requirementItem); - RequirementFun requirementFun1 = new RequirementFun(); - requirementFun1.setRequirementId(rulex.getModuleId()); - requirementFun1.setFunId(rulex.getId()); - requirementFun1.setFunLevel(4); - requirementFunService.save(requirementFun1); - return Result.OK("添加成功!"); - } - /** * 编辑 * @@ -244,7 +207,149 @@ public class RulexController extends JeecgController { public Result importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, Rulex.class); } + public Result preImportAndExcel(HttpServletRequest request) { + //return super.importExcel(request, response, ScTeams.class); + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + System.err.println("----------------------------------------------"); + // 获取上传文件对象 + MultipartFile file = entity.getValue(); + if (file==null){ + return Result.error("文件上传失败,请重新上传"); + } + ImportParams params = new ImportParams(); + params.setTitleRows(2);//表格标题行数,默认0 + params.setHeadRows(1);//表头行数,默认1 + params.setNeedSave(true);//是否需要保存上传的Excel,默认为false + try { +// List list = ExcelImportUtil.importExcel(file.getInputStream(), ScTeamsDr.class, params); + List list = ExcelImportUtil.importExcel(file.getInputStream(), RuleVo.class, params); + if (list == null || list.size() <= 0) { + return Result.error("文件导入失败:模板中暂无数据"); + } + System.err.println("----------------------------------------------"); + System.out.println("List list = ExcelImportUtil.importExcel: " + list); + int num = 0; + for (int i = 0; i < list.size(); i++) { + if (list.size() > 0 && + list.get(i).getRuleNo() == null && + list.get(i).getRuleCode() == null && + list.get(i).getPmDescribe() == null && + list.get(i).getModuleId() == null && + list.get(i).getFunctionId() == null && + list.get(i).getDiagrams() == null && + list.get(i).getTableId() == null && + list.get(i).getFieldId() == null && + list.get(i).getManagerUsers() == null && + list.get(i).getWorkLevel() == null && + list.get(i).getWorkStatus() == null && + list.get(i).getStartTime() == null && + list.get(i).getManagerUsers() == null && + list.get(i).getDuration() == null && + list.get(i).getSubmitTime() == null && + list.get(i).getRealDuration() == null&& + list.get(i).getStatus() == null&& + list.get(i).getVerisonStatus() == null&& + list.get(i).getVerison() == null) { + continue; + } + iRuleVoService.save(list.get(i)); + if (num == 0) { + return Result.error("文件导入失败:导入模板不匹配"); + } else { + return Result.ok("文件导入成功!"); + } + } + + + }catch (Exception e) { + //update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示 + String msg = e.getMessage(); + log.error(msg, e); + //if(msg!=null && msg.contains("Duplicate entry")) + if (msg != null && msg.indexOf("Duplicate entry") >= 0) { + return Result.error("文件导入失败:有重复数据!"); + } else { + return Result.error("文件导入失败:" + e.getMessage()); + } + //update-end-author:taoyan date:20211124 for: 导入数据重复增加提示 + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + List ruleVoList = iRuleVoService.list(); + if (ruleVoList.size()<=0||ruleVoList==null){ + return Result.error("文件导入失败"); + } + for (int i = 0; i < ruleVoList.size(); i++) { + RuleVo ruleVo = ruleVoList.get(i); + //对应字段 + String fieldId = ruleVo.getFieldId(); + Fieldx byId = iFieldxService.getById(fieldId); + if (byId==null){ + return Result.error("字段输入错误,请核对"); + } + //对应功能 + String functionId = ruleVo.getFunctionId(); + Fieldx byId1 = iFieldxService.getById(functionId); + if (byId1==null){ + return Result.error("功能输入错误,请核对"); + } + //对应模块 + String moduleId = ruleVo.getModuleId(); + Modulex byId2 = iModulexService.getById(moduleId); + if (byId2==null){ + return Result.error("模块输入错误,请核对"); + } + //对应实体 + String tableId = ruleVo.getTableId(); + Tablex byId3 = iTablexService.getById(tableId); + if (byId3==null){ + return Result.error("实体输入错误,请核对"); + } + try { + Double.valueOf(ruleVo.getDuration()); + }catch (Exception e){ + return Result.error("任务时长输入错误,请核对"); + } + + try { + Integer.valueOf(ruleVo.getRealDuration()); + }catch (Exception e){ + return Result.error("实际时长输入错误,请核对"); + } + + try { + Integer.valueOf(ruleVo.getWorkLevel()); + }catch (Exception e){ + return Result.error("任务等级输入错误,请核对"); + } + try { + Double.valueOf(ruleVo.getWorkStatus()); + }catch (Exception e){ + return Result.error("任务状态输入错误,请核对"); + } + try { + Integer.valueOf(ruleVo.getStatus()); + }catch (Exception e){ + return Result.error("规则输入错误,请核对"); + } + try { + Double.valueOf(ruleVo.getVerisonStatus()); + }catch (Exception e){ + return Result.error("版本状态输入错误,请核对"); + } + + } + return Result.error("文件导入失败!"); + + } @GetMapping(value = "/sort") public Result sort(@RequestParam(name="id",required=true) String id) { return rulexService.sort(id);