MDO0081Service.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.miniframe.bisiness.mdo;
  2. import java.io.File;
  3. import java.nio.file.Files;
  4. import java.nio.file.Paths;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. import java.util.Map;
  8. import com.alibaba.excel.EasyExcel;
  9. import com.miniframe.core.ExecProcessFlow;
  10. import com.miniframe.core.exception.BusinessException;
  11. import com.miniframe.core.ext.UtilTools;
  12. import com.miniframe.generate.business.mdo.model.MDO0081BaseModel;
  13. import com.miniframe.mdo.excel.ProVarM;
  14. import com.miniframe.model.mdo.MdoProject;
  15. import com.miniframe.model.mdo.MdoProjectVariate;
  16. import com.miniframe.model.mdo.dao.MdoProjectVariateMapper;
  17. import com.miniframe.tools.XIFileUtils;
  18. /**
  19. * 西工大系统,“设计变量模版导入”逻辑处理(重新生成不覆盖)。
  20. */
  21. public class MDO0081Service extends MDO0081BaseModel implements ExecProcessFlow {
  22. private static final long serialVersionUID = -7051358269847459502L;
  23. /**
  24. * 西工大系统,“设计变量模版导入”业务核心处理
  25. */
  26. public void transExecute() throws Exception {
  27. String pid = this.getA_mdo0081().getPid();
  28. String filePath = this.getA_mdo0081().getFile();
  29. if (Files.notExists(Paths.get(filePath))) {
  30. throw new BusinessException("EB2000008");
  31. }
  32. List<ProVarM> ms = new ArrayList<>();
  33. ms=EasyExcel.read(filePath).head( ProVarM.class).sheet("sheet1").doReadSync();
  34. if(ms.isEmpty()){
  35. throw new BusinessException("MDO000014");
  36. }
  37. MdoProjectVariateMapper vdao = UtilTools.getBean(MdoProjectVariateMapper.class);
  38. List<MdoProjectVariate> vs = new ArrayList<>();
  39. if(ms!=null&&!ms.isEmpty()){
  40. for (ProVarM m:ms) {
  41. MdoProjectVariate v = vdao.selectByPrimaryKey(m.getId());
  42. if(v==null||v.getPid()!=pid){
  43. throw new BusinessException("MDO000013",m.getId());
  44. }
  45. v.setUpper(m.getUpper());
  46. v.setLower(m.getLower());
  47. v.setReference(m.getReference());
  48. vdao.updateByPrimaryKey(v);
  49. }
  50. }
  51. XIFileUtils.delete(filePath);
  52. }
  53. /**
  54. * 西工大系统,“设计变量模版导入”业务前处理
  55. */
  56. public void preTransFlow() throws Exception {
  57. this.validater();
  58. }
  59. /**
  60. * 西工大系统,“设计变量模版导入”业务后处理
  61. */
  62. public void afterTransFlow() throws Exception {
  63. }
  64. /**
  65. * 西工大系统,“设计变量模版导入”逻辑入口处理方法
  66. */
  67. @SuppressWarnings("rawtypes")
  68. @Override
  69. public Map execute(Map vars) throws Exception {
  70. this.setTransMap(vars);
  71. preTransFlow();// 执行业务开始的规则检查和校验
  72. transExecute();// 执行核心业务段
  73. afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
  74. return this.getTransMap();
  75. }
  76. }