package com.miniframe.bisiness.mdo; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.alibaba.excel.EasyExcel; import com.miniframe.core.ExecProcessFlow; import com.miniframe.core.exception.BusinessException; import com.miniframe.core.ext.UtilTools; import com.miniframe.generate.business.mdo.model.MDO0081BaseModel; import com.miniframe.mdo.excel.ProVarM; import com.miniframe.model.mdo.MdoProject; import com.miniframe.model.mdo.MdoProjectVariate; import com.miniframe.model.mdo.dao.MdoProjectVariateMapper; import com.miniframe.tools.XIFileUtils; /** * 西工大系统,“设计变量模版导入”逻辑处理(重新生成不覆盖)。 */ public class MDO0081Service extends MDO0081BaseModel implements ExecProcessFlow { private static final long serialVersionUID = -7051358269847459502L; /** * 西工大系统,“设计变量模版导入”业务核心处理 */ public void transExecute() throws Exception { String pid = this.getA_mdo0081().getPid(); String filePath = this.getA_mdo0081().getFile(); if (Files.notExists(Paths.get(filePath))) { throw new BusinessException("EB2000008"); } List ms = new ArrayList<>(); ms=EasyExcel.read(filePath).head( ProVarM.class).sheet("sheet1").doReadSync(); if(ms.isEmpty()){ throw new BusinessException("MDO000014"); } MdoProjectVariateMapper vdao = UtilTools.getBean(MdoProjectVariateMapper.class); List vs = new ArrayList<>(); if(ms!=null&&!ms.isEmpty()){ for (ProVarM m:ms) { MdoProjectVariate v = vdao.selectByPrimaryKey(m.getId()); if(v==null||v.getPid()!=pid){ throw new BusinessException("MDO000013",m.getId()); } v.setUpper(m.getUpper()); v.setLower(m.getLower()); v.setReference(m.getReference()); vdao.updateByPrimaryKey(v); } } XIFileUtils.delete(filePath); } /** * 西工大系统,“设计变量模版导入”业务前处理 */ public void preTransFlow() throws Exception { this.validater(); } /** * 西工大系统,“设计变量模版导入”业务后处理 */ public void afterTransFlow() throws Exception { } /** * 西工大系统,“设计变量模版导入”逻辑入口处理方法 */ @SuppressWarnings("rawtypes") @Override public Map execute(Map vars) throws Exception { this.setTransMap(vars); preTransFlow();// 执行业务开始的规则检查和校验 transExecute();// 执行核心业务段 afterTransFlow();// 执行核心逻辑完成后的收尾逻辑 return this.getTransMap(); } }