提交 6eef12ae 编写于 作者: zhouweidong's avatar zhouweidong

实体关系属性映射

上级 32de86d8
......@@ -20,7 +20,20 @@ TARGET=PSDATAENTITY
</#if>
</#list>
</#if>
<#break>
</#list>
</#if>
<#comment>判断是否有1N的主关系属性映射(sum.avg.max.min.count..)</#comment>
<#assign hasPSDERsMapping=false>
<#if item.getMinorPSDERs?? && item.getMinorPSDERs()??>
<#list item.getMinorPSDERs() as MinorPSDER>
<#if MinorPSDER.getPSDER1NDEFieldMaps()?? && MinorPSDER.getDERType() =='DER1N' && (MinorPSDER.getMajorPSDataEntity().getStorageMode()==1||MinorPSDER.getMajorPSDataEntity().getStorageMode()==2||MinorPSDER.getMajorPSDataEntity().getStorageMode()==4) >
<#list MinorPSDER.getPSDER1NDEFieldMaps() as derField>
<#if derField.getMapType()=="COUNT" || derField.getMapType()=="SUM"|| derField.getMapType()=="AVG" || derField.getMapType()=="MAX" || derField.getMapType()=="MIN">
<#assign hasPSDERsMapping=true>
<#break>
</#if>
</#list>
</#if>
</#list>
</#if>
<#comment>判断当前实体是否为索引子实体</#comment>
......@@ -624,6 +637,60 @@ ${deaction.getRender().code}
}
</#if>
<#comment>更新父数据(实体关系属性映射)</#comment>
<#if hasPSDERsMapping>
/**
* 更新父数据(实体关系属性映射)
* @param et
*/
private void updateParentData(${item.getCodeName()} et){
<#list item.getMinorPSDERs() as MinorPSDER>
<#if MinorPSDER?? && MinorPSDER.getDERType()=='DER1N' && (MinorPSDER.getMajorPSDataEntity().getStorageMode()==1||MinorPSDER.getMajorPSDataEntity().getStorageMode()==2||MinorPSDER.getMajorPSDataEntity().getStorageMode()==4)>
<#if MinorPSDER.getMajorPSDataEntity?? && MinorPSDER.getMajorPSDataEntity()?? && MinorPSDER.getCodeName?? && MinorPSDER.getCodeName()??>
<#assign MajorEntity = MinorPSDER.getMajorPSDataEntity()>
<#assign MajorEntityName=srfcaseformat(MinorPSDER.getCodeName(),'l_u2lC')>
<#assign MajorKeyFieldName =MinorPSDER.getPSPickupDEField().name>
<#assign MajorKeyFieldCodeName =srfcaseformat(MinorPSDER.getPSPickupDEField().codeName,'l_u2lC')?cap_first>
<#assign MajorEntityService=srfcaseformat(MinorPSDER.getMajorPSDataEntity().getCodeName(),'l_u2lC')+"Service">
//实体关系[${MinorPSDER.name}]
if(!ObjectUtils.isEmpty(et.get${MajorKeyFieldCodeName}())){
<#if MinorPSDER.getPSDER1NDEFieldMaps()??>
${pub.getPKGCodeName()}.core.${MajorEntity.getPSSystemModule().getCodeName()?lower_case}.domain.${MajorEntity.getCodeName()} ${MajorEntityName}=new ${pub.getPKGCodeName()}.core.${MajorEntity.getPSSystemModule().getCodeName()?lower_case}.domain.${MajorEntity.getCodeName()}();
<#list MinorPSDER.getPSDER1NDEFieldMaps() as derField>
<#if derField.getMapType()=="COUNT" || derField.getMapType()=="SUM"|| derField.getMapType()=="AVG" || derField.getMapType()=="MAX" || derField.getMapType()=="MIN">
<#assign MajorEntityDEFieldName=derField.getMajorPSDEField().name()>
<#if derField.getMapType()=="COUNT">
${MajorEntityName}.set("${MajorEntityDEFieldName}",baseMapper.selectCount(new QueryWrapper()));
<#else>
<#if derField.getMapType()=="SUM">
<#assign derFieldType="sum("+MajorEntityDEFieldName+")">
<#elseif derField.getMapType()=="AVG">
<#assign derFieldType="avg("+MajorEntityDEFieldName+")">
<#elseif derField.getMapType()=="MAX">
<#assign derFieldType="max("+MajorEntityDEFieldName+")">
<#elseif derField.getMapType()=="MIN">
<#assign derFieldType="min("+MajorEntityDEFieldName+")">
</#if>
<#if derFieldType??>
List<Object> objects_${derField_index} = baseMapper.selectObjs(new QueryWrapper().select("${derFieldType}").eq(true,"${MajorKeyFieldName}",et.get${MajorKeyFieldCodeName}()));
if(!ObjectUtils.isEmpty(objects_${derField_index}) && objects_${derField_index}.size()>0){
${MajorEntityName}.set("${MajorEntityDEFieldName}",objects_${derField_index}.get(0));
}
</#if>
</#if>
${MajorEntityName}.set("${MajorKeyFieldCodeName}","et.get${MajorKeyFieldCodeName}()");
${srfcaseformat(MinorPSDER.getMajorPSDataEntity().getCodeName(),'l_u2lC')}Service.update(${MajorEntityName});
</#if>
</#list>
</#if>
}
</#if>
</#if>
</#list>
}
</#if>
<#comment>同步数据到索引主实体</#comment>
<#if isIndexSubDE && indexPSDER??>
@Autowired
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册