@ -9,7 +9,6 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant ;
import com.epmet.commons.tools.exception.EpmetErrorCode ;
import com.epmet.commons.tools.exception.EpmetException ;
import com.epmet.commons.tools.exception.ErrorCode ;
import com.epmet.commons.tools.page.PageData ;
import com.epmet.commons.tools.security.user.LoginUserUtil ;
import com.epmet.commons.tools.utils.ConvertUtils ;
@ -91,15 +90,28 @@ public class PowerAxisStructServiceImpl extends BaseServiceImpl<PowerAxisStructD
@Override
@Transactional ( rollbackFor = Exception . class )
public void save ( PowerAxisStructDTO dto ) {
verifyStructField ( dto ) ;
PowerAxisStructEntity entity = ConvertUtils . sourceToTarget ( dto , PowerAxisStructEntity . class ) ;
insert ( entity ) ;
this . assembleStruct ( entity , dto . getStructLevel ( ) ) ;
baseDao . insert ( entity ) ;
}
@Override
@Transactional ( rollbackFor = Exception . class )
public void update ( PowerAxisStructDTO dto ) {
if ( dto . getId ( ) . equals ( dto . getPid ( ) ) ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "不能选择自身为上级节点" ) ;
}
verifyStructField ( dto ) ;
PowerAxisStructEntity entity = ConvertUtils . sourceToTarget ( dto , PowerAxisStructEntity . class ) ;
updateById ( entity ) ;
this . assembleStruct ( entity , dto . getStructLevel ( ) ) ;
baseDao . updateById ( entity ) ;
}
@Override
@ -111,59 +123,56 @@ public class PowerAxisStructServiceImpl extends BaseServiceImpl<PowerAxisStructD
@Override
public List < PowerAxisStructResultDTO > queryDeptByName ( PowerAxisStructFormDTO form ) {
String customerId = loginUserUtil . getLoginUserCustomerId ( ) ;
form . setCustomerId ( customerId ) ;
List < PowerAxisStructResultDTO > list = powerAxisStructDao . queryDeptByName ( form ) ;
return list ;
}
@Override
public List < PowerAxisStructListResultDTO > queryList ( ) {
List < PowerAxisStructListResultDTO > list = powerAxisStructDao . queryList ( ) ;
return list ;
}
@Override
public List < PowerAxisStructLeaderResultDTO > selectAllForTree ( PowerAxisStructLeaderFormDTO formDto ) {
return baseDao . selectAllForTree ( formDto ) ;
}
@Override
public void addOrg ( PowerAxisStructEntity form ) {
int structLevel = powerAxisTagService . selectStructLevelByCode ( loginUserUtil . getLoginUserCustomerId ( ) , PowerTagCategoryEnum . STRUCT . category ( ) , form . getCategoryCode ( ) ) ;
// 验证表单字段
private void verifyStructField ( PowerAxisStructDTO structDto ) {
String customerId = structDto . getCustomerId ( ) ;
String categoryCode = structDto . getCategoryCode ( ) ;
String agencyId = structDto . getAgencyId ( ) ;
Integer structLevel = structDto . getStructLevel ( ) ;
if ( PowerTagLevelEnum . ROOT . level ( ) = = structLevel ) {
if ( baseDao . queryCategory ( form ) > NumConstant . ZERO ) {
if ( baseDao . countRepeatStructByCategory ( customerId , agencyId , categoryCode , structDto . getId ( ) ) > NumConstant . ZERO ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "同一组织下只允许存在一个顶级节点" ) ;
}
} else {
int parentStructLevel = powerAxisTagService . selectStructLevelById ( customerId , PowerTagCategoryEnum . STRUCT . category ( ) , structDto . getPid ( ) ) ;
if ( structLevel - parentStructLevel > NumConstant . ONE ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "无法跨级添加节点" ) ;
}
}
if ( baseDao . queryName ( form ) > NumConstant . ZERO ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "同一组织下不允许存在重名的节点" ) ;
if ( baseDao . countRepeatStructByName ( customerId , structDto . getName ( ) , agencyId , structDto . getPid ( ) , structDto . getId ( ) ) > NumConstant . ZERO ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "同一节点下不允许添加同名的子 节点" ) ;
}
this . assembleStruct ( form , loginUserUtil . getLoginUserCustomerId ( ) ) ;
baseDao . insert ( form ) ;
}
/ * *
* 组装节点对象
*
* @param struct 提交的表单
* @param customerId 客户ID
* @param struct 提交的表单
* @param structLevel 节点级别
* @return void
* @author work @yujt.net.cn
* @date 2022 / 4 / 22 / 0022 14 : 04
* /
private void assembleStruct ( PowerAxisStructEntity struct , String customerId ) {
struct . setCustomerId ( customerId ) ;
private void assembleStruct ( PowerAxisStructEntity struct , int structLevel ) {
// 上级节点
String pid = struct . getPid ( ) ;
// 类别编码
String categoryCode = struct . getCategoryCode ( ) ;
if ( StringUtils . isBlank ( pid ) ) {
// 查询类别编码对应的节点级别
int structLevel = powerAxisTagService . selectStructLevelByCode ( customerId , PowerTagCategoryEnum . STRUCT . category ( ) , categoryCode ) ;
if ( PowerTagLevelEnum . ROOT . level ( ) = = structLevel ) {
pid = NumConstant . ZERO_STR ;
} else {
@ -198,54 +207,11 @@ public class PowerAxisStructServiceImpl extends BaseServiceImpl<PowerAxisStructD
}
}
@Override
public void modifyRog ( PowerAxisStructEntity form ) {
if ( form . getId ( ) . equals ( form . getPid ( ) ) ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "不能选择自身为上级节点" ) ;
}
int structLevel = powerAxisTagService . selectStructLevelByCode ( loginUserUtil . getLoginUserCustomerId ( ) , PowerTagCategoryEnum . STRUCT . category ( ) , form . getCategoryCode ( ) ) ;
if ( PowerTagLevelEnum . ROOT . level ( ) = = structLevel ) {
if ( baseDao . queryCategory ( form ) > NumConstant . ZERO ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "同一组织下只允许存在一个顶级节点" ) ;
}
}
if ( baseDao . queryName ( form ) > NumConstant . ZERO ) {
throw new EpmetException ( EpmetErrorCode . EPMET_COMMON_OPERATION_FAIL . getCode ( ) , "同一组织下不允许存在重名的节点" ) ;
}
this . assembleStruct ( form , loginUserUtil . getLoginUserCustomerId ( ) ) ;
baseDao . updateById ( form ) ;
}
// private void
@Override
public void delete ( String id ) {
baseDao . delete ( id ) ;
}
/ * *
* 获取上级网格党支部
* /
@Override
public List < PowerAxisStructGridPartyBranchResultDTO > getGridPartyBranchList ( ) {
List < PowerAxisStructGridPartyBranchResultDTO > list = baseDao . getGridPartyBranchList ( ) ;
return list ;
}
@Override
public List < String > getPid ( ) {
List < String > pid = baseDao . getPid ( ) ;
return pid ;
}
@Override
public List < PowerAxisStructPartyCommResultDTO > getPartyCommList ( ) {
List < PowerAxisStructPartyCommResultDTO > list = baseDao . getPartyCommList ( ) ;
return list ;
}
@Override
public PowerAxisStructEntity queryModifyById ( String id ) {
PowerAxisStructEntity entity = baseDao . selectById ( id ) ;
@ -254,48 +220,106 @@ public class PowerAxisStructServiceImpl extends BaseServiceImpl<PowerAxisStructD
@Override
public List < String > getIdByAgencyId ( String agencyId ) {
List < String > ids = baseDao . getIdsByAgencyId ( agencyId ) ;
String customerId = loginUserUtil . getLoginUserCustomerId ( ) ;
List < String > ids = baseDao . getIdsByAgencyId ( agencyId , customerId ) ;
return ids ;
}
/ * *
* 按节点类型获取节点列表
* /
@Override
public List < PowerAixsStructListByCategoryResultDTO > getListByCategoryCode ( PowerAxisStructListByCategoryCodeFormDTO form ) {
List < PowerAixsStructListByCategoryResultDTO > dto = baseDao . getListByCategoryCode ( form ) ;
return dto ;
}
@Override
public PowerAxisStructViewResultDTO getStatistics ( PowerAxisStructViewFormDTO form ) {
form . setCustomerId ( loginUserUtil . getLoginUserCustomerId ( ) ) ;
// 查网格党支部数 grid_party
int gridParty = baseDao . queryGridParty ( form ) ;
String gridCateGoryCode = baseDao . getCateGoryCode ( form . getCustomerId ( ) , PowerTagLevelEnum . CHILD_FIRST . level ( ) , PowerTagCategoryEnum . STRUCT . category ( ) ) ;
int gridParty = baseDao . queryGridParty ( form , gridCateGoryCode ) ;
// 查楼院党小组数 group_party
int groupParty = baseDao . queryGroupParty ( form ) ;
String groupCateGoryCode = baseDao . getCateGoryCode ( form . getCustomerId ( ) , PowerTagLevelEnum . CHILD_SECOND . level ( ) , PowerTagCategoryEnum . STRUCT . category ( ) ) ;
int groupParty = baseDao . queryGroupParty ( form , groupCateGoryCode ) ;
// 查询党员数
int partyNum = 0 ;
// 查询党员中心户数
int kernelHouseHold = baseDao . getKernelHouseHold ( ) ;
int kernelHouseHold = baseDao . getKernelHouseHold ( form ) ;
// 查询服务站数
int serviceStation = baseDao . getServiceStation ( ) ;
int serviceStation = baseDao . getServiceStation ( form ) ;
// 查询志愿者队伍数
int VolunteerTeamNum = 0 ;
int volunteerTeamNum = 0 ;
PowerAxisStructViewResultDTO result = new PowerAxisStructViewResultDTO ( ) ;
result . setGridNum ( gridParty ) ;
result . setGroupNum ( groupParty ) ;
result . setPartyMemberNum ( partyNum ) ;
result . setKernelHouseHoldNum ( kernelHouseHold ) ;
result . setServiceStationNum ( serviceStation ) ;
result . setVolunteerTeamNum ( VolunteerTeamNum ) ;
result . setVolunteerTeamNum ( volunteerTeamNum ) ;
List < PowerAxisTagCategoryResultDTO > tagList = powerAxisTagService . listSimple ( PowerTagCategoryEnum . PARAM . category ( ) , loginUserUtil . getLoginUserCustomerId ( ) ) ;
tagList . forEach (
item - > {
int numTemp ;
switch ( item . getCategoryCode ( ) ) {
case "volunteerTeamNum" :
numTemp = Integer . parseInt ( item . getCategoryName ( ) ) ;
if ( numTemp > NumConstant . ZERO ) {
result . setVolunteerTeamNum ( numTemp ) ;
}
break ;
case "partyMemberNum" :
numTemp = Integer . parseInt ( item . getCategoryName ( ) ) ;
if ( numTemp > NumConstant . ZERO ) {
result . setPartyMemberNum ( numTemp ) ;
}
break ;
case "kernelHouseHoldNum" :
numTemp = Integer . parseInt ( item . getCategoryName ( ) ) ;
if ( numTemp > NumConstant . ZERO ) {
result . setKernelHouseHoldNum ( numTemp ) ;
}
break ;
default :
break ;
}
}
) ;
return result ;
}
@Override
public List < PowerAxisStructTreeResultDTO > getStructTree ( PowerAxisStructStructTreeFormDTO form ) {
form . setCustomerId ( loginUserUtil . getLoginUserCustomerId ( ) ) ;
List < PowerAxisStructTreeResultDTO > dto = baseDao . getStructTree ( form ) ;
return TreeUtils . build ( dto ) ;
}
@Override
public List < PowerAxisListPositionResultDTO > getListPosition ( int structLevel ) {
PowerAxisListPositionFormDTO form = new PowerAxisListPositionFormDTO ( ) ;
String customerId = loginUserUtil . getLoginUserCustomerId ( ) ;
form . setCustomerId ( customerId ) ;
form . setStructLevel ( structLevel ) ;
form . setTagCategory ( PowerTagCategoryEnum . STRUCT . category ( ) ) ;
String code = baseDao . queryCategoryCode ( form ) ;
List < PowerAxisListPositionResultDTO > list = baseDao . querylistPosition ( customerId , code ) ;
return list ;
}
@Override
public long queryTotal ( int structLevel ) {
PowerAxisListPositionFormDTO form = new PowerAxisListPositionFormDTO ( ) ;
String customerId = loginUserUtil . getLoginUserCustomerId ( ) ;
form . setCustomerId ( customerId ) ;
form . setStructLevel ( structLevel ) ;
form . setTagCategory ( PowerTagCategoryEnum . STRUCT . category ( ) ) ;
String code = baseDao . queryCategoryCode ( form ) ;
long total = baseDao . queryTotal ( customerId , code ) ;
return total ;
}
@Override
public List < PowerAxisStructTreeResultDTO > listParentTreeByLevel ( String structLevel , String customerId ) {
List < PowerAxisStructTreeResultDTO > result = baseDao . listParentTreeByLevel ( Integer . parseInt ( structLevel ) , customerId ) ;
return TreeUtils . build ( result ) ;
}
}