@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.biutag.supervision.mapper.* ;
import com.biutag.supervision.mapper.* ;
import com.biutag.supervision.pojo.entity.BusinessLog ;
import com.biutag.supervision.pojo.entity.* ;
import com.biutag.supervision.pojo.entity.BusinessPolice ;
import com.biutag.supervision.pojo.entity.GBaseAJJBXX ;
import com.biutag.supervision.pojo.entity.GBaseCJD ;
import com.biutag.supervision.pojo.model.BusinessPoliceModel ;
import com.biutag.supervision.pojo.model.BusinessPoliceModel ;
import com.biutag.supervision.pojo.param.BusinessQueryParam ;
import com.biutag.supervision.pojo.param.BusinessQueryParam ;
import lombok.RequiredArgsConstructor ;
import lombok.RequiredArgsConstructor ;
@ -23,9 +20,10 @@ import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat ;
import java.text.SimpleDateFormat ;
import java.time.LocalDate ;
import java.time.LocalDate ;
import java.time.LocalDateTime ;
import java.time.LocalDateTime ;
import java.time.LocalTime ;
import java.time.ZoneId ;
import java.time.ZoneId ;
import java.time.format.DateTimeFormatter ;
import java.util.* ;
import java.util.* ;
import java.util.function.BiConsumer ;
import java.util.stream.Collectors ;
import java.util.stream.Collectors ;
@Slf4j
@Slf4j
@ -45,26 +43,27 @@ public class BusinessPoliceService extends ServiceImpl<BusinessPoliceMapper, Bus
private final SupExternalDepartMapper supExternalDepartMapper ;
private final SupExternalDepartMapper supExternalDepartMapper ;
private final SupDepartMapper supDepartMapper ;
private final StatisticsGroupService statisticsGroupService ;
public Page < BusinessPoliceModel > page ( BusinessQueryParam businessQueryParam ) {
public Page < BusinessPoliceModel > page ( BusinessQueryParam businessQueryParam ) {
if ( businessQueryParam . getDepartName ( ) ! = null & & businessQueryParam . getDepartName ( ) . equals ( "开始导入今年所有的数据" ) ) {
if ( "测试导入" . equals ( businessQueryParam . getPoliceName ( ) ) & & businessQueryParam . getHappenTime ( ) ! = null & & businessQueryParam . getHappenTime ( ) . size ( ) = = 2 ) {
LocalDate start = LocalDate . parse ( "2024-01-01" ) ;
Date startInput = businessQueryParam . getHappenTime ( ) . get ( 0 ) ;
LocalDate end = LocalDate . parse ( "2024-12-25" ) ;
Date endInput = businessQueryParam . getHappenTime ( ) . get ( 1 ) ;
for ( LocalDate date = start ; ! date . isAfter ( end ) ; date = date . plusDays ( 1 ) ) {
ZoneId zoneId = ZoneId . systemDefault ( ) ;
List < Date > happenTime = new ArrayList < > ( ) ;
LocalDate startDate = startInput . toInstant ( ) . atZone ( zoneId ) . toLocalDate ( ) ;
Date startDate = Date . from ( date . atStartOfDay ( ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) ) ;
LocalDateTime startOfDay = startDate . atStartOfDay ( ) ;
Date endDate = Date . from ( date . atTime ( 23 , 59 , 59 ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) ) ;
LocalDate endDate = endInput . toInstant ( ) . atZone ( zoneId ) . toLocalDate ( ) ;
happenTime . add ( startDate ) ;
LocalDateTime endOfDay = endDate . atTime ( LocalTime . MAX ) ;
happenTime . add ( endDate ) ;
List < Date > happenTime = new ArrayList < > ( 2 ) ;
generate ( happenTime ) ;
happenTime . add ( Date . from ( startOfDay . atZone ( zoneId ) . toInstant ( ) ) ) ;
log . info ( "已经导入{}的个人数据" , date . format ( DateTimeFormatter . ofPattern ( "yyyy年M月d日" ) ) ) ;
happenTime . add ( Date . from ( endOfDay . atZone ( zoneId ) . toInstant ( ) ) ) ;
}
log . info ( "【个人业务-测试导入】归一化后时间范围=[{} ~ {}]" , happenTime . get ( 0 ) , happenTime . get ( 1 ) ) ;
} else if ( businessQueryParam . getDepartName ( ) ! = null & & businessQueryParam . getDepartName ( ) . equals ( "开始导入今天所有的数据" ) ) {
List < Date > happenTime = new ArrayList < > ( ) ;
Date start = Date . from ( LocalDateTime . parse ( "2024-09-02T00:00:00" , DateTimeFormatter . ISO_DATE_TIME ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) ) ;
Date end = Date . from ( LocalDateTime . parse ( "2024-10-14T09:59:59" , DateTimeFormatter . ISO_DATE_TIME ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) ) ;
happenTime . add ( start ) ;
happenTime . add ( end ) ;
generate ( happenTime ) ;
generate ( happenTime ) ;
log . info ( "【个人业务-测试导入】导入执行完成" ) ;
}
}
String empNo = "" ;
String empNo = "" ;
if ( businessQueryParam . getEmpNo ( ) ! = null & & ! businessQueryParam . getEmpNo ( ) . isEmpty ( ) ) {
if ( businessQueryParam . getEmpNo ( ) ! = null & & ! businessQueryParam . getEmpNo ( ) . isEmpty ( ) ) {
@ -74,13 +73,18 @@ public class BusinessPoliceService extends ServiceImpl<BusinessPoliceMapper, Bus
queryWrapper . like ( StrUtil . isNotBlank ( businessQueryParam . getPoliceName ( ) ) , "police_name" , businessQueryParam . getPoliceName ( ) )
queryWrapper . like ( StrUtil . isNotBlank ( businessQueryParam . getPoliceName ( ) ) , "police_name" , businessQueryParam . getPoliceName ( ) )
. like ( StrUtil . isNotBlank ( empNo ) , "emp_no" , empNo )
. like ( StrUtil . isNotBlank ( empNo ) , "emp_no" , empNo )
. like ( StrUtil . isNotBlank ( businessQueryParam . getDepartName ( ) ) , "depart_name" , businessQueryParam . getDepartName ( ) )
. like ( StrUtil . isNotBlank ( businessQueryParam . getDepartName ( ) ) , "depart_name" , businessQueryParam . getDepartName ( ) )
. eq ( StrUtil . isNotBlank ( businessQueryParam . getGroupName ( ) ) , "group_name" , businessQueryParam . getGroupName ( ) )
. eq ( StrUtil . isNotBlank ( businessQueryParam . getGroupName ( ) ) , "group_name" , businessQueryParam . getGroupName ( ) ) ;
. groupBy ( "police_name" )
// .groupBy("police_name")
. orderBy ( StrUtil . isNotBlank ( businessQueryParam . getSortField ( ) ) , businessQueryParam . getSortOrder ( ) . equals ( "ASC" ) , businessQueryParam . getSortField ( ) ) ;
// .orderBy(StrUtil.isNotBlank(businessQueryParam.getSortField()), businessQueryParam.getSortOrder().equals("ASC"), businessQueryParam.getSortField());
if ( businessQueryParam . getHappenTime ( ) . size ( ) = = 2 ) {
if ( businessQueryParam . getHappenTime ( ) . size ( ) = = 2 ) {
queryWrapper . between ( "date" , businessQueryParam . getHappenTime ( ) . get ( 0 ) , businessQueryParam . getHappenTime ( ) . get ( 1 ) ) ;
queryWrapper . between ( "date" , businessQueryParam . getHappenTime ( ) . get ( 0 ) , businessQueryParam . getHappenTime ( ) . get ( 1 ) ) ;
}
}
return baseMapper . queryPage ( Page . of ( businessQueryParam . getCurrent ( ) , businessQueryParam . getSize ( ) ) , queryWrapper ) ;
return baseMapper . queryPage (
Page . of ( businessQueryParam . getCurrent ( ) , businessQueryParam . getSize ( ) ) ,
queryWrapper ,
businessQueryParam . getSortField ( ) ,
businessQueryParam . getSortOrder ( )
) ;
}
}
public void generate ( List < Date > happenTime ) {
public void generate ( List < Date > happenTime ) {
@ -101,45 +105,74 @@ public class BusinessPoliceService extends ServiceImpl<BusinessPoliceMapper, Bus
Map < String , GBaseAJJBXX > gBaseAJJBXXMapPR = new HashMap < > ( ) ;
Map < String , GBaseAJJBXX > gBaseAJJBXXMapPR = new HashMap < > ( ) ;
// 生成案件信息的映射
// 生成案件信息的映射
generateAJJBXXMap ( zfbaresult , gBaseAJJBXXMapSR , gBaseAJJBXXMapLR , gBaseAJJBXXMapPR ) ;
generateAJJBXXMap ( zfbaresult , gBaseAJJBXXMapSR , gBaseAJJBXXMapLR , gBaseAJJBXXMapPR ) ;
List < String > departIds = new ArrayList < > ( ) ;
// 生成管辖单位代码
generateDepartIds ( gBaseCJDSList , departIds , zfbaresult ) ;
if ( departIds . isEmpty ( ) ) {
return ;
}
// 通过管辖单位代码从数据库中获取单位 ID 和内部 ID和 内部名字
List < Map < String , Object > > idsByDepartIds = supExternalDepartMapper . getIdsByDepartIds ( departIds ) ; // 430100221100-1011
Map < String , String > resultMap2 = idsByDepartIds . stream ( ) . filter ( map - > map . get ( "external_id" ) ! = null ) . collect ( Collectors . toMap (
map - > ( String ) map . get ( "external_id" ) ,
map - > map . get ( "internal_id" ) = = null ? "" : ( String ) map . get ( "internal_id" )
) ) ;
List < String > values = resultMap2 . values ( ) . stream ( ) . filter ( Objects : : nonNull ) . toList ( ) ; // 1011
Map < String , String > resultMap3 = idsByDepartIds . stream ( ) . filter ( map - > map . get ( "external_id" ) ! = null ) . collect ( Collectors . toMap (
map - > ( String ) map . get ( "external_id" ) ,
map - > map . get ( "internal_short_name" ) = = null ? "" : ( String ) map . get ( "internal_short_name" )
) ) ;
List < Map < String , Object > > resultList = statisticsDepartMapper . getGroupIdsByDepartIds ( values ) ;
Map < String , Long > resultMap = resultList . stream ( ) . collect ( Collectors . toMap (
map - > ( String ) map . get ( "departId" ) ,
map - > ( Long ) map . get ( "groupId" )
) ) ;
List < Long > groupIds = new ArrayList < > ( ) ;
generateBusinessPoliceList ( happenTime , gBaseCJDSList , resultMap , resultMap2 , resultMap3 , groupIds , businessPoliceList , gBaseAJJBXXMapSR , gBaseAJJBXXMapLR , gBaseAJJBXXMapPR ) ;
List < String > qzxExternalIds = gBaseCJDSList . stream ( )
List < Map < Long , Object > > nameList = statisticsGroupMapper . getNameByGroupIds ( groupIds ) ;
. filter ( Objects : : nonNull )
Map < Long , String > names = nameList . stream ( ) . collect ( Collectors . toMap (
. map ( GBaseCJD : : getCjdxssdwdm )
map - > ( Long ) map . get ( "groupId" ) ,
. filter ( StrUtil : : isNotBlank )
map - > ( String ) map . get ( "name" )
. toList ( ) ;
) ) ;
List < String > zfbaExternalIds = new ArrayList < > ( ) ;
for ( BusinessPolice businessPolice : businessPoliceList ) {
zfbaExternalIds . addAll ( gBaseAJJBXXMapSR . values ( ) . stream ( ) . map ( GBaseAJJBXX : : getBADWIDdm ) . filter ( StrUtil : : isNotBlank ) . toList ( ) ) ;
businessPolice . setGroupName ( names . get ( businessPolice . getGroupId ( ) ) ) ;
zfbaExternalIds . addAll ( gBaseAJJBXXMapLR . values ( ) . stream ( ) . map ( GBaseAJJBXX : : getBADWIDdm ) . filter ( StrUtil : : isNotBlank ) . toList ( ) ) ;
businessPolice . setCreateTime ( LocalDateTime . now ( ) ) ;
zfbaExternalIds . addAll ( gBaseAJJBXXMapPR . values ( ) . stream ( ) . map ( GBaseAJJBXX : : getBADWIDdm ) . filter ( StrUtil : : isNotBlank ) . toList ( ) ) ;
DepartMapping qzxMapping = buildMapping ( qzxExternalIds , "情指行" ) ;
DepartMapping zfbaMapping = buildMapping ( zfbaExternalIds , "执法办案" ) ;
appendCjdBusiness ( businessPoliceList , gBaseCJDSList , qzxMapping ) ;
appendZfbaBusiness ( businessPoliceList , gBaseAJJBXXMapSR . values ( ) , zfbaMapping , 4 ) ;
appendZfbaBusiness ( businessPoliceList , gBaseAJJBXXMapLR . values ( ) , zfbaMapping , 5 ) ;
appendZfbaBusiness ( businessPoliceList , gBaseAJJBXXMapPR . values ( ) , zfbaMapping , 6 ) ;
Map < String , StatisticsGroup > groupMap = statisticsGroupService . groupIdMap ( ) ;
for ( BusinessPolice bp : businessPoliceList ) {
StatisticsGroup g = groupMap . get ( String . valueOf ( bp . getGroupId ( ) ) ) ;
bp . setGroupName ( g ! = null ? g . getName ( ) : null ) ;
bp . setCreateTime ( LocalDateTime . now ( ) ) ;
}
}
log . info ( "个人业务数据准备插入:{}" , businessPoliceList . size ( ) ) ;
log . info ( "个人业务数据准备插入:{}" , businessPoliceList . size ( ) ) ;
List < BatchResult > insert = baseMapper . insert ( businessPoliceList ) ;
List < BatchResult > insert = baseMapper . insert ( businessPoliceList ) ;
log . info ( "个人业务数据插入成功" ) ;
log . info ( "个人业务数据插入成功" ) ;
int actualNum = ( int ) Arrays . stream ( insert . get ( 0 ) . getUpdateCounts ( ) ) . parallel ( ) . filter ( num - > num ! = 0 ) . count ( ) ;
int actualNum = ( int ) Arrays . stream ( insert . get ( 0 ) . getUpdateCounts ( ) ) . parallel ( ) . filter ( num - > num ! = 0 ) . count ( ) ;
businessLogMapper . insert ( new BusinessLog ( ) . setType ( "个人业务数据" ) . setNum ( gBaseCJDSList . size ( ) ) . setActualNum ( actualNum ) . setCreateTime ( LocalDateTime . now ( ) ) ) ;
businessLogMapper . insert ( new BusinessLog ( ) . setType ( "个人业务数据" ) . setNum ( businessPoliceList . size ( ) ) . setActualNum ( actualNum ) . setCreateTime ( LocalDateTime . now ( ) ) ) ;
// List<String> departIds = new ArrayList<>();
// // 生成管辖单位代码
// generateDepartIds(gBaseCJDSList, departIds, zfbaresult);
// if (departIds.isEmpty()) {
// return;
// }
// // 通过管辖单位代码从数据库中获取单位 ID 和内部 ID和 内部名字
// List<Map<String, Object>> idsByDepartIds = supExternalDepartMapper.getIdsByDepartIds(departIds);// 430100221100-1011
// Map<String, String> resultMap2 = idsByDepartIds.stream().filter(map -> map.get("external_id") != null).collect(Collectors.toMap(
// map -> (String) map.get("external_id"),
// map -> map.get("internal_id") == null ? "" : (String) map.get("internal_id")
// ));
// List<String> values = resultMap2.values().stream().filter(Objects::nonNull).toList();// 1011
// Map<String, String> resultMap3 = idsByDepartIds.stream().filter(map -> map.get("external_id") != null).collect(Collectors.toMap(
// map -> (String) map.get("external_id"),
// map -> map.get("internal_short_name") == null ? "" : (String) map.get("internal_short_name")
// ));
// List<Map<String, Object>> resultList = statisticsDepartMapper.getGroupIdsByDepartIds(values);
// Map<String, Long> resultMap = resultList.stream().collect(Collectors.toMap(
// map -> (String) map.get("departId"),
// map -> (Long) map.get("groupId")
// ));
// List<Long> groupIds = new ArrayList<>();
//
// generateBusinessPoliceList(happenTime, gBaseCJDSList, resultMap, resultMap2, resultMap3, groupIds, businessPoliceList, gBaseAJJBXXMapSR, gBaseAJJBXXMapLR, gBaseAJJBXXMapPR);
// List<Map<Long, Object>> nameList = statisticsGroupMapper.getNameByGroupIds(groupIds);
// Map<Long, String> names = nameList.stream().collect(Collectors.toMap(
// map -> (Long) map.get("groupId"),
// map -> (String) map.get("name")
// ));
// for (BusinessPolice businessPolice : businessPoliceList) {
// businessPolice.setGroupName(names.get(businessPolice.getGroupId()));
// businessPolice.setCreateTime(LocalDateTime.now());
// }
// log.info("个人业务数据准备插入:{}", businessPoliceList.size());
// List<BatchResult> insert = baseMapper.insert(businessPoliceList);
// log.info("个人业务数据插入成功");
// int actualNum = (int) Arrays.stream(insert.get(0).getUpdateCounts()).parallel().filter(num -> num != 0).count();
// businessLogMapper.insert(new BusinessLog().setType("个人业务数据").setNum(gBaseCJDSList.size()).setActualNum(actualNum).setCreateTime(LocalDateTime.now()));
}
}
private static void generateBusinessPoliceList ( List < Date > happenTime , List < GBaseCJD > gBaseCJDSList , Map < String , Long > resultMap , Map < String , String > resultMap2 , Map < String , String > resultMap3 , List < Long > groupIds , List < BusinessPolice > businessPoliceList , Map < String , GBaseAJJBXX > gBaseAJJBXXMapSR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapLR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapPR ) {
private static void generateBusinessPoliceList ( List < Date > happenTime , List < GBaseCJD > gBaseCJDSList , Map < String , Long > resultMap , Map < String , String > resultMap2 , Map < String , String > resultMap3 , List < Long > groupIds , List < BusinessPolice > businessPoliceList , Map < String , GBaseAJJBXX > gBaseAJJBXXMapSR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapLR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapPR ) {
@ -205,157 +238,55 @@ public class BusinessPoliceService extends ServiceImpl<BusinessPoliceMapper, Bus
}
}
private static void generateAJJBXXMap ( ZFBAResult zfbaresult , Map < String , GBaseAJJBXX > gBaseAJJBXXMapSR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapLR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapPR ) {
private static void generateAJJBXXMap ( ZFBAResult zfbaresult , Map < String , GBaseAJJBXX > gBaseAJJBXXMapSR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapLR , Map < String , GBaseAJJBXX > gBaseAJJBXXMapPR ) {
for ( Map < String , Object > bar : zfbaresult . bar1 ( ) ) {
if ( bar . get ( "BAR1ID" ) = = null ) {
// 受案:bar1(BAR1ID) + bar2(BAR2ID) → SLRQ
continue ;
mergeZfbaBars ( zfbaresult . bar1 ( ) , "BAR1ID" , gBaseAJJBXXMapSR , GBaseAJJBXX : : setSLRQ ) ;
}
mergeZfbaBars ( zfbaresult . bar2 ( ) , "BAR2ID" , gBaseAJJBXXMapSR , GBaseAJJBXX : : setSLRQ ) ;
if ( gBaseAJJBXXMapSR . containsKey ( ( String ) bar . get ( "BAR1ID" ) ) ) {
GBaseAJJBXX gBaseAJJBXX = gBaseAJJBXXMapSR . get ( ( String ) bar . get ( "BAR1ID" ) ) ;
// 立案:bar3(BAR1ID) + bar4(BAR2ID) → LARQ
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
mergeZfbaBars ( zfbaresult . bar3 ( ) , "BAR1ID" , gBaseAJJBXXMapLR , GBaseAJJBXX : : setLARQ ) ;
gBaseAJJBXXMapSR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
mergeZfbaBars ( zfbaresult . bar4 ( ) , "BAR2ID" , gBaseAJJBXXMapLR , GBaseAJJBXX : : setLARQ ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
// 破案:bar5(BAR1ID) + bar6(BAR2ID) → PARQ
gBaseAJJBXX . setBARID ( ( String ) bar . get ( "BAR1ID" ) ) ;
mergeZfbaBars ( zfbaresult . bar5 ( ) , "BAR1ID" , gBaseAJJBXXMapPR , GBaseAJJBXX : : setPARQ ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
mergeZfbaBars ( zfbaresult . bar6 ( ) , "BAR2ID" , gBaseAJJBXXMapPR , GBaseAJJBXX : : setPARQ ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
gBaseAJJBXXMapSR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
}
}
for ( Map < String , Object > bar : zfbaresult . bar2 ( ) ) {
if ( bar . get ( "BAR2ID" ) = = null ) {
continue ;
}
if ( gBaseAJJBXXMapSR . containsKey ( ( String ) bar . get ( "BAR2ID" ) ) ) {
GBaseAJJBXX gBaseAJJBXX = gBaseAJJBXXMapSR . get ( ( String ) bar . get ( "BAR2ID" ) ) ;
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXXMapSR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
gBaseAJJBXX . setBARID ( ( String ) bar . get ( "BAR2ID" ) ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
gBaseAJJBXXMapSR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
}
}
for ( Map < String , Object > bar : zfbaresult . bar3 ( ) ) {
if ( bar . get ( "BAR1ID" ) = = null ) {
continue ;
}
if ( gBaseAJJBXXMapLR . containsKey ( ( String ) bar . get ( "BAR1ID" ) ) ) {
GBaseAJJBXX gBaseAJJBXX = gBaseAJJBXXMapLR . get ( ( String ) bar . get ( "BAR1ID" ) ) ;
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXXMapLR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
gBaseAJJBXX . setBARID ( ( String ) bar . get ( "BAR1ID" ) ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
gBaseAJJBXXMapLR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
}
}
for ( Map < String , Object > bar : zfbaresult . bar4 ( ) ) {
if ( bar . get ( "BAR2ID" ) = = null ) {
continue ;
}
if ( gBaseAJJBXXMapLR . containsKey ( ( String ) bar . get ( "BAR2ID" ) ) ) {
GBaseAJJBXX gBaseAJJBXX = gBaseAJJBXXMapLR . get ( ( String ) bar . get ( "BAR2ID" ) ) ;
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXXMapLR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
gBaseAJJBXX . setBARID ( ( String ) bar . get ( "BAR2ID" ) ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
gBaseAJJBXXMapLR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
}
}
for ( Map < String , Object > bar : zfbaresult . bar5 ( ) ) {
if ( bar . get ( "BAR1ID" ) = = null ) {
continue ;
}
if ( gBaseAJJBXXMapPR . containsKey ( ( String ) bar . get ( "BAR1ID" ) ) ) {
GBaseAJJBXX gBaseAJJBXX = gBaseAJJBXXMapPR . get ( ( String ) bar . get ( "BAR1ID" ) ) ;
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXXMapPR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
gBaseAJJBXX . setBARID ( ( String ) bar . get ( "BAR1ID" ) ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
gBaseAJJBXXMapPR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
}
}
for ( Map < String , Object > bar : zfbaresult . bar6 ( ) ) {
if ( bar . get ( "BAR2ID" ) = = null ) {
continue ;
}
if ( gBaseAJJBXXMapPR . containsKey ( ( String ) bar . get ( "BAR2ID" ) ) ) {
GBaseAJJBXX gBaseAJJBXX = gBaseAJJBXXMapPR . get ( ( String ) bar . get ( "BAR2ID" ) ) ;
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXXMapPR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
gBaseAJJBXX . setBARID ( ( String ) bar . get ( "BAR2ID" ) ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
gBaseAJJBXXMapPR . put ( gBaseAJJBXX . getBARID ( ) , gBaseAJJBXX ) ;
}
}
}
}
private ZFBAResult getZfbaResult ( List < Date > happenTime ) {
private ZFBAResult getZfbaResult ( List < Date > happenTime ) {
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss" ) ;
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss" ) ;
// 4:受案
// 4:受案
List < Map < String , Object > > bar1 = modelClueDataMapper . selectByUniqueKeys ( "select COUNT(a.BAR1ID ) as num, a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
List < Map < String , Object > > bar1 = modelClueDataMapper . selectByUniqueKeys ( "select CAST(DATE(a.SLRQ) AS DATETIME) AS statDate, COUNT(1) as num, a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
"FROM dwd_asj_zfba_ajjbxx a " +
"FROM dwd_asj_zfba_ajjbxx a " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR1ID = b.ZJ " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR1ID = b.ZJ " +
"WHERE a.SLRQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 " +
"WHERE a.SLRQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 AND a.BAR1ID IS NOT NULL " +
"GROUP BY a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
"GROUP BY DATE(a.SLRQ), a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
List < Map < String , Object > > bar2 = modelClueDataMapper . selectByUniqueKeys ( "select COUNT(a.BAR2ID ) as num, a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
List < Map < String , Object > > bar2 = modelClueDataMapper . selectByUniqueKeys ( "select CAST(DATE(a.SLRQ) AS DATETIME) AS statDate, COUNT(1) as num, a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
"FROM dwd_asj_zfba_ajjbxx a " +
"FROM dwd_asj_zfba_ajjbxx a " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR2ID = b.ZJ " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR2ID = b.ZJ " +
"WHERE a.SLRQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 " +
"WHERE a.SLRQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 AND a.BAR2ID IS NOT NULL " +
"GROUP BY a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
"GROUP BY DATE(a.SLRQ), a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
// 5:立案
// 5:立案
List < Map < String , Object > > bar3 = modelClueDataMapper . selectByUniqueKeys ( "select COUNT(a.BAR1ID ) as num, a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
List < Map < String , Object > > bar3 = modelClueDataMapper . selectByUniqueKeys ( "select CAST(DATE(a.LARQ) AS DATETIME) AS statDate, COUNT(1) as num, a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
"FROM dwd_asj_zfba_ajjbxx a " +
"FROM dwd_asj_zfba_ajjbxx a " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR1ID = b.ZJ " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR1ID = b.ZJ " +
"WHERE a.LARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 " +
"WHERE a.LARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 AND a.BAR1ID IS NOT NULL " +
"GROUP BY a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
"GROUP BY DATE(a.LARQ), a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
List < Map < String , Object > > bar4 = modelClueDataMapper . selectByUniqueKeys ( "select COUNT(a.BAR2ID ) as num, a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
List < Map < String , Object > > bar4 = modelClueDataMapper . selectByUniqueKeys ( "select CAST(DATE(a.LARQ) AS DATETIME) AS statDate, COUNT(1) as num, a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
"FROM dwd_asj_zfba_ajjbxx a " +
"FROM dwd_asj_zfba_ajjbxx a " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR2ID = b.ZJ " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR2ID = b.ZJ " +
"WHERE a.LARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 " +
"WHERE a.LARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 AND a.BAR2ID IS NOT NULL " +
"GROUP BY a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
"GROUP BY DATE(a.LARQ), a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
// 6:破案
// 6:破案
List < Map < String , Object > > bar5 = modelClueDataMapper . selectByUniqueKeys ( "select COUNT(a.BAR1ID ) as num, a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
List < Map < String , Object > > bar5 = modelClueDataMapper . selectByUniqueKeys ( "select CAST(DATE(a.PARQ) AS DATETIME) AS statDate, COUNT(1) as num, a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
"FROM dwd_asj_zfba_ajjbxx a " +
"FROM dwd_asj_zfba_ajjbxx a " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR1ID = b.ZJ " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR1ID = b.ZJ " +
"WHERE a.PARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 " +
"WHERE a.PARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 AND a.BAR1ID IS NOT NULL " +
"GROUP BY a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
"GROUP BY DATE(a.PARQ), a.BAR1ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
List < Map < String , Object > > bar6 = modelClueDataMapper . selectByUniqueKeys ( "select COUNT(a.BAR2ID ) as num, a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
List < Map < String , Object > > bar6 = modelClueDataMapper . selectByUniqueKeys ( "select CAST(DATE(a.PARQ) AS DATETIME) AS statDate, COUNT(1) as num, a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH " +
"FROM dwd_asj_zfba_ajjbxx a " +
"FROM dwd_asj_zfba_ajjbxx a " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR2ID = b.ZJ " +
"LEFT JOIN dwd_ry_zfba_baryxx b ON a.BAR2ID = b.ZJ " +
"WHERE a.PARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 " +
"WHERE a.PARQ BETWEEN '" + formatter . format ( happenTime . get ( 0 ) ) + "' AND '" + formatter . format ( happenTime . get ( 1 ) ) + "' AND a.AJBZdm !=3 AND a.BAR2ID IS NOT NULL " +
"GROUP BY a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
"GROUP BY DATE(a.PARQ), a.BAR2ID, a.BADWIDdm, a.BADWIDmc, b.XM, b.JH;" ) ;
ZFBAResult zfbaresult = new ZFBAResult ( bar1 , bar2 , bar3 , bar4 , bar5 , bar6 ) ;
ZFBAResult zfbaresult = new ZFBAResult ( bar1 , bar2 , bar3 , bar4 , bar5 , bar6 ) ;
return zfbaresult ;
return zfbaresult ;
}
}
@ -414,7 +345,7 @@ public class BusinessPoliceService extends ServiceImpl<BusinessPoliceMapper, Bus
queryWrapper . eq ( "cjfsdm" , "6" ) ;
queryWrapper . eq ( "cjfsdm" , "6" ) ;
queryWrapper . isNotNull ( "cjdxdm" ) ;
queryWrapper . isNotNull ( "cjdxdm" ) ;
queryWrapper . between ( "cjsj" , happenTime . get ( 0 ) , happenTime . get ( 1 ) ) ;
queryWrapper . between ( "cjsj" , happenTime . get ( 0 ) , happenTime . get ( 1 ) ) ;
queryWrapper . groupBy ( "cjdxname" , "cjdxdm" , "cjdxssdwdm" , "cjdxssdwmc" ) ;
queryWrapper . groupBy ( "DATE(cjsj)" , " cjdxname" , "cjdxdm" , "cjdxssdwdm" , "cjdxssdwmc" ) ;
return gBaseCJDMapper . selectCJDList ( queryWrapper ) ;
return gBaseCJDMapper . selectCJDList ( queryWrapper ) ;
}
}
@ -440,4 +371,215 @@ public class BusinessPoliceService extends ServiceImpl<BusinessPoliceMapper, Bus
}
}
private static void mergeZfbaBars ( List < Map < String , Object > > rows , String barIdKey , Map < String , GBaseAJJBXX > targetMap , BiConsumer < GBaseAJJBXX , Date > dateSetter
) {
if ( rows = = null | | rows . isEmpty ( ) ) return ;
for ( Map < String , Object > bar : rows ) {
if ( bar . get ( barIdKey ) = = null ) {
continue ;
}
Date statDate = ( Date ) bar . get ( "statDate" ) ;
String barId = ( String ) bar . get ( barIdKey ) ;
String key = statDate . getTime ( ) + "_" + barId ;
if ( targetMap . containsKey ( key ) ) {
GBaseAJJBXX gBaseAJJBXX = targetMap . get ( key ) ;
gBaseAJJBXX . setBARNum ( gBaseAJJBXX . getBARNum ( ) + Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
} else {
GBaseAJJBXX gBaseAJJBXX = new GBaseAJJBXX ( ) ;
gBaseAJJBXX . setBARID ( barId ) ;
dateSetter . accept ( gBaseAJJBXX , statDate ) ;
gBaseAJJBXX . setBADWIDdm ( ( String ) bar . get ( "BADWIDdm" ) ) ;
gBaseAJJBXX . setBADWIDmc ( ( String ) bar . get ( "BADWIDmc" ) ) ;
gBaseAJJBXX . setXM ( ( String ) bar . get ( "XM" ) ) ;
gBaseAJJBXX . setBARNum ( Math . toIntExact ( ( Long ) bar . get ( "num" ) ) ) ;
gBaseAJJBXX . setJH ( ( String ) bar . get ( "JH" ) ) ;
targetMap . put ( key , gBaseAJJBXX ) ;
}
}
}
private DepartMapping buildMapping ( Collection < String > externalIds , String source ) {
if ( externalIds = = null | | externalIds . isEmpty ( ) ) {
return new DepartMapping ( Collections . emptyMap ( ) , Collections . emptyMap ( ) , Collections . emptyMap ( ) ) ;
}
List < String > distinctExternalIds = externalIds . stream ( )
. filter ( StrUtil : : isNotBlank )
. distinct ( )
. toList ( ) ;
if ( distinctExternalIds . isEmpty ( ) ) {
return new DepartMapping ( Collections . emptyMap ( ) , Collections . emptyMap ( ) , Collections . emptyMap ( ) ) ;
}
List < Map < String , Object > > rows = supExternalDepartMapper . getIdsByExternalIdsAndSource ( distinctExternalIds , source ) ;
Map < String , String > externalToInternalId = ( rows = = null ? Collections . < Map < String , Object > > emptyList ( ) : rows )
. stream ( )
. filter ( m - > m ! = null & & m . get ( "external_id" ) ! = null )
. collect ( Collectors . toMap (
m - > String . valueOf ( m . get ( "external_id" ) ) ,
m - > m . get ( "internal_id" ) = = null ? null : String . valueOf ( m . get ( "internal_id" ) ) ,
( a , b ) - > StrUtil . isNotBlank ( a ) ? a : b
) ) ;
Map < String , String > externalToInternalShortName = ( rows = = null ? Collections . < Map < String , Object > > emptyList ( ) : rows )
. stream ( )
. filter ( m - > m ! = null & & m . get ( "external_id" ) ! = null )
. collect ( Collectors . toMap (
m - > String . valueOf ( m . get ( "external_id" ) ) ,
m - > m . get ( "internal_short_name" ) = = null ? null : String . valueOf ( m . get ( "internal_short_name" ) ) ,
( a , b ) - > StrUtil . isNotBlank ( a ) ? a : b
) ) ;
List < String > internalIds = externalToInternalId . values ( ) . stream ( )
. filter ( StrUtil : : isNotBlank )
. distinct ( )
. toList ( ) ;
if ( internalIds . isEmpty ( ) ) {
return new DepartMapping ( externalToInternalId , externalToInternalShortName , Collections . emptyMap ( ) ) ;
}
List < Map < String , Object > > groupRows = supDepartMapper . getGroupIdsByDepartIds ( internalIds ) ;
Map < String , Long > internalIdToGroupId = ( groupRows = = null ? Collections . < Map < String , Object > > emptyList ( ) : groupRows )
. stream ( )
. filter ( m - > m ! = null & & m . get ( "departId" ) ! = null & & m . get ( "groupId" ) ! = null )
. collect ( Collectors . toMap (
m - > String . valueOf ( m . get ( "departId" ) ) ,
m - > ( ( Number ) m . get ( "groupId" ) ) . longValue ( ) ,
( a , b ) - > a
) ) ;
return new DepartMapping ( externalToInternalId , externalToInternalShortName , internalIdToGroupId ) ;
}
public static class DepartMapping {
private final Map < String , String > externalToInternalId ;
private final Map < String , String > externalToInternalShortName ;
private final Map < String , Long > internalIdToGroupId ;
private DepartMapping ( Map < String , String > externalToInternalId ,
Map < String , String > externalToInternalShortName ,
Map < String , Long > internalIdToGroupId ) {
this . externalToInternalId = externalToInternalId ;
this . externalToInternalShortName = externalToInternalShortName ;
this . internalIdToGroupId = internalIdToGroupId ;
}
public Long resolveGroupId ( String externalId ) {
if ( StrUtil . isBlank ( externalId ) ) return null ;
String internalId = externalToInternalId . get ( externalId ) ;
if ( StrUtil . isBlank ( internalId ) ) return null ;
return internalIdToGroupId . get ( internalId ) ;
}
public String resolveInternalId ( String externalId ) {
return StrUtil . isBlank ( externalId ) ? null : externalToInternalId . get ( externalId ) ;
}
public String resolveInternalShortName ( String externalId ) {
return StrUtil . isBlank ( externalId ) ? null : externalToInternalShortName . get ( externalId ) ;
}
public Set < String > mappedExternalIds ( ) {
return externalToInternalId . keySet ( ) ;
}
}
private void appendCjdBusiness ( List < BusinessPolice > out ,
List < GBaseCJD > list ,
DepartMapping mapping ) {
if ( out = = null | | list = = null | | list . isEmpty ( ) ) return ;
for ( GBaseCJD cjd : list ) {
if ( cjd = = null ) continue ;
String externalId = cjd . getCjdxssdwdm ( ) ;
if ( StrUtil . isBlank ( externalId ) ) continue ;
Long groupId = mapping . resolveGroupId ( externalId ) ;
if ( groupId = = null ) continue ;
BusinessPolice bp = new BusinessPolice ( ) ;
bp . setDate ( cjd . getCjsj ( ) ) ;
bp . setDepartId ( mapping . resolveInternalId ( externalId ) ) ;
bp . setDepartName ( mapping . resolveInternalShortName ( externalId ) ) ;
bp . setGroupId ( groupId ) ;
bp . setNumber ( cjd . getCjdxdmTotal ( ) ) ;
bp . setPoliceName ( cjd . getCjdxname ( ) ) ;
bp . setEmpNo ( cjd . getCjdxdm ( ) ) ;
bp . setPoliceIdCode ( hashConcatenatedStrings ( bp . getPoliceName ( ) , bp . getEmpNo ( ) ) ) ;
if ( groupId = = 10L ) {
bp . setBusinessType ( "1" ) ;
bp . setBusinessTypeName ( "110接处警" ) ;
} else if ( groupId = = 11L ) {
bp . setBusinessType ( "2" ) ;
bp . setBusinessTypeName ( "122接处警" ) ;
} else {
continue ;
}
out . add ( bp ) ;
}
}
private void appendZfbaBusiness ( List < BusinessPolice > out ,
Collection < GBaseAJJBXX > list ,
DepartMapping mapping ,
int type /* 4/5/6 */ ) {
if ( out = = null | | list = = null | | list . isEmpty ( ) ) return ;
for ( GBaseAJJBXX a : list ) {
if ( a = = null ) continue ;
String externalId = a . getBADWIDdm ( ) ;
if ( StrUtil . isBlank ( externalId ) ) continue ;
Long groupId = mapping . resolveGroupId ( externalId ) ;
if ( groupId = = null ) continue ;
BusinessPolice bp = new BusinessPolice ( ) ;
// ✅ date 按类型取你聚合出来的当天
if ( type = = 4 ) {
bp . setDate ( a . getSLRQ ( ) ) ;
bp . setBusinessType ( "4" ) ;
bp . setBusinessTypeName ( "执法办案(受案)" ) ;
} else if ( type = = 5 ) {
bp . setDate ( a . getLARQ ( ) ) ;
bp . setBusinessType ( "5" ) ;
bp . setBusinessTypeName ( "执法办案(立案)" ) ;
} else if ( type = = 6 ) {
bp . setDate ( a . getPARQ ( ) ) ;
bp . setBusinessType ( "6" ) ;
bp . setBusinessTypeName ( "执法办案(破案)" ) ;
} else {
continue ;
}
bp . setDepartId ( mapping . resolveInternalId ( externalId ) ) ;
bp . setDepartName ( mapping . resolveInternalShortName ( externalId ) ) ;
bp . setGroupId ( groupId ) ;
bp . setNumber ( a . getBARNum ( ) ) ;
bp . setPoliceName ( a . getXM ( ) ) ;
bp . setEmpNo ( a . getJH ( ) ) ;
bp . setPoliceIdCode ( hashConcatenatedStrings ( bp . getPoliceName ( ) , bp . getEmpNo ( ) ) ) ;
out . add ( bp ) ;
}
}
}
}