package com.miniframe.bisiness.es; import java.util.*; import com.miniframe.core.ExecProcessFlow; import com.miniframe.core.exception.BusinessException; import com.miniframe.core.ext.UtilTools; import com.miniframe.generate.appcode.AttValueType; import com.miniframe.generate.business.es.model.ES0010BaseModel; import com.miniframe.generate.comm.es.D_ES0010_DATAS_RECODE; import com.miniframe.generate.comm.es.D_ES0010_DATAS_VALS_RECODE; import com.miniframe.generate.comm.es.D_ES0010_HEADERS_RECODE; import com.miniframe.model.es.*; import com.miniframe.model.es.dao.*; import org.apache.tika.io.EndianUtils; /** * 无锡发动机,“项目组件属性值数据查询”逻辑处理(重新生成不覆盖)。 */ public class ES0010Service extends ES0010BaseModel implements ExecProcessFlow { private static final long serialVersionUID = -7051358269847459502L; /** * 无锡发动机,“项目组件属性值数据查询”业务核心处理 */ public void transExecute() throws Exception { EsUnitSysUsMapper sudao = UtilTools.getBean(EsUnitSysUsMapper.class); EsUnitSysUsSQLBuilder susb = new EsUnitSysUsSQLBuilder(); EsUnitSysUsSQLBuilder.Criteria susc = susb.createCriteria(); susc.andUidEqualTo(getA_eshead().getUserId()); List sus = sudao.selectByExample(susb); String sutId = ""; if(sus ==null||sus.isEmpty()){//获取系统单位 sutId="1";//系统单位 }else{ sutId=sus.get(0).getSutId(); } String pcaId = this.getA_es0010().getPcaId(); EsProComAttMapper pcadao =UtilTools.getBean(EsProComAttMapper.class); EsProComAtt pca = pcadao.selectByPrimaryKey(pcaId); if(pca==null){ throw new BusinessException("ES000001");//项目组件属性不存在 } EsAttMapper attdao =UtilTools.getBean(EsAttMapper.class); EsAtt att = attdao.selectByPrimaryKey(pca.getAttId()); if(att==null){ throw new BusinessException("ES000002");//组件属性数据不存在 } if(att.getValueType()!=Short.valueOf(AttValueType.v3.getIndex())){ throw new BusinessException("ES000003");//该组件属性数据类型不是数列 } EsDataMapper dataDao = UtilTools.getBean(EsDataMapper.class); EsData data = dataDao.selectByPrimaryKey(att.getValueDef()); if(data==null){ throw new BusinessException("ES000004");//数据定义错误 } EsDataAttMapper dataAttDao = UtilTools.getBean(EsDataAttMapper.class); EsDataAttSQLBuilder dataAttSb = new EsDataAttSQLBuilder(); EsDataAttSQLBuilder.Criteria dataAttSc = dataAttSb.createCriteria(); dataAttSc.andCdIdEqualTo(data.getCdId()); dataAttSb.setOrderByClause("ser asc"); List dataAtts = dataAttDao.selectByExample(dataAttSb); List hrs = new ArrayList<>(); for (EsDataAtt datt:dataAtts) { D_ES0010_HEADERS_RECODE hr =new D_ES0010_HEADERS_RECODE(); hr.setCdvId(datt.getCdvId()); hr.setCdId(datt.getCdId()); hr.setName(datt.getName()); hr.setCode(datt.getCode()); hr.setDataType(data.getType()); hr.setValueDef(datt.getValueDef()); hr.setValueType(datt.getValueType()); hr.setUnitType(datt.getUnitType()); hr.setUnitDef(getUnitByGutIdAndStuId(datt.getUnitType(),sutId)); hrs.add(hr); } this.getD_es0010().setHeaders(hrs); EsProComAttDataMapper pcaddao = UtilTools.getBean(EsProComAttDataMapper.class); EsProComAttDataSQLBuilder pcadsb = new EsProComAttDataSQLBuilder(); EsProComAttDataSQLBuilder.Criteria pcadsc = pcadsb.createCriteria(); pcadsc.andPcaIdEqualTo(pcaId); pcadsb.setOrderByClause("ser asc"); List pcads =pcaddao.selectByExample(pcadsb); List das = new ArrayList<>(); for (EsProComAttData pcad :pcads) { D_ES0010_DATAS_RECODE da =new D_ES0010_DATAS_RECODE(); da.setPcadgId(pcad.getPcadgId()); da.setPcadId(pcad.getPcadId()); da.setValue(pcad.getValue()); da.setUnit(pcad.getUnit()); da.setCdvId(pcad.getCdvId()); das.add(da); } this.getD_es0010().setDatas(das); this.getD_es0010().setPcaId(pcaId); } private String getUnitByGutIdAndStuId(String gutId,String sutId){ String unitValue = ""; EsUnitSysDelMapper sddao = UtilTools.getBean(EsUnitSysDelMapper.class); EsUnitSysDelSQLBuilder sdsb = new EsUnitSysDelSQLBuilder(); EsUnitSysDelSQLBuilder.Criteria sdcs =sdsb.createCriteria(); sdcs.andGutIdEqualTo(gutId); sdcs.andSutIdEqualTo(sutId); List dels = sddao.selectByExample(sdsb); if(dels !=null&&dels.isEmpty()){//获取单位 unitValue=dels.get(0).getValue(); } return unitValue; } /** * 无锡发动机,“项目组件属性值数据查询”业务前处理 */ 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(); } }