|
|
|
@ -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<Rulex, IRulexService> { |
|
|
|
|
@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<Rulex, IRulexService> { |
|
|
|
|
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<Rulex, IRulexService> { |
|
|
|
|
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<String, MultipartFile> fileMap = multipartRequest.getFileMap(); |
|
|
|
|
|
|
|
|
|
for (Map.Entry<String, MultipartFile> 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<ScTeamsDr> list = ExcelImportUtil.importExcel(file.getInputStream(), ScTeamsDr.class, params);
|
|
|
|
|
List<RuleVo> list = ExcelImportUtil.importExcel(file.getInputStream(), RuleVo.class, params); |
|
|
|
|
if (list == null || list.size() <= 0) { |
|
|
|
|
return Result.error("文件导入失败:模板中暂无数据"); |
|
|
|
|
} |
|
|
|
|
System.err.println("----------------------------------------------"); |
|
|
|
|
System.out.println("List<ScTeams> 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<RuleVo> 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); |
|
|
|
|