Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dsk-cr20g
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
dsk-cr20g
Commits
fdc10cb4
Commit
fdc10cb4
authored
Sep 04, 2023
by
huangjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'zuhuduan' of
http://192.168.60.201/root/dsk-operate-sys
into zuhuduan
parents
9d91a9fe
e7ac6f01
Changes
81
Hide whitespace changes
Inline
Side-by-side
Showing
81 changed files
with
6586 additions
and
26 deletions
+6586
-26
Excel.java
...common/src/main/java/com/dsk/common/annotation/Excel.java
+188
-0
DictUtils.java
dsk-common/src/main/java/com/dsk/common/utils/DictUtils.java
+187
-0
DingTalkUtil.java
...mmon/src/main/java/com/dsk/common/utils/DingTalkUtil.java
+1
-7
ImageUtils.java
...n/src/main/java/com/dsk/common/utils/file/ImageUtils.java
+97
-0
ExcelHandlerAdapter.java
...in/java/com/dsk/common/utils/poi/ExcelHandlerAdapter.java
+19
-0
Customer.java
...sk-biz-api/src/main/java/com/dsk/biz/domain/Customer.java
+6
-5
CustomerFollowRecord.java
...rc/main/java/com/dsk/biz/domain/CustomerFollowRecord.java
+4
-1
CustomerUser.java
...iz-api/src/main/java/com/dsk/biz/domain/CustomerUser.java
+2
-2
BusinessRelateCompanyMapper.java
.../java/com/dsk/biz/mapper/BusinessRelateCompanyMapper.java
+1
-1
ContactInfoMapper.java
...i/src/main/java/com/dsk/biz/mapper/ContactInfoMapper.java
+1
-1
CustomerFollowRecordMapper.java
...n/java/com/dsk/biz/mapper/CustomerFollowRecordMapper.java
+2
-2
CustomerMapper.java
...-api/src/main/java/com/dsk/biz/mapper/CustomerMapper.java
+2
-1
CustomerUserMapper.java
.../src/main/java/com/dsk/biz/mapper/CustomerUserMapper.java
+2
-1
ExcelUtils.java
...k-biz-api/src/main/java/com/dsk/biz/utils/ExcelUtils.java
+1329
-0
CompanySearchController.java
.../java/com/dsk/jsk/controller/CompanySearchController.java
+55
-0
JskCombineInfoController.java
...java/com/dsk/jsk/controller/JskCombineInfoController.java
+184
-0
PageQueryLimit.java
...-api/src/main/java/com/dsk/jsk/domain/PageQueryLimit.java
+24
-0
AchievementQueryDto.java
.../main/java/com/dsk/jsk/domain/bo/AchievementQueryDto.java
+246
-0
AptitudeDetailDto.java
...rc/main/java/com/dsk/jsk/domain/bo/AptitudeDetailDto.java
+21
-0
AptitudeDto.java
...-api/src/main/java/com/dsk/jsk/domain/bo/AptitudeDto.java
+25
-0
AptitudeQueryDto.java
...src/main/java/com/dsk/jsk/domain/bo/AptitudeQueryDto.java
+225
-0
AwardDto.java
...biz-api/src/main/java/com/dsk/jsk/domain/bo/AwardDto.java
+86
-0
AwardQueryDto.java
...pi/src/main/java/com/dsk/jsk/domain/bo/AwardQueryDto.java
+17
-0
BatchQueryDto.java
...pi/src/main/java/com/dsk/jsk/domain/bo/BatchQueryDto.java
+21
-0
BeijingQueryDto.java
.../src/main/java/com/dsk/jsk/domain/bo/BeijingQueryDto.java
+70
-0
BusinessInfoDto.java
.../src/main/java/com/dsk/jsk/domain/bo/BusinessInfoDto.java
+194
-0
ComposePersonnelQueryDto.java
.../java/com/dsk/jsk/domain/bo/ComposePersonnelQueryDto.java
+95
-0
ComposeQueryDto.java
.../src/main/java/com/dsk/jsk/domain/bo/ComposeQueryDto.java
+133
-0
ComposeRegisterDto.java
...c/main/java/com/dsk/jsk/domain/bo/ComposeRegisterDto.java
+19
-0
CreditBehaviorDto.java
...rc/main/java/com/dsk/jsk/domain/bo/CreditBehaviorDto.java
+39
-0
CreditEvaluateDto.java
...rc/main/java/com/dsk/jsk/domain/bo/CreditEvaluateDto.java
+52
-0
DateQueryDto.java
...api/src/main/java/com/dsk/jsk/domain/bo/DateQueryDto.java
+24
-0
Enterprise.java
...z-api/src/main/java/com/dsk/jsk/domain/bo/Enterprise.java
+116
-0
EnterpriseDto.java
...pi/src/main/java/com/dsk/jsk/domain/bo/EnterpriseDto.java
+152
-0
Entity.java
...k-biz-api/src/main/java/com/dsk/jsk/domain/bo/Entity.java
+52
-0
EstablishmentDto.java
...src/main/java/com/dsk/jsk/domain/bo/EstablishmentDto.java
+179
-0
GoodBehaviorDto.java
.../src/main/java/com/dsk/jsk/domain/bo/GoodBehaviorDto.java
+29
-0
HeaderDto.java
...iz-api/src/main/java/com/dsk/jsk/domain/bo/HeaderDto.java
+20
-0
JabBasicEnterpriseProjectDto.java
...a/com/dsk/jsk/domain/bo/JabBasicEnterpriseProjectDto.java
+70
-0
JiangxiBidQueryDto.java
...c/main/java/com/dsk/jsk/domain/bo/JiangxiBidQueryDto.java
+75
-0
JskBidCandidateDto.java
...c/main/java/com/dsk/jsk/domain/bo/JskBidCandidateDto.java
+77
-0
JskBidNewsDto.java
...pi/src/main/java/com/dsk/jsk/domain/bo/JskBidNewsDto.java
+134
-0
JskBidPlanDto.java
...pi/src/main/java/com/dsk/jsk/domain/bo/JskBidPlanDto.java
+67
-0
JskBidQueryDto.java
...i/src/main/java/com/dsk/jsk/domain/bo/JskBidQueryDto.java
+98
-0
JskBidWinListDto.java
...src/main/java/com/dsk/jsk/domain/bo/JskBidWinListDto.java
+58
-0
JskDataScreenDto.java
...src/main/java/com/dsk/jsk/domain/bo/JskDataScreenDto.java
+32
-0
KeywordDto.java
...z-api/src/main/java/com/dsk/jsk/domain/bo/KeywordDto.java
+16
-0
LandMarketDto.java
...pi/src/main/java/com/dsk/jsk/domain/bo/LandMarketDto.java
+262
-0
OpRegionalEconomicDataDetailsDto.java
...m/dsk/jsk/domain/bo/OpRegionalEconomicDataDetailsDto.java
+22
-0
OpRegionalEconomicDataRegionalListDto.java
.../jsk/domain/bo/OpRegionalEconomicDataRegionalListDto.java
+38
-0
OpRegionalEconomicDataStatisticsRegionalDto.java
...omain/bo/OpRegionalEconomicDataStatisticsRegionalDto.java
+42
-0
OpRegionalEconomicDataV1Dto.java
...va/com/dsk/jsk/domain/bo/OpRegionalEconomicDataV1Dto.java
+49
-0
OpRegionalEconomicDataV1PageDto.java
...om/dsk/jsk/domain/bo/OpRegionalEconomicDataV1PageDto.java
+48
-0
OpRegionalEconomicDataYearsListDto.java
...dsk/jsk/domain/bo/OpRegionalEconomicDataYearsListDto.java
+16
-0
OpRegionalEconomicRegionalCompareDto.java
...k/jsk/domain/bo/OpRegionalEconomicRegionalCompareDto.java
+52
-0
OpRegionalLocalDto.java
...c/main/java/com/dsk/jsk/domain/bo/OpRegionalLocalDto.java
+31
-0
Page.java
...dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/Page.java
+129
-0
Personnel.java
...iz-api/src/main/java/com/dsk/jsk/domain/bo/Personnel.java
+42
-0
PersonnelCertificateQueryDto.java
...a/com/dsk/jsk/domain/bo/PersonnelCertificateQueryDto.java
+23
-0
PersonnelExeclDto.java
...rc/main/java/com/dsk/jsk/domain/bo/PersonnelExeclDto.java
+29
-0
PersonnelQueryDto.java
...rc/main/java/com/dsk/jsk/domain/bo/PersonnelQueryDto.java
+50
-0
RecentlyBidQueryDto.java
.../main/java/com/dsk/jsk/domain/bo/RecentlyBidQueryDto.java
+85
-0
ReflectionUtils.java
.../src/main/java/com/dsk/jsk/domain/bo/ReflectionUtils.java
+38
-0
RegisterTypeDto.java
.../src/main/java/com/dsk/jsk/domain/bo/RegisterTypeDto.java
+16
-0
ShuiliAchievementQueryDto.java
...java/com/dsk/jsk/domain/bo/ShuiliAchievementQueryDto.java
+100
-0
SkyProjectIndexDto.java
...c/main/java/com/dsk/jsk/domain/bo/SkyProjectIndexDto.java
+11
-0
SpecialBondInformationDetailsDto.java
...m/dsk/jsk/domain/bo/SpecialBondInformationDetailsDto.java
+22
-0
SpecialBondInformationPageDto.java
.../com/dsk/jsk/domain/bo/SpecialBondInformationPageDto.java
+20
-0
SpecialBondProjectDto.java
...ain/java/com/dsk/jsk/domain/bo/SpecialBondProjectDto.java
+48
-0
SpecialPurposeBondsDto.java
...in/java/com/dsk/jsk/domain/bo/SpecialPurposeBondsDto.java
+60
-0
SpecialPurposeBondsPageDto.java
...ava/com/dsk/jsk/domain/bo/SpecialPurposeBondsPageDto.java
+42
-0
UrbanInvestmentPlatformDto.java
...ava/com/dsk/jsk/domain/bo/UrbanInvestmentPlatformDto.java
+80
-0
UrbanInvestmentPlatformSubjectLevelDto.java
...jsk/domain/bo/UrbanInvestmentPlatformSubjectLevelDto.java
+43
-0
YitihuaAchievementQueryDto.java
...ava/com/dsk/jsk/domain/bo/YitihuaAchievementQueryDto.java
+208
-0
ZaiJianListDto.java
...i/src/main/java/com/dsk/jsk/domain/bo/ZaiJianListDto.java
+16
-0
ZaiJianPersonnelDto.java
.../main/java/com/dsk/jsk/domain/bo/ZaiJianPersonnelDto.java
+97
-0
JskCombineBidProjectExportVo.java
...a/com/dsk/jsk/domain/vo/JskCombineBidProjectExportVo.java
+55
-0
JskCombineWinBidProjectExportVo.java
...om/dsk/jsk/domain/vo/JskCombineWinBidProjectExportVo.java
+55
-0
BusinessOpportunityRadarService.java
.../com/dsk/jsk/service/BusinessOpportunityRadarService.java
+5
-4
EnterpriseService.java
.../src/main/java/com/dsk/jsk/service/EnterpriseService.java
+1
-1
JskCombineInfoService.java
.../main/java/com/dsk/jsk/service/JskCombineInfoService.java
+205
-0
No files found.
dsk-common/src/main/java/com/dsk/common/annotation/Excel.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
common
.
annotation
;
import
com.dsk.common.utils.poi.ExcelHandlerAdapter
;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.ss.usermodel.IndexedColors
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
java.math.BigDecimal
;
/**
* 自定义导出Excel数据注解
*
* @author dsk
*/
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
FIELD
)
public
@interface
Excel
{
/**
* 导出时在excel中排序
*/
public
int
sort
()
default
Integer
.
MAX_VALUE
;
/**
* 导出到Excel中的名字.
*/
public
String
name
()
default
""
;
/**
* 日期格式, 如: yyyy-MM-dd
*/
public
String
dateFormat
()
default
""
;
/**
* 如果是字典类型,请设置字典的type值 (如: sys_user_sex)
*/
public
String
dictType
()
default
""
;
/**
* 读取内容转表达式 (如: 0=男,1=女,2=未知)
*/
public
String
readConverterExp
()
default
""
;
/**
* 分隔符,读取字符串组内容
*/
public
String
separator
()
default
","
;
/**
* BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
*/
public
int
scale
()
default
-
1
;
/**
* BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
*/
public
int
roundingMode
()
default
BigDecimal
.
ROUND_HALF_EVEN
;
/**
* 导出时在excel中每个列的高度 单位为字符
*/
public
double
height
()
default
14
;
/**
* 导出时在excel中每个列的宽 单位为字符
*/
public
double
width
()
default
16
;
/**
* 文字后缀,如% 90 变成90%
*/
public
String
suffix
()
default
""
;
/**
* 当值为空时,字段的默认值
*/
public
String
defaultValue
()
default
""
;
/**
* 提示信息
*/
public
String
prompt
()
default
""
;
/**
* 设置只能选择不能输入的列内容.
*/
public
String
[]
combo
()
default
{};
/**
* 是否需要纵向合并单元格,应对需求:含有list集合单元格)
*/
public
boolean
needMerge
()
default
false
;
/**
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写.
*/
public
boolean
isExport
()
default
true
;
/**
* 另一个类中的属性名称,支持多级获取,以小数点隔开
*/
public
String
targetAttr
()
default
""
;
/**
* 是否自动统计数据,在最后追加一行统计数据总和
*/
public
boolean
isStatistics
()
default
false
;
/**
* 导出类型(0数字 1字符串 2图片)
*/
public
ColumnType
cellType
()
default
ColumnType
.
STRING
;
/**
* 导出列头背景色
*/
public
IndexedColors
headerBackgroundColor
()
default
IndexedColors
.
GREY_50_PERCENT
;
/**
* 导出列头字体颜色
*/
public
IndexedColors
headerColor
()
default
IndexedColors
.
WHITE
;
/**
* 导出单元格背景色
*/
public
IndexedColors
backgroundColor
()
default
IndexedColors
.
WHITE
;
/**
* 导出单元格字体颜色
*/
public
IndexedColors
color
()
default
IndexedColors
.
BLACK
;
/**
* 导出字段对齐方式
*/
public
HorizontalAlignment
align
()
default
HorizontalAlignment
.
CENTER
;
/**
* 自定义数据处理器
*/
public
Class
<?>
handler
()
default
ExcelHandlerAdapter
.
class
;
/**
* 自定义数据处理器参数
*/
public
String
[]
args
()
default
{};
/**
* 字段类型(0:导出导入;1:仅导出;2:仅导入)
*/
Type
type
()
default
Type
.
ALL
;
public
enum
Type
{
ALL
(
0
),
EXPORT
(
1
),
IMPORT
(
2
);
private
final
int
value
;
Type
(
int
value
)
{
this
.
value
=
value
;
}
public
int
value
()
{
return
this
.
value
;
}
}
public
enum
ColumnType
{
NUMERIC
(
0
),
STRING
(
1
),
IMAGE
(
2
);
private
final
int
value
;
ColumnType
(
int
value
)
{
this
.
value
=
value
;
}
public
int
value
()
{
return
this
.
value
;
}
}
}
dsk-common/src/main/java/com/dsk/common/utils/DictUtils.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
common
.
utils
;
import
com.dsk.common.constant.CacheConstants
;
import
com.dsk.common.core.domain.entity.SysDictData
;
import
com.dsk.common.utils.redis.RedisUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.util.Collection
;
import
java.util.List
;
/**
* 字典工具类
*
* @author dsk
*/
public
class
DictUtils
{
/**
* 分隔符
*/
public
static
final
String
SEPARATOR
=
","
;
/**
* 设置字典缓存
*
* @param key 参数键
* @param dictDatas 字典数据列表
*/
public
static
void
setDictCache
(
String
key
,
List
<
SysDictData
>
dictDatas
)
{
RedisUtils
.
setCacheObject
(
getCacheKey
(
key
),
dictDatas
);
}
/**
* 获取字典缓存
*
* @param key 参数键
* @return dictDatas 字典数据列表
*/
public
static
List
<
SysDictData
>
getDictCache
(
String
key
)
{
Object
arrayCache
=
RedisUtils
.
getCacheObject
(
getCacheKey
(
key
));
if
(!
ObjectUtils
.
isEmpty
(
arrayCache
))
{
return
(
List
<
SysDictData
>)
arrayCache
;
}
return
null
;
}
/**
* 根据字典类型和字典值获取字典标签
*
* @param dictType 字典类型
* @param dictValue 字典值
* @return 字典标签
*/
public
static
String
getDictLabel
(
String
dictType
,
String
dictValue
)
{
return
getDictLabel
(
dictType
,
dictValue
,
SEPARATOR
);
}
/**
* 根据字典类型和字典标签获取字典值
*
* @param dictType 字典类型
* @param dictLabel 字典标签
* @return 字典值
*/
public
static
String
getDictValue
(
String
dictType
,
String
dictLabel
)
{
return
getDictValue
(
dictType
,
dictLabel
,
SEPARATOR
);
}
/**
* 根据字典类型和字典值获取字典标签
*
* @param dictType 字典类型
* @param dictValue 字典值
* @param separator 分隔符
* @return 字典标签
*/
public
static
String
getDictLabel
(
String
dictType
,
String
dictValue
,
String
separator
)
{
StringBuilder
propertyString
=
new
StringBuilder
();
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
if
(!
ObjectUtils
.
isEmpty
(
datas
))
{
if
(
StringUtils
.
containsAny
(
separator
,
dictValue
))
{
for
(
SysDictData
dict
:
datas
)
{
for
(
String
value
:
dictValue
.
split
(
separator
))
{
if
(
value
.
equals
(
dict
.
getDictValue
()))
{
propertyString
.
append
(
dict
.
getDictLabel
()).
append
(
separator
);
break
;
}
}
}
}
else
{
for
(
SysDictData
dict
:
datas
)
{
if
(
dictValue
.
equals
(
dict
.
getDictValue
()))
{
return
dict
.
getDictLabel
();
}
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
/**
* 根据字典类型和字典标签获取字典值
*
* @param dictType 字典类型
* @param dictLabel 字典标签
* @param separator 分隔符
* @return 字典值
*/
public
static
String
getDictValue
(
String
dictType
,
String
dictLabel
,
String
separator
)
{
StringBuilder
propertyString
=
new
StringBuilder
();
List
<
SysDictData
>
datas
=
getDictCache
(
dictType
);
if
(
StringUtils
.
containsAny
(
separator
,
dictLabel
)
&&
CollectionUtils
.
isNotEmpty
(
datas
))
{
for
(
SysDictData
dict
:
datas
)
{
for
(
String
label
:
dictLabel
.
split
(
separator
))
{
if
(
label
.
equals
(
dict
.
getDictLabel
()))
{
propertyString
.
append
(
dict
.
getDictValue
()).
append
(
separator
);
break
;
}
}
}
}
else
{
for
(
SysDictData
dict
:
datas
)
{
if
(
dictLabel
.
equals
(
dict
.
getDictLabel
()))
{
return
dict
.
getDictValue
();
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
/**
* 删除指定字典缓存
*
* @param key 字典键
*/
public
static
void
removeDictCache
(
String
key
)
{
RedisUtils
.
deleteObject
(
getCacheKey
(
key
));
}
/**
* 清空字典缓存
*/
public
static
void
clearDictCache
()
{
Collection
<
String
>
keys
=
RedisUtils
.
keys
(
CacheConstants
.
SYS_DICT_KEY
+
"*"
);
RedisUtils
.
deleteObject
(
keys
);
}
/**
* 设置cache key
*
* @param configKey 参数键
* @return 缓存键key
*/
public
static
String
getCacheKey
(
String
configKey
)
{
return
CacheConstants
.
SYS_DICT_KEY
+
configKey
;
}
}
dsk-common/src/main/java/com/dsk/common/utils/DingTalkUtil.java
View file @
fdc10cb4
...
@@ -5,7 +5,6 @@ import cn.hutool.json.JSONUtil;
...
@@ -5,7 +5,6 @@ import cn.hutool.json.JSONUtil;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -39,7 +38,7 @@ public class DingTalkUtil {
...
@@ -39,7 +38,7 @@ public class DingTalkUtil {
* @param content 通知内容
* @param content 通知内容
*/
*/
public
static
void
sendDingTalkMsg
(
String
content
)
{
public
static
void
sendDingTalkMsg
(
String
content
)
{
sendDingTalkMsg
(
tru
e
,
null
,
content
);
sendDingTalkMsg
(
fals
e
,
null
,
content
);
}
}
/**
/**
...
@@ -77,9 +76,4 @@ public class DingTalkUtil {
...
@@ -77,9 +76,4 @@ public class DingTalkUtil {
log
.
error
(
"发送钉钉消息异常"
,
e
);
log
.
error
(
"发送钉钉消息异常"
,
e
);
}
}
}
}
public
static
void
main
(
String
[]
args
)
{
// sendDingTalkMsg("服务通知:测试消息");
sendDingTalkMsg
(
Collections
.
singletonList
(
"4008123123"
),
"央企数字化经营系统如期上线::xxxxxx"
);
}
}
}
dsk-common/src/main/java/com/dsk/common/utils/file/ImageUtils.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
common
.
utils
.
file
;
import
com.dsk.common.utils.StringUtils
;
import
org.apache.poi.util.IOUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.ByteArrayInputStream
;
import
java.io.FileInputStream
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.net.URLConnection
;
import
java.util.Arrays
;
/**
* 图片处理工具类
*
* @author dsk
*/
public
class
ImageUtils
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ImageUtils
.
class
);
public
static
byte
[]
getImage
(
String
imagePath
)
{
InputStream
is
=
getFile
(
imagePath
);
try
{
return
IOUtils
.
toByteArray
(
is
);
}
catch
(
Exception
e
)
{
log
.
error
(
"图片加载异常 {}"
,
e
);
return
null
;
}
finally
{
IOUtils
.
closeQuietly
(
is
);
}
}
public
static
InputStream
getFile
(
String
imagePath
)
{
try
{
byte
[]
result
=
readFile
(
imagePath
);
result
=
Arrays
.
copyOf
(
result
,
result
.
length
);
return
new
ByteArrayInputStream
(
result
);
}
catch
(
Exception
e
)
{
log
.
error
(
"获取图片异常 {}"
,
e
);
}
return
null
;
}
/**
* 读取文件为字节数据
*
* @param url 地址
* @return 字节数据
*/
public
static
byte
[]
readFile
(
String
url
)
{
InputStream
in
=
null
;
try
{
if
(
url
.
startsWith
(
"http"
))
{
// 网络地址
URL
urlObj
=
new
URL
(
url
);
URLConnection
urlConnection
=
urlObj
.
openConnection
();
urlConnection
.
setConnectTimeout
(
30
*
1000
);
urlConnection
.
setReadTimeout
(
60
*
1000
);
urlConnection
.
setDoInput
(
true
);
in
=
urlConnection
.
getInputStream
();
}
else
{
// 本机地址
String
localPath
=
FileUploadUtils
.
getDefaultBaseDir
();
String
downloadPath
=
localPath
+
StringUtils
.
substringAfter
(
url
,
"/profile"
);
in
=
new
FileInputStream
(
downloadPath
);
}
return
IOUtils
.
toByteArray
(
in
);
}
catch
(
Exception
e
)
{
log
.
error
(
"获取文件路径异常 {}"
,
e
);
return
null
;
}
finally
{
IOUtils
.
closeQuietly
(
in
);
}
}
}
dsk-common/src/main/java/com/dsk/common/utils/poi/ExcelHandlerAdapter.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
common
.
utils
.
poi
;
/**
* Excel数据格式处理适配器
*
* @author dsk
*/
public
interface
ExcelHandlerAdapter
{
/**
* 格式化
*
* @param value 单元格数据值
* @param args excel注解args参数组
*
* @return 处理后的值
*/
Object
format
(
Object
value
,
String
[]
args
);
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/domain/Customer.java
View file @
fdc10cb4
...
@@ -3,7 +3,6 @@ package com.dsk.biz.domain;
...
@@ -3,7 +3,6 @@ package com.dsk.biz.domain;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.*
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -16,12 +15,12 @@ import java.util.Date;
...
@@ -16,12 +15,12 @@ import java.util.Date;
*/
*/
@Data
@Data
@NoArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@TableName
(
"customer"
)
@TableName
(
"customer"
)
public
class
Customer
implements
Serializable
{
public
class
Customer
implements
Serializable
{
private
static
final
long
serialVersionUID
=
824383302173350532L
;
private
static
final
long
serialVersionUID
=
824383302173350532L
;
@TableId
(
value
=
"customer_id"
,
type
=
IdType
.
ASSIGN_UUID
)
@TableId
(
value
=
"customer_id"
,
type
=
IdType
.
ASSIGN_UUID
)
private
String
customerId
;
private
String
customerId
;
/**
/**
* jsk企业id
* jsk企业id
...
@@ -128,14 +127,16 @@ public class Customer implements Serializable {
...
@@ -128,14 +127,16 @@ public class Customer implements Serializable {
*/
*/
private
String
tenantId
;
private
String
tenantId
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
private
Long
createId
;
private
Long
createId
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@TableField
(
exist
=
false
)
private
Date
createTime
;
private
Date
createTime
;
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Long
updateId
;
private
Long
updateId
;
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
@TableField
(
exist
=
false
)
private
Date
updateTime
;
private
Date
updateTime
;
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/domain/CustomerFollowRecord.java
View file @
fdc10cb4
package
com
.
dsk
.
biz
.
domain
;
package
com
.
dsk
.
biz
.
domain
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
...
@@ -38,10 +39,12 @@ public class CustomerFollowRecord implements Serializable {
...
@@ -38,10 +39,12 @@ public class CustomerFollowRecord implements Serializable {
/**
/**
* 拜访时间
* 拜访时间
*/
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
visitTime
;
private
Date
visitTime
;
/**
/**
* 下次拜访时间
* 下次拜访时间
*/
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
nextVisitTime
;
private
Date
nextVisitTime
;
/**
/**
* 拜访对象姓名
* 拜访对象姓名
...
@@ -56,7 +59,7 @@ public class CustomerFollowRecord implements Serializable {
...
@@ -56,7 +59,7 @@ public class CustomerFollowRecord implements Serializable {
*/
*/
private
String
content
;
private
String
content
;
@TableField
(
fill
=
FieldFill
.
INSERT
)
@TableField
(
exist
=
false
)
private
Date
createTime
;
private
Date
createTime
;
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/domain/CustomerUser.java
View file @
fdc10cb4
...
@@ -37,12 +37,12 @@ public class CustomerUser implements Serializable {
...
@@ -37,12 +37,12 @@ public class CustomerUser implements Serializable {
/**
/**
* 创建时间
* 创建时间
*/
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
@TableField
(
exist
=
false
)
private
Date
createTime
;
private
Date
createTime
;
/**
/**
* 修改时间
* 修改时间
*/
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
@TableField
(
exist
=
false
)
private
Date
updateTime
;
private
Date
updateTime
;
public
CustomerUser
(
String
customerId
,
Long
userId
)
{
public
CustomerUser
(
String
customerId
,
Long
userId
)
{
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/mapper/BusinessRelateCompanyMapper.java
View file @
fdc10cb4
...
@@ -15,7 +15,7 @@ import java.util.List;
...
@@ -15,7 +15,7 @@ import java.util.List;
* @author lxl
* @author lxl
* @date 2023-05-17
* @date 2023-05-17
*/
*/
public
interface
BusinessRelateCompanyMapper
extends
BaseMapperPlus
<
BusinessRelateCompany
,
BusinessRelateCompany
,
BusinessRelateCompany
>
public
interface
BusinessRelateCompanyMapper
extends
BaseMapperPlus
<
BusinessRelateCompany
Mapper
,
BusinessRelateCompany
,
BusinessRelateCompany
>
{
{
/**
/**
* 查询项目关联单位
* 查询项目关联单位
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/mapper/ContactInfoMapper.java
View file @
fdc10cb4
...
@@ -19,7 +19,7 @@ import java.util.List;
...
@@ -19,7 +19,7 @@ import java.util.List;
* @since 2023-07-25 17:18:05
* @since 2023-07-25 17:18:05
*/
*/
@Mapper
@Mapper
public
interface
ContactInfoMapper
extends
BaseMapperPlus
<
ContactInfo
,
ContactInfo
,
ContactInfo
>
{
public
interface
ContactInfoMapper
extends
BaseMapperPlus
<
ContactInfo
Mapper
,
ContactInfo
,
ContactInfo
>
{
Page
<
ContactInfoListVo
>
selectPageList
(
IPage
<
ContactInfoSearchDto
>
page
,
@Param
(
"dto"
)
ContactInfoSearchDto
dto
);
Page
<
ContactInfoListVo
>
selectPageList
(
IPage
<
ContactInfoSearchDto
>
page
,
@Param
(
"dto"
)
ContactInfoSearchDto
dto
);
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/mapper/CustomerFollowRecordMapper.java
View file @
fdc10cb4
...
@@ -22,13 +22,13 @@ import java.util.List;
...
@@ -22,13 +22,13 @@ import java.util.List;
* @since 2023-05-18 15:07:59
* @since 2023-05-18 15:07:59
*/
*/
@Mapper
@Mapper
public
interface
CustomerFollowRecordMapper
extends
BaseMapperPlus
<
CustomerFollowRecord
,
CustomerFollowRecord
,
CustomerFollowRecord
>
{
public
interface
CustomerFollowRecordMapper
extends
BaseMapperPlus
<
CustomerFollowRecord
Mapper
,
CustomerFollowRecord
,
CustomerFollowRecord
>
{
@DataPermission
({
@DataPermission
({
@DataColumn
(
key
=
"deptName"
,
value
=
"d.dept_id"
),
@DataColumn
(
key
=
"deptName"
,
value
=
"d.dept_id"
),
@DataColumn
(
key
=
"userName"
,
value
=
"u.user_id"
)
@DataColumn
(
key
=
"userName"
,
value
=
"u.user_id"
)
})
})
List
<
CustomerFollowRecordListVo
>
selectAuthList
(
@Param
(
"page"
)
IPage
<
CustomerFollowRecordSearchDto
>
page
,
@Param
(
"dto"
)
CustomerFollowRecordSearchDto
dto
);
List
<
CustomerFollowRecordListVo
>
selectAuthList
(
@Param
(
"page"
)
IPage
<
CustomerFollowRecordSearchDto
>
page
,
@Param
(
"dto"
)
CustomerFollowRecordSearchDto
dto
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/mapper/CustomerMapper.java
View file @
fdc10cb4
package
com
.
dsk
.
biz
.
mapper
;
package
com
.
dsk
.
biz
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.dsk.biz.domain.Customer
;
import
com.dsk.biz.domain.Customer
;
...
@@ -22,7 +23,7 @@ import java.util.Map;
...
@@ -22,7 +23,7 @@ import java.util.Map;
* @since 2023-05-16 09:28:00
* @since 2023-05-16 09:28:00
*/
*/
@Mapper
@Mapper
public
interface
CustomerMapper
extends
BaseMapper
Plus
<
Customer
,
Customer
,
Customer
>
{
public
interface
CustomerMapper
extends
BaseMapper
<
Customer
>
{
Page
<
CustomerListVo
>
selectList
(
IPage
<
CustomerSearchDto
>
page
,
@Param
(
"dto"
)
CustomerSearchDto
dto
);
Page
<
CustomerListVo
>
selectList
(
IPage
<
CustomerSearchDto
>
page
,
@Param
(
"dto"
)
CustomerSearchDto
dto
);
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/mapper/CustomerUserMapper.java
View file @
fdc10cb4
package
com
.
dsk
.
biz
.
mapper
;
package
com
.
dsk
.
biz
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.dsk.biz.domain.CustomerUser
;
import
com.dsk.biz.domain.CustomerUser
;
import
com.dsk.common.core.mapper.BaseMapperPlus
;
import
com.dsk.common.core.mapper.BaseMapperPlus
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
...
@@ -13,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
...
@@ -13,7 +14,7 @@ import org.apache.ibatis.annotations.Param;
* @since 2023-05-16 09:28:00
* @since 2023-05-16 09:28:00
*/
*/
@Mapper
@Mapper
public
interface
CustomerUserMapper
extends
BaseMapper
Plus
<
CustomerUser
,
CustomerUser
,
CustomerUser
>
{
public
interface
CustomerUserMapper
extends
BaseMapper
<
CustomerUser
>
{
CustomerUser
selectByCustomerIdAndUserId
(
@Param
(
"customerId"
)
String
customerId
,
@Param
(
"userId"
)
Long
userId
);
CustomerUser
selectByCustomerIdAndUserId
(
@Param
(
"customerId"
)
String
customerId
,
@Param
(
"userId"
)
Long
userId
);
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/biz/utils/ExcelUtils.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
biz
.
utils
;
import
cn.hutool.core.convert.Convert
;
import
com.dsk.common.annotation.Excel
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.exception.UtilException
;
import
com.dsk.common.utils.DateUtils
;
import
com.dsk.common.utils.DictUtils
;
import
com.dsk.common.utils.StringUtils
;
import
com.dsk.common.utils.file.FileTypeUtils
;
import
com.dsk.common.utils.file.FileUploadUtils
;
import
com.dsk.common.utils.file.ImageUtils
;
import
com.dsk.common.utils.poi.ExcelHandlerAdapter
;
import
com.dsk.common.utils.poi.ExcelUtil
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.RegExUtils
;
import
org.apache.commons.lang3.reflect.FieldUtils
;
import
org.apache.poi.hssf.usermodel.*
;
import
org.apache.poi.ooxml.POIXMLDocumentPart
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.ss.util.CellRangeAddressList
;
import
org.apache.poi.util.IOUtils
;
import
org.apache.poi.xssf.streaming.SXSSFWorkbook
;
import
org.apache.poi.xssf.usermodel.*
;
import
org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTMarker
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.util.ObjectUtils
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.ParameterizedType
;
import
java.math.BigDecimal
;
import
java.text.DecimalFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* Excel相关处理
*
* @author dsk
*/
public
class
ExcelUtils
<
T
>
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ExcelUtil
.
class
);
public
static
final
String
FORMULA_REGEX_STR
=
"=|-|\\+|@"
;
public
static
final
String
[]
FORMULA_STR
=
{
"="
,
"-"
,
"+"
,
"@"
};
/**
* 用于dictType属性数据存储,避免重复查缓存
*/
public
Map
<
String
,
String
>
sysDictMap
=
new
HashMap
<
String
,
String
>();
/**
* Excel sheet最大行数,默认65536
*/
public
static
final
int
sheetSize
=
65536
;
/**
* 工作表名称
*/
private
String
sheetName
;
/**
* 导出类型(EXPORT:导出数据;IMPORT:导入模板)
*/
private
Excel
.
Type
type
;
/**
* 工作薄对象
*/
private
Workbook
wb
;
/**
* 工作表对象
*/
private
Sheet
sheet
;
/**
* 样式列表
*/
private
Map
<
String
,
CellStyle
>
styles
;
/**
* 导入导出数据列表
*/
private
List
<
T
>
list
;
/**
* 注解列表
*/
private
List
<
Object
[]>
fields
;
/**
* 当前行号
*/
private
int
rownum
;
/**
* 标题
*/
private
String
title
;
/**
* 导出时间 (是否添加导出时间)
*/
private
boolean
dateStatus
;
/**
* 最大高度
*/
private
short
maxHeight
;
/**
* 合并后最后行数
*/
private
int
subMergedLastRowNum
=
0
;
/**
* 合并后开始行数
*/
private
int
subMergedFirstRowNum
=
1
;
/**
* 对象的子列表方法
*/
private
Method
subMethod
;
/**
* 对象的子列表属性
*/
private
List
<
Field
>
subFields
;
/**
* 统计列表
*/
private
Map
<
Integer
,
Double
>
statistics
=
new
HashMap
<
Integer
,
Double
>();
/**
* 数字格式
*/
private
static
final
DecimalFormat
DOUBLE_FORMAT
=
new
DecimalFormat
(
"######0.00"
);
/**
* 实体对象
*/
public
Class
<
T
>
clazz
;
/**
* 需要排除列属性
*/
public
String
[]
excludeFields
;
public
ExcelUtils
(
Class
<
T
>
clazz
)
{
this
.
clazz
=
clazz
;
}
/**
* 隐藏Excel中列属性
*
* @param fields 列属性名 示例[单个"name"/多个"id","name"]
* @throws Exception
*/
public
void
hideColumn
(
String
...
fields
)
{
this
.
excludeFields
=
fields
;
}
public
void
init
(
List
<
T
>
list
,
String
sheetName
,
String
title
,
Excel
.
Type
type
,
boolean
dateStatus
)
{
if
(
list
==
null
)
{
list
=
new
ArrayList
<
T
>();
}
this
.
list
=
list
;
this
.
sheetName
=
sheetName
;
this
.
type
=
type
;
this
.
title
=
title
;
this
.
dateStatus
=
dateStatus
;
createExcelField
();
createWorkbook
();
createTitle
();
createExportDate
();
createSubHead
();
}
/**
* 创建excel第一行标题
*/
public
void
createTitle
()
{
if
(
StringUtils
.
isNotEmpty
(
title
))
{
subMergedFirstRowNum
++;
subMergedLastRowNum
++;
int
titleLastCol
=
this
.
fields
.
size
()
-
1
;
if
(
isSubList
())
{
titleLastCol
=
titleLastCol
+
subFields
.
size
()
-
1
;
}
Row
titleRow
=
sheet
.
createRow
(
rownum
==
0
?
rownum
++
:
0
);
titleRow
.
setHeightInPoints
(
30
);
Cell
titleCell
=
titleRow
.
createCell
(
0
);
titleCell
.
setCellStyle
(
styles
.
get
(
"title"
));
titleCell
.
setCellValue
(
title
);
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
titleRow
.
getRowNum
(),
titleRow
.
getRowNum
(),
titleRow
.
getRowNum
(),
titleLastCol
));
}
}
public
void
createExportDate
()
{
if
(
dateStatus
)
{
subMergedFirstRowNum
++;
subMergedLastRowNum
++;
int
dateLastCol
=
this
.
fields
.
size
()
-
1
;
if
(
isSubList
())
{
dateLastCol
=
dateLastCol
+
subFields
.
size
()
-
1
;
}
Row
dateRow
=
sheet
.
createRow
(
rownum
);
dateRow
.
setHeightInPoints
(
15
);
Cell
dateCell
=
dateRow
.
createCell
(
0
);
CellStyle
cellStyle
=
wb
.
createCellStyle
();
cellStyle
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
dateCell
.
setCellStyle
(
cellStyle
);
dateCell
.
setCellValue
(
"导出时间:"
.
concat
(
DateUtils
.
dateTimeNow
(
DateUtils
.
YYYY_MM_DD_HH_MM_SS
)));
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
dateRow
.
getRowNum
(),
dateRow
.
getRowNum
(),
0
,
dateLastCol
));
rownum
++;
}
}
/**
* 创建对象的子列表名称
*/
public
void
createSubHead
()
{
if
(
isSubList
())
{
subMergedFirstRowNum
++;
subMergedLastRowNum
++;
Row
subRow
=
sheet
.
createRow
(
rownum
);
int
excelNum
=
0
;
for
(
Object
[]
objects
:
fields
)
{
Excel
attr
=
(
Excel
)
objects
[
1
];
Cell
headCell1
=
subRow
.
createCell
(
excelNum
);
headCell1
.
setCellValue
(
attr
.
name
());
headCell1
.
setCellStyle
(
styles
.
get
(
StringUtils
.
format
(
"header_{}_{}"
,
attr
.
headerColor
(),
attr
.
headerBackgroundColor
())));
excelNum
++;
}
int
headFirstRow
=
excelNum
-
1
;
int
headLastRow
=
headFirstRow
+
subFields
.
size
()
-
1
;
if
(
headLastRow
>
headFirstRow
)
{
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
rownum
,
rownum
,
headFirstRow
,
headLastRow
));
}
rownum
++;
}
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @return 结果
*/
public
AjaxResult
exportExcel
(
List
<
T
>
list
,
String
sheetName
)
{
return
exportExcel
(
list
,
sheetName
,
StringUtils
.
EMPTY
);
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @param title 标题
* @return 结果
*/
public
AjaxResult
exportExcel
(
List
<
T
>
list
,
String
sheetName
,
String
title
)
{
this
.
init
(
list
,
sheetName
,
title
,
Excel
.
Type
.
EXPORT
,
false
);
return
exportExcel
();
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param response 返回数据
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @return 结果
*/
public
void
exportExcel
(
HttpServletResponse
response
,
List
<
T
>
list
,
String
sheetName
)
{
exportExcel
(
response
,
list
,
sheetName
,
StringUtils
.
EMPTY
);
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param response 返回数据
* @param list 导出数据集合
* @param sheetName 工作表的名称
* @param title 标题
* @return 结果
*/
public
void
exportExcel
(
HttpServletResponse
response
,
List
<
T
>
list
,
String
sheetName
,
String
title
)
{
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
setCharacterEncoding
(
"utf-8"
);
this
.
init
(
list
,
sheetName
,
title
,
Excel
.
Type
.
EXPORT
,
false
);
exportExcel
(
response
);
}
public
void
exportExcel
(
HttpServletResponse
response
,
List
<
T
>
list
,
String
sheetName
,
String
title
,
boolean
dateStatus
)
{
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
setCharacterEncoding
(
"utf-8"
);
this
.
init
(
list
,
sheetName
,
title
,
Excel
.
Type
.
EXPORT
,
dateStatus
);
exportExcel
(
response
);
}
private
static
final
String
FILE_PATH
=
"D://"
;
/**
* 本地初始化
*
* @param list 数据列表
* @param sheetName sheet名称
* @param title 标题
* @param dateStatus 是否添加导出时间
* @return
*/
public
String
localInit
(
List
<
T
>
list
,
String
sheetName
,
String
title
,
boolean
dateStatus
)
{
String
fileName
=
title
+
"-"
+
System
.
currentTimeMillis
()
+
".xlsx"
;
this
.
init
(
list
,
sheetName
,
title
,
Excel
.
Type
.
EXPORT
,
dateStatus
);
writeSheet
();
try
(
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
FILE_PATH
.
concat
(
fileName
))){
wb
.
write
(
fileOutputStream
);
return
fileName
;
}
catch
(
Exception
e
)
{
log
.
error
(
"导出Excel异常{}"
,
e
.
getMessage
());
}
finally
{
IOUtils
.
closeQuietly
(
wb
);
}
return
null
;
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param sheetName 工作表的名称
* @return 结果
*/
public
AjaxResult
importTemplateExcel
(
String
sheetName
)
{
return
importTemplateExcel
(
sheetName
,
StringUtils
.
EMPTY
);
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param sheetName 工作表的名称
* @param title 标题
* @return 结果
*/
public
AjaxResult
importTemplateExcel
(
String
sheetName
,
String
title
)
{
this
.
init
(
null
,
sheetName
,
title
,
Excel
.
Type
.
IMPORT
,
false
);
return
exportExcel
();
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param sheetName 工作表的名称
* @return 结果
*/
public
void
importTemplateExcel
(
HttpServletResponse
response
,
String
sheetName
)
{
importTemplateExcel
(
response
,
sheetName
,
StringUtils
.
EMPTY
);
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @param sheetName 工作表的名称
* @param title 标题
* @return 结果
*/
public
void
importTemplateExcel
(
HttpServletResponse
response
,
String
sheetName
,
String
title
)
{
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
setCharacterEncoding
(
"utf-8"
);
this
.
init
(
null
,
sheetName
,
title
,
Excel
.
Type
.
IMPORT
,
false
);
exportExcel
(
response
);
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @return 结果
*/
public
void
exportExcel
(
HttpServletResponse
response
)
{
try
{
writeSheet
();
wb
.
write
(
response
.
getOutputStream
());
}
catch
(
Exception
e
)
{
log
.
error
(
"导出Excel异常{}"
,
e
.
getMessage
());
}
finally
{
IOUtils
.
closeQuietly
(
wb
);
}
}
/**
* 对list数据源将其里面的数据导入到excel表单
*
* @return 结果
*/
public
AjaxResult
exportExcel
()
{
OutputStream
out
=
null
;
try
{
writeSheet
();
String
filename
=
encodingFilename
(
sheetName
);
out
=
new
FileOutputStream
(
getAbsoluteFile
(
filename
));
wb
.
write
(
out
);
return
AjaxResult
.
success
(
filename
);
}
catch
(
Exception
e
)
{
log
.
error
(
"导出Excel异常{}"
,
e
.
getMessage
());
throw
new
UtilException
(
"导出Excel失败,请联系网站管理员!"
);
}
finally
{
IOUtils
.
closeQuietly
(
wb
);
IOUtils
.
closeQuietly
(
out
);
}
}
/**
* 创建写入数据到Sheet
*/
public
void
writeSheet
()
{
// 取出一共有多少个sheet.
int
sheetNo
=
Math
.
max
(
1
,
(
int
)
Math
.
ceil
(
list
.
size
()
*
1.0
/
sheetSize
));
for
(
int
index
=
0
;
index
<
sheetNo
;
index
++)
{
createSheet
(
sheetNo
,
index
);
// 产生一行
Row
row
=
sheet
.
createRow
(
rownum
);
int
column
=
0
;
// 写入各个字段的列头名称
for
(
Object
[]
os
:
fields
)
{
Field
field
=
(
Field
)
os
[
0
];
Excel
excel
=
(
Excel
)
os
[
1
];
if
(
Collection
.
class
.
isAssignableFrom
(
field
.
getType
()))
{
for
(
Field
subField
:
subFields
)
{
Excel
subExcel
=
subField
.
getAnnotation
(
Excel
.
class
);
this
.
createHeadCell
(
subExcel
,
row
,
column
++);
}
}
else
{
this
.
createHeadCell
(
excel
,
row
,
column
++);
}
}
if
(
Excel
.
Type
.
EXPORT
.
equals
(
type
))
{
fillExcelData
(
index
,
row
);
addStatisticsRow
();
}
}
}
/**
* 填充excel数据
*
* @param index 序号
* @param row 单元格行
*/
@SuppressWarnings
(
"unchecked"
)
public
void
fillExcelData
(
int
index
,
Row
row
)
{
int
startNo
=
index
*
sheetSize
;
int
endNo
=
Math
.
min
(
startNo
+
sheetSize
,
list
.
size
());
int
rowNo
=
(
1
+
rownum
)
-
startNo
;
for
(
int
i
=
startNo
;
i
<
endNo
;
i
++)
{
rowNo
=
isSubList
()
?
(
i
>
1
?
rowNo
+
1
:
rowNo
+
i
)
:
i
+
1
+
rownum
-
startNo
;
row
=
sheet
.
createRow
(
rowNo
);
// 得到导出对象.
T
vo
=
(
T
)
list
.
get
(
i
);
Collection
<?>
subList
=
null
;
if
(
isSubList
())
{
if
(
isSubListValue
(
vo
))
{
subList
=
getListCellValue
(
vo
);
subMergedLastRowNum
=
subMergedLastRowNum
+
subList
.
size
();
}
else
{
subMergedFirstRowNum
++;
subMergedLastRowNum
++;
}
}
int
column
=
0
;
for
(
Object
[]
os
:
fields
)
{
Field
field
=
(
Field
)
os
[
0
];
Excel
excel
=
(
Excel
)
os
[
1
];
if
(
Collection
.
class
.
isAssignableFrom
(
field
.
getType
())
&&
!
ObjectUtils
.
isEmpty
(
subList
))
{
boolean
subFirst
=
false
;
for
(
Object
obj
:
subList
)
{
if
(
subFirst
)
{
rowNo
++;
row
=
sheet
.
createRow
(
rowNo
);
}
List
<
Field
>
subFields
=
FieldUtils
.
getFieldsListWithAnnotation
(
obj
.
getClass
(),
Excel
.
class
);
int
subIndex
=
0
;
for
(
Field
subField
:
subFields
)
{
if
(
subField
.
isAnnotationPresent
(
Excel
.
class
))
{
subField
.
setAccessible
(
true
);
Excel
attr
=
subField
.
getAnnotation
(
Excel
.
class
);
this
.
addCell
(
attr
,
row
,
(
T
)
obj
,
subField
,
column
+
subIndex
);
}
subIndex
++;
}
subFirst
=
true
;
}
this
.
subMergedFirstRowNum
=
this
.
subMergedFirstRowNum
+
subList
.
size
();
}
else
{
this
.
addCell
(
excel
,
row
,
vo
,
field
,
column
++);
}
}
}
}
/**
* 创建表格样式
*
* @param wb 工作薄对象
* @return 样式列表
*/
private
Map
<
String
,
CellStyle
>
createStyles
(
Workbook
wb
)
{
// 写入各条记录,每条记录对应excel表中的一行
Map
<
String
,
CellStyle
>
styles
=
new
HashMap
<
String
,
CellStyle
>();
CellStyle
style
=
wb
.
createCellStyle
();
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
Font
titleFont
=
wb
.
createFont
();
titleFont
.
setFontName
(
"Arial"
);
titleFont
.
setFontHeightInPoints
((
short
)
16
);
titleFont
.
setBold
(
true
);
style
.
setFont
(
titleFont
);
styles
.
put
(
"title"
,
style
);
style
=
wb
.
createCellStyle
();
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
style
.
setBorderRight
(
BorderStyle
.
THIN
);
style
.
setRightBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setBorderLeft
(
BorderStyle
.
THIN
);
style
.
setLeftBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setBorderTop
(
BorderStyle
.
THIN
);
style
.
setTopBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setBorderBottom
(
BorderStyle
.
THIN
);
style
.
setBottomBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
Font
dataFont
=
wb
.
createFont
();
dataFont
.
setFontName
(
"Arial"
);
dataFont
.
setFontHeightInPoints
((
short
)
10
);
style
.
setFont
(
dataFont
);
styles
.
put
(
"data"
,
style
);
style
=
wb
.
createCellStyle
();
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
Font
totalFont
=
wb
.
createFont
();
totalFont
.
setFontName
(
"Arial"
);
totalFont
.
setFontHeightInPoints
((
short
)
10
);
style
.
setFont
(
totalFont
);
styles
.
put
(
"total"
,
style
);
styles
.
putAll
(
annotationHeaderStyles
(
wb
,
styles
));
styles
.
putAll
(
annotationDataStyles
(
wb
));
return
styles
;
}
/**
* 根据Excel注解创建表格头样式
*
* @param wb 工作薄对象
* @return 自定义样式列表
*/
private
Map
<
String
,
CellStyle
>
annotationHeaderStyles
(
Workbook
wb
,
Map
<
String
,
CellStyle
>
styles
)
{
Map
<
String
,
CellStyle
>
headerStyles
=
new
HashMap
<
String
,
CellStyle
>();
for
(
Object
[]
os
:
fields
)
{
Excel
excel
=
(
Excel
)
os
[
1
];
String
key
=
StringUtils
.
format
(
"header_{}_{}"
,
excel
.
headerColor
(),
excel
.
headerBackgroundColor
());
if
(!
headerStyles
.
containsKey
(
key
))
{
CellStyle
style
=
wb
.
createCellStyle
();
style
.
cloneStyleFrom
(
styles
.
get
(
"data"
));
style
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
style
.
setFillForegroundColor
(
excel
.
headerBackgroundColor
().
index
);
style
.
setFillPattern
(
FillPatternType
.
SOLID_FOREGROUND
);
Font
headerFont
=
wb
.
createFont
();
headerFont
.
setFontName
(
"Arial"
);
headerFont
.
setFontHeightInPoints
((
short
)
10
);
headerFont
.
setBold
(
true
);
headerFont
.
setColor
(
excel
.
headerColor
().
index
);
style
.
setFont
(
headerFont
);
headerStyles
.
put
(
key
,
style
);
}
}
return
headerStyles
;
}
/**
* 根据Excel注解创建表格列样式
*
* @param wb 工作薄对象
* @return 自定义样式列表
*/
private
Map
<
String
,
CellStyle
>
annotationDataStyles
(
Workbook
wb
)
{
Map
<
String
,
CellStyle
>
styles
=
new
HashMap
<
String
,
CellStyle
>();
for
(
Object
[]
os
:
fields
)
{
Excel
excel
=
(
Excel
)
os
[
1
];
String
key
=
StringUtils
.
format
(
"data_{}_{}_{}"
,
excel
.
align
(),
excel
.
color
(),
excel
.
backgroundColor
());
if
(!
styles
.
containsKey
(
key
))
{
CellStyle
style
=
wb
.
createCellStyle
();
style
.
setAlignment
(
excel
.
align
());
style
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
style
.
setBorderRight
(
BorderStyle
.
THIN
);
style
.
setRightBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setBorderLeft
(
BorderStyle
.
THIN
);
style
.
setLeftBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setBorderTop
(
BorderStyle
.
THIN
);
style
.
setTopBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setBorderBottom
(
BorderStyle
.
THIN
);
style
.
setBottomBorderColor
(
IndexedColors
.
GREY_50_PERCENT
.
getIndex
());
style
.
setFillPattern
(
FillPatternType
.
SOLID_FOREGROUND
);
style
.
setFillForegroundColor
(
excel
.
backgroundColor
().
getIndex
());
Font
dataFont
=
wb
.
createFont
();
dataFont
.
setFontName
(
"Arial"
);
dataFont
.
setFontHeightInPoints
((
short
)
10
);
dataFont
.
setColor
(
excel
.
color
().
index
);
style
.
setFont
(
dataFont
);
styles
.
put
(
key
,
style
);
}
}
return
styles
;
}
/**
* 创建单元格
*/
public
Cell
createHeadCell
(
Excel
attr
,
Row
row
,
int
column
)
{
// 创建列
Cell
cell
=
row
.
createCell
(
column
);
// 写入列信息
cell
.
setCellValue
(
attr
.
name
());
setDataValidation
(
attr
,
row
,
column
);
cell
.
setCellStyle
(
styles
.
get
(
StringUtils
.
format
(
"header_{}_{}"
,
attr
.
headerColor
(),
attr
.
headerBackgroundColor
())));
if
(
isSubList
())
{
// 填充默认样式,防止合并单元格样式失效
sheet
.
setDefaultColumnStyle
(
column
,
styles
.
get
(
StringUtils
.
format
(
"data_{}_{}_{}"
,
attr
.
align
(),
attr
.
color
(),
attr
.
backgroundColor
())));
if
(
attr
.
needMerge
())
{
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
rownum
-
1
,
rownum
,
column
,
column
));
}
}
return
cell
;
}
/**
* 设置单元格信息
*
* @param value 单元格值
* @param attr 注解相关
* @param cell 单元格信息
*/
public
void
setCellVo
(
Object
value
,
Excel
attr
,
Cell
cell
)
{
if
(
Excel
.
ColumnType
.
STRING
==
attr
.
cellType
())
{
String
cellValue
=
Convert
.
toStr
(
value
);
// 对于任何以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。
if
(
StringUtils
.
startsWithAny
(
cellValue
,
FORMULA_STR
))
{
cellValue
=
RegExUtils
.
replaceFirst
(
cellValue
,
FORMULA_REGEX_STR
,
"\t$0"
);
}
if
(
value
instanceof
Collection
&&
StringUtils
.
equals
(
"[]"
,
cellValue
))
{
cellValue
=
StringUtils
.
EMPTY
;
}
cell
.
setCellValue
(
ObjectUtils
.
isEmpty
(
cellValue
)
?
attr
.
defaultValue
()
:
cellValue
+
attr
.
suffix
());
}
else
if
(
Excel
.
ColumnType
.
NUMERIC
==
attr
.
cellType
())
{
if
(!
ObjectUtils
.
isEmpty
(
value
))
{
cell
.
setCellValue
(
StringUtils
.
contains
(
Convert
.
toStr
(
value
),
"."
)
?
Convert
.
toDouble
(
value
)
:
Convert
.
toInt
(
value
));
}
}
else
if
(
Excel
.
ColumnType
.
IMAGE
==
attr
.
cellType
())
{
ClientAnchor
anchor
=
new
XSSFClientAnchor
(
0
,
0
,
0
,
0
,
(
short
)
cell
.
getColumnIndex
(),
cell
.
getRow
().
getRowNum
(),
(
short
)
(
cell
.
getColumnIndex
()
+
1
),
cell
.
getRow
().
getRowNum
()
+
1
);
String
imagePath
=
Convert
.
toStr
(
value
);
if
(
StringUtils
.
isNotEmpty
(
imagePath
))
{
byte
[]
data
=
ImageUtils
.
getImage
(
imagePath
);
getDrawingPatriarch
(
cell
.
getSheet
()).
createPicture
(
anchor
,
cell
.
getSheet
().
getWorkbook
().
addPicture
(
data
,
getImageType
(
data
)));
}
}
}
/**
* 获取画布
*/
public
static
Drawing
<?>
getDrawingPatriarch
(
Sheet
sheet
)
{
if
(
sheet
.
getDrawingPatriarch
()
==
null
)
{
sheet
.
createDrawingPatriarch
();
}
return
sheet
.
getDrawingPatriarch
();
}
/**
* 获取图片类型,设置图片插入类型
*/
public
int
getImageType
(
byte
[]
value
)
{
String
type
=
FileTypeUtils
.
getFileExtendName
(
value
);
if
(
"JPG"
.
equalsIgnoreCase
(
type
))
{
return
Workbook
.
PICTURE_TYPE_JPEG
;
}
else
if
(
"PNG"
.
equalsIgnoreCase
(
type
))
{
return
Workbook
.
PICTURE_TYPE_PNG
;
}
return
Workbook
.
PICTURE_TYPE_JPEG
;
}
/**
* 创建表格样式
*/
public
void
setDataValidation
(
Excel
attr
,
Row
row
,
int
column
)
{
if
(
attr
.
name
().
indexOf
(
"注:"
)
>=
0
)
{
sheet
.
setColumnWidth
(
column
,
6000
);
}
else
{
// 设置列宽
sheet
.
setColumnWidth
(
column
,
(
int
)
((
attr
.
width
()
+
0.72
)
*
256
));
}
if
(
StringUtils
.
isNotEmpty
(
attr
.
prompt
())
||
attr
.
combo
().
length
>
0
)
{
if
(
attr
.
combo
().
length
>
15
||
StringUtils
.
join
(
attr
.
combo
()).
length
()
>
255
)
{
// 如果下拉数大于15或字符串长度大于255,则使用一个新sheet存储,避免生成的模板下拉值获取不到
setXSSFValidationWithHidden
(
sheet
,
attr
.
combo
(),
attr
.
prompt
(),
1
,
100
,
column
,
column
);
}
else
{
// 提示信息或只能选择不能输入的列内容.
setPromptOrValidation
(
sheet
,
attr
.
combo
(),
attr
.
prompt
(),
1
,
100
,
column
,
column
);
}
}
}
/**
* 添加单元格
*/
public
Cell
addCell
(
Excel
attr
,
Row
row
,
T
vo
,
Field
field
,
int
column
)
{
Cell
cell
=
null
;
try
{
// 设置行高
row
.
setHeight
(
maxHeight
);
// 根据Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列.
if
(
attr
.
isExport
())
{
// 创建cell
cell
=
row
.
createCell
(
column
);
if
(
isSubListValue
(
vo
)
&&
getListCellValue
(
vo
).
size
()
>
1
&&
attr
.
needMerge
())
{
CellRangeAddress
cellAddress
=
new
CellRangeAddress
(
subMergedFirstRowNum
,
subMergedLastRowNum
,
column
,
column
);
sheet
.
addMergedRegion
(
cellAddress
);
}
cell
.
setCellStyle
(
styles
.
get
(
StringUtils
.
format
(
"data_{}_{}_{}"
,
attr
.
align
(),
attr
.
color
(),
attr
.
backgroundColor
())));
// 用于读取对象中的属性
Object
value
=
getTargetValue
(
vo
,
field
,
attr
);
String
dateFormat
=
attr
.
dateFormat
();
String
readConverterExp
=
attr
.
readConverterExp
();
String
separator
=
attr
.
separator
();
String
dictType
=
attr
.
dictType
();
if
(
StringUtils
.
isNotEmpty
(
dateFormat
)
&&
!
ObjectUtils
.
isEmpty
(
value
))
{
cell
.
setCellValue
(
parseDateToStr
(
dateFormat
,
value
));
}
else
if
(
StringUtils
.
isNotEmpty
(
readConverterExp
)
&&
!
ObjectUtils
.
isEmpty
(
value
))
{
cell
.
setCellValue
(
convertByExp
(
Convert
.
toStr
(
value
),
readConverterExp
,
separator
));
}
else
if
(
StringUtils
.
isNotEmpty
(
dictType
)
&&
!
ObjectUtils
.
isEmpty
(
value
))
{
if
(!
sysDictMap
.
containsKey
(
dictType
+
value
))
{
String
lable
=
convertDictByExp
(
Convert
.
toStr
(
value
),
dictType
,
separator
);
sysDictMap
.
put
(
dictType
+
value
,
lable
);
}
cell
.
setCellValue
(
sysDictMap
.
get
(
dictType
+
value
));
}
else
if
(
value
instanceof
BigDecimal
&&
-
1
!=
attr
.
scale
())
{
cell
.
setCellValue
((((
BigDecimal
)
value
).
setScale
(
attr
.
scale
(),
attr
.
roundingMode
())).
doubleValue
());
}
else
if
(!
attr
.
handler
().
equals
(
ExcelHandlerAdapter
.
class
))
{
cell
.
setCellValue
(
dataFormatHandlerAdapter
(
value
,
attr
));
}
else
{
// 设置列类型
setCellVo
(
value
,
attr
,
cell
);
}
addStatisticsData
(
column
,
Convert
.
toStr
(
value
),
attr
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"导出Excel失败{}"
,
e
);
}
return
cell
;
}
/**
* 设置 POI XSSFSheet 单元格提示或选择框
*
* @param sheet 表单
* @param textlist 下拉框显示的内容
* @param promptContent 提示内容
* @param firstRow 开始行
* @param endRow 结束行
* @param firstCol 开始列
* @param endCol 结束列
*/
public
void
setPromptOrValidation
(
Sheet
sheet
,
String
[]
textlist
,
String
promptContent
,
int
firstRow
,
int
endRow
,
int
firstCol
,
int
endCol
)
{
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
DataValidationConstraint
constraint
=
textlist
.
length
>
0
?
helper
.
createExplicitListConstraint
(
textlist
)
:
helper
.
createCustomConstraint
(
"DD1"
);
CellRangeAddressList
regions
=
new
CellRangeAddressList
(
firstRow
,
endRow
,
firstCol
,
endCol
);
DataValidation
dataValidation
=
helper
.
createValidation
(
constraint
,
regions
);
if
(
StringUtils
.
isNotEmpty
(
promptContent
))
{
// 如果设置了提示信息则鼠标放上去提示
dataValidation
.
createPromptBox
(
""
,
promptContent
);
dataValidation
.
setShowPromptBox
(
true
);
}
// 处理Excel兼容性问题
if
(
dataValidation
instanceof
XSSFDataValidation
)
{
dataValidation
.
setSuppressDropDownArrow
(
true
);
dataValidation
.
setShowErrorBox
(
true
);
}
else
{
dataValidation
.
setSuppressDropDownArrow
(
false
);
}
sheet
.
addValidationData
(
dataValidation
);
}
/**
* 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框).
*
* @param sheet 要设置的sheet.
* @param textlist 下拉框显示的内容
* @param promptContent 提示内容
* @param firstRow 开始行
* @param endRow 结束行
* @param firstCol 开始列
* @param endCol 结束列
*/
public
void
setXSSFValidationWithHidden
(
Sheet
sheet
,
String
[]
textlist
,
String
promptContent
,
int
firstRow
,
int
endRow
,
int
firstCol
,
int
endCol
)
{
String
hideSheetName
=
"combo_"
+
firstCol
+
"_"
+
endCol
;
Sheet
hideSheet
=
wb
.
createSheet
(
hideSheetName
);
// 用于存储 下拉菜单数据
for
(
int
i
=
0
;
i
<
textlist
.
length
;
i
++)
{
hideSheet
.
createRow
(
i
).
createCell
(
0
).
setCellValue
(
textlist
[
i
]);
}
// 创建名称,可被其他单元格引用
Name
name
=
wb
.
createName
();
name
.
setNameName
(
hideSheetName
+
"_data"
);
name
.
setRefersToFormula
(
hideSheetName
+
"!$A$1:$A$"
+
textlist
.
length
);
DataValidationHelper
helper
=
sheet
.
getDataValidationHelper
();
// 加载下拉列表内容
DataValidationConstraint
constraint
=
helper
.
createFormulaListConstraint
(
hideSheetName
+
"_data"
);
// 设置数据有效性加载在哪个单元格上,四个参数分别是:起始行、终止行、起始列、终止列
CellRangeAddressList
regions
=
new
CellRangeAddressList
(
firstRow
,
endRow
,
firstCol
,
endCol
);
// 数据有效性对象
DataValidation
dataValidation
=
helper
.
createValidation
(
constraint
,
regions
);
if
(
StringUtils
.
isNotEmpty
(
promptContent
))
{
// 如果设置了提示信息则鼠标放上去提示
dataValidation
.
createPromptBox
(
""
,
promptContent
);
dataValidation
.
setShowPromptBox
(
true
);
}
// 处理Excel兼容性问题
if
(
dataValidation
instanceof
XSSFDataValidation
)
{
dataValidation
.
setSuppressDropDownArrow
(
true
);
dataValidation
.
setShowErrorBox
(
true
);
}
else
{
dataValidation
.
setSuppressDropDownArrow
(
false
);
}
sheet
.
addValidationData
(
dataValidation
);
// 设置hiddenSheet隐藏
wb
.
setSheetHidden
(
wb
.
getSheetIndex
(
hideSheet
),
true
);
}
/**
* 解析导出值 0=男,1=女,2=未知
*
* @param propertyValue 参数值
* @param converterExp 翻译注解
* @param separator 分隔符
* @return 解析后值
*/
public
static
String
convertByExp
(
String
propertyValue
,
String
converterExp
,
String
separator
)
{
StringBuilder
propertyString
=
new
StringBuilder
();
String
[]
convertSource
=
converterExp
.
split
(
","
);
for
(
String
item
:
convertSource
)
{
String
[]
itemArray
=
item
.
split
(
"="
);
if
(
StringUtils
.
containsAny
(
propertyValue
,
separator
))
{
for
(
String
value
:
propertyValue
.
split
(
separator
))
{
if
(
itemArray
[
0
].
equals
(
value
))
{
propertyString
.
append
(
itemArray
[
1
]
+
separator
);
break
;
}
}
}
else
{
if
(
itemArray
[
0
].
equals
(
propertyValue
))
{
return
itemArray
[
1
];
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
/**
* 反向解析值 男=0,女=1,未知=2
*
* @param propertyValue 参数值
* @param converterExp 翻译注解
* @param separator 分隔符
* @return 解析后值
*/
public
static
String
reverseByExp
(
String
propertyValue
,
String
converterExp
,
String
separator
)
{
StringBuilder
propertyString
=
new
StringBuilder
();
String
[]
convertSource
=
converterExp
.
split
(
","
);
for
(
String
item
:
convertSource
)
{
String
[]
itemArray
=
item
.
split
(
"="
);
if
(
StringUtils
.
containsAny
(
propertyValue
,
separator
))
{
for
(
String
value
:
propertyValue
.
split
(
separator
))
{
if
(
itemArray
[
1
].
equals
(
value
))
{
propertyString
.
append
(
itemArray
[
0
]
+
separator
);
break
;
}
}
}
else
{
if
(
itemArray
[
1
].
equals
(
propertyValue
))
{
return
itemArray
[
0
];
}
}
}
return
StringUtils
.
stripEnd
(
propertyString
.
toString
(),
separator
);
}
/**
* 解析字典值
*
* @param dictValue 字典值
* @param dictType 字典类型
* @param separator 分隔符
* @return 字典标签
*/
public
static
String
convertDictByExp
(
String
dictValue
,
String
dictType
,
String
separator
)
{
return
DictUtils
.
getDictLabel
(
dictType
,
dictValue
,
separator
);
}
/**
* 反向解析值字典值
*
* @param dictLabel 字典标签
* @param dictType 字典类型
* @param separator 分隔符
* @return 字典值
*/
public
static
String
reverseDictByExp
(
String
dictLabel
,
String
dictType
,
String
separator
)
{
return
DictUtils
.
getDictValue
(
dictType
,
dictLabel
,
separator
);
}
/**
* 数据处理器
*
* @param value 数据值
* @param excel 数据注解
* @return
*/
public
String
dataFormatHandlerAdapter
(
Object
value
,
Excel
excel
)
{
try
{
Object
instance
=
excel
.
handler
().
newInstance
();
Method
formatMethod
=
excel
.
handler
().
getMethod
(
"format"
,
new
Class
[]{
Object
.
class
,
String
[].
class
});
value
=
formatMethod
.
invoke
(
instance
,
value
,
excel
.
args
());
}
catch
(
Exception
e
)
{
log
.
error
(
"不能格式化数据 "
+
excel
.
handler
(),
e
.
getMessage
());
}
return
Convert
.
toStr
(
value
);
}
/**
* 合计统计信息
*/
private
void
addStatisticsData
(
Integer
index
,
String
text
,
Excel
entity
)
{
if
(
entity
!=
null
&&
entity
.
isStatistics
())
{
Double
temp
=
0
D
;
if
(!
statistics
.
containsKey
(
index
))
{
statistics
.
put
(
index
,
temp
);
}
try
{
temp
=
Double
.
valueOf
(
text
);
}
catch
(
NumberFormatException
e
)
{
}
statistics
.
put
(
index
,
statistics
.
get
(
index
)
+
temp
);
}
}
/**
* 创建统计行
*/
public
void
addStatisticsRow
()
{
if
(
statistics
.
size
()
>
0
)
{
Row
row
=
sheet
.
createRow
(
sheet
.
getLastRowNum
()
+
1
);
Set
<
Integer
>
keys
=
statistics
.
keySet
();
Cell
cell
=
row
.
createCell
(
0
);
cell
.
setCellStyle
(
styles
.
get
(
"total"
));
cell
.
setCellValue
(
"合计"
);
for
(
Integer
key
:
keys
)
{
cell
=
row
.
createCell
(
key
);
cell
.
setCellStyle
(
styles
.
get
(
"total"
));
cell
.
setCellValue
(
DOUBLE_FORMAT
.
format
(
statistics
.
get
(
key
)));
}
statistics
.
clear
();
}
}
/**
* 编码文件名
*/
public
String
encodingFilename
(
String
filename
)
{
filename
=
UUID
.
randomUUID
()
+
"_"
+
filename
+
".xlsx"
;
return
filename
;
}
/**
* 获取下载路径
*
* @param filename 文件名称
*/
public
String
getAbsoluteFile
(
String
filename
)
{
String
downloadPath
=
FileUploadUtils
.
getDefaultBaseDir
().
concat
(
"/download/"
).
concat
(
filename
);
File
desc
=
new
File
(
downloadPath
);
if
(!
desc
.
getParentFile
().
exists
())
{
desc
.
getParentFile
().
mkdirs
();
}
return
downloadPath
;
}
/**
* 获取bean中的属性值
*
* @param vo 实体对象
* @param field 字段
* @param excel 注解
* @return 最终的属性值
* @throws Exception
*/
private
Object
getTargetValue
(
T
vo
,
Field
field
,
Excel
excel
)
throws
Exception
{
Object
o
=
field
.
get
(
vo
);
if
(
StringUtils
.
isNotEmpty
(
excel
.
targetAttr
()))
{
String
target
=
excel
.
targetAttr
();
if
(
target
.
contains
(
"."
))
{
String
[]
targets
=
target
.
split
(
"[.]"
);
for
(
String
name
:
targets
)
{
o
=
getValue
(
o
,
name
);
}
}
else
{
o
=
getValue
(
o
,
target
);
}
}
return
o
;
}
/**
* 以类的属性的get方法方法形式获取值
*
* @param o
* @param name
* @return value
* @throws Exception
*/
private
Object
getValue
(
Object
o
,
String
name
)
throws
Exception
{
if
(!
ObjectUtils
.
isEmpty
(
o
)
&&
StringUtils
.
isNotEmpty
(
name
))
{
Class
<?>
clazz
=
o
.
getClass
();
Field
field
=
clazz
.
getDeclaredField
(
name
);
field
.
setAccessible
(
true
);
o
=
field
.
get
(
o
);
}
return
o
;
}
/**
* 得到所有定义字段
*/
private
void
createExcelField
()
{
this
.
fields
=
getFields
();
this
.
fields
=
this
.
fields
.
stream
().
sorted
(
Comparator
.
comparing
(
objects
->
((
Excel
)
objects
[
1
]).
sort
())).
collect
(
Collectors
.
toList
());
this
.
maxHeight
=
getRowHeight
();
}
/**
* 获取字段注解信息
*/
public
List
<
Object
[]>
getFields
()
{
List
<
Object
[]>
fields
=
new
ArrayList
<
Object
[]>();
List
<
Field
>
tempFields
=
new
ArrayList
<>();
tempFields
.
addAll
(
Arrays
.
asList
(
clazz
.
getSuperclass
().
getDeclaredFields
()));
tempFields
.
addAll
(
Arrays
.
asList
(
clazz
.
getDeclaredFields
()));
for
(
Field
field
:
tempFields
)
{
if
(!
ArrayUtils
.
contains
(
this
.
excludeFields
,
field
.
getName
()))
{
// 单注解
if
(
field
.
isAnnotationPresent
(
Excel
.
class
))
{
Excel
attr
=
field
.
getAnnotation
(
Excel
.
class
);
if
(
attr
!=
null
&&
(
attr
.
type
()
==
Excel
.
Type
.
ALL
||
attr
.
type
()
==
type
))
{
field
.
setAccessible
(
true
);
fields
.
add
(
new
Object
[]{
field
,
attr
});
}
if
(
Collection
.
class
.
isAssignableFrom
(
field
.
getType
()))
{
subMethod
=
getSubMethod
(
field
.
getName
(),
clazz
);
ParameterizedType
pt
=
(
ParameterizedType
)
field
.
getGenericType
();
Class
<?>
subClass
=
(
Class
<?>)
pt
.
getActualTypeArguments
()[
0
];
this
.
subFields
=
FieldUtils
.
getFieldsListWithAnnotation
(
subClass
,
Excel
.
class
);
}
}
// // 多注解
// if (field.isAnnotationPresent(Excels.class)) {
// Excels attrs = field.getAnnotation(Excels.class);
// Excel[] excels = attrs.value();
// for (Excel attr : excels) {
// if (!ArrayUtils.contains(this.excludeFields, field.getName() + "." + attr.targetAttr())
// && (attr != null && (attr.type() == Excel.Type.ALL || attr.type() == type))) {
// field.setAccessible(true);
// fields.add(new Object[]{field, attr});
// }
// }
// }
}
}
return
fields
;
}
/**
* 根据注解获取最大行高
*/
public
short
getRowHeight
()
{
double
maxHeight
=
0
;
for
(
Object
[]
os
:
this
.
fields
)
{
Excel
excel
=
(
Excel
)
os
[
1
];
maxHeight
=
Math
.
max
(
maxHeight
,
excel
.
height
());
}
return
(
short
)
(
maxHeight
*
20
);
}
/**
* 创建一个工作簿
*/
public
void
createWorkbook
()
{
this
.
wb
=
new
SXSSFWorkbook
(
500
);
this
.
sheet
=
wb
.
createSheet
();
wb
.
setSheetName
(
0
,
sheetName
);
this
.
styles
=
createStyles
(
wb
);
}
/**
* 创建工作表
*
* @param sheetNo sheet数量
* @param index 序号
*/
public
void
createSheet
(
int
sheetNo
,
int
index
)
{
// 设置工作表的名称.
if
(
sheetNo
>
1
&&
index
>
0
)
{
this
.
sheet
=
wb
.
createSheet
();
this
.
createTitle
();
wb
.
setSheetName
(
index
,
sheetName
+
index
);
}
}
/**
* 获取单元格值
*
* @param row 获取的行
* @param column 获取单元格列号
* @return 单元格值
*/
public
Object
getCellValue
(
Row
row
,
int
column
)
{
if
(
row
==
null
)
{
return
row
;
}
Object
val
=
""
;
try
{
Cell
cell
=
row
.
getCell
(
column
);
if
(!
ObjectUtils
.
isEmpty
(
cell
))
{
if
(
cell
.
getCellType
()
==
CellType
.
NUMERIC
||
cell
.
getCellType
()
==
CellType
.
FORMULA
)
{
val
=
cell
.
getNumericCellValue
();
if
(
DateUtil
.
isCellDateFormatted
(
cell
))
{
val
=
DateUtil
.
getJavaDate
((
Double
)
val
);
// POI Excel 日期格式转换
}
else
{
if
((
Double
)
val
%
1
!=
0
)
{
val
=
new
BigDecimal
(
val
.
toString
());
}
else
{
val
=
new
DecimalFormat
(
"0"
).
format
(
val
);
}
}
}
else
if
(
cell
.
getCellType
()
==
CellType
.
STRING
)
{
val
=
cell
.
getStringCellValue
();
}
else
if
(
cell
.
getCellType
()
==
CellType
.
BOOLEAN
)
{
val
=
cell
.
getBooleanCellValue
();
}
else
if
(
cell
.
getCellType
()
==
CellType
.
ERROR
)
{
val
=
cell
.
getErrorCellValue
();
}
}
}
catch
(
Exception
e
)
{
return
val
;
}
return
val
;
}
/**
* 判断是否是空行
*
* @param row 判断的行
* @return
*/
private
boolean
isRowEmpty
(
Row
row
)
{
if
(
row
==
null
)
{
return
true
;
}
for
(
int
i
=
row
.
getFirstCellNum
();
i
<
row
.
getLastCellNum
();
i
++)
{
Cell
cell
=
row
.
getCell
(
i
);
if
(
cell
!=
null
&&
cell
.
getCellType
()
!=
CellType
.
BLANK
)
{
return
false
;
}
}
return
true
;
}
/**
* 获取Excel2003图片
*
* @param sheet 当前sheet对象
* @param workbook 工作簿对象
* @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
*/
public
static
Map
<
String
,
PictureData
>
getSheetPictures03
(
HSSFSheet
sheet
,
HSSFWorkbook
workbook
)
{
Map
<
String
,
PictureData
>
sheetIndexPicMap
=
new
HashMap
<
String
,
PictureData
>();
List
<
HSSFPictureData
>
pictures
=
workbook
.
getAllPictures
();
if
(!
pictures
.
isEmpty
())
{
for
(
HSSFShape
shape
:
sheet
.
getDrawingPatriarch
().
getChildren
())
{
HSSFClientAnchor
anchor
=
(
HSSFClientAnchor
)
shape
.
getAnchor
();
if
(
shape
instanceof
HSSFPicture
)
{
HSSFPicture
pic
=
(
HSSFPicture
)
shape
;
int
pictureIndex
=
pic
.
getPictureIndex
()
-
1
;
HSSFPictureData
picData
=
pictures
.
get
(
pictureIndex
);
String
picIndex
=
anchor
.
getRow1
()
+
"_"
+
anchor
.
getCol1
();
sheetIndexPicMap
.
put
(
picIndex
,
picData
);
}
}
return
sheetIndexPicMap
;
}
else
{
return
sheetIndexPicMap
;
}
}
/**
* 获取Excel2007图片
*
* @param sheet 当前sheet对象
* @param workbook 工作簿对象
* @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
*/
public
static
Map
<
String
,
PictureData
>
getSheetPictures07
(
XSSFSheet
sheet
,
XSSFWorkbook
workbook
)
{
Map
<
String
,
PictureData
>
sheetIndexPicMap
=
new
HashMap
<
String
,
PictureData
>();
for
(
POIXMLDocumentPart
dr
:
sheet
.
getRelations
())
{
if
(
dr
instanceof
XSSFDrawing
)
{
XSSFDrawing
drawing
=
(
XSSFDrawing
)
dr
;
List
<
XSSFShape
>
shapes
=
drawing
.
getShapes
();
for
(
XSSFShape
shape
:
shapes
)
{
if
(
shape
instanceof
XSSFPicture
)
{
XSSFPicture
pic
=
(
XSSFPicture
)
shape
;
XSSFClientAnchor
anchor
=
pic
.
getPreferredSize
();
CTMarker
ctMarker
=
anchor
.
getFrom
();
String
picIndex
=
ctMarker
.
getRow
()
+
"_"
+
ctMarker
.
getCol
();
sheetIndexPicMap
.
put
(
picIndex
,
pic
.
getPictureData
());
}
}
}
}
return
sheetIndexPicMap
;
}
/**
* 格式化不同类型的日期对象
*
* @param dateFormat 日期格式
* @param val 被格式化的日期对象
* @return 格式化后的日期字符
*/
public
String
parseDateToStr
(
String
dateFormat
,
Object
val
)
{
if
(
val
==
null
)
{
return
""
;
}
String
str
;
if
(
val
instanceof
Date
)
{
str
=
DateUtils
.
parseDateToStr
(
dateFormat
,
(
Date
)
val
);
}
else
if
(
val
instanceof
LocalDateTime
)
{
str
=
DateUtils
.
parseDateToStr
(
dateFormat
,
DateUtils
.
toDate
((
LocalDateTime
)
val
));
}
else
if
(
val
instanceof
LocalDate
)
{
str
=
DateUtils
.
parseDateToStr
(
dateFormat
,
DateUtils
.
toDate
((
LocalDate
)
val
));
}
else
{
str
=
val
.
toString
();
}
return
str
;
}
/**
* 是否有对象的子列表
*/
public
boolean
isSubList
()
{
return
!
ObjectUtils
.
isEmpty
(
subFields
)
&&
subFields
.
size
()
>
0
;
}
/**
* 是否有对象的子列表,集合不为空
*/
public
boolean
isSubListValue
(
T
vo
)
{
return
!
ObjectUtils
.
isEmpty
(
subFields
)
&&
subFields
.
size
()
>
0
&&
!
ObjectUtils
.
isEmpty
(
getListCellValue
(
vo
))
&&
getListCellValue
(
vo
).
size
()
>
0
;
}
/**
* 获取集合的值
*/
public
Collection
<?>
getListCellValue
(
Object
obj
)
{
Object
value
;
try
{
value
=
subMethod
.
invoke
(
obj
,
new
Object
[]{});
}
catch
(
Exception
e
)
{
return
new
ArrayList
<
Object
>();
}
return
(
Collection
<?>)
value
;
}
/**
* 获取对象的子列表方法
*
* @param name 名称
* @param pojoClass 类对象
* @return 子列表方法
*/
public
Method
getSubMethod
(
String
name
,
Class
<?>
pojoClass
)
{
StringBuffer
getMethodName
=
new
StringBuffer
(
"get"
);
getMethodName
.
append
(
name
.
substring
(
0
,
1
).
toUpperCase
());
getMethodName
.
append
(
name
.
substring
(
1
));
Method
method
=
null
;
try
{
method
=
pojoClass
.
getMethod
(
getMethodName
.
toString
(),
new
Class
[]{});
}
catch
(
Exception
e
)
{
log
.
error
(
"获取对象异常{}"
,
e
.
getMessage
());
}
return
method
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/controller/CompanySearchController.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
controller
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.jsk.domain.PageQueryLimit
;
import
com.dsk.jsk.domain.bo.ComposeQueryDto
;
import
com.dsk.jsk.service.BusinessOpportunityRadarService
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
/**
* 查企业
* @author Administrator
*
*/
@RequestMapping
(
"/enterprise"
)
@RestController
public
class
CompanySearchController
{
@Resource
BusinessOpportunityRadarService
opportunityRadarService
;
/*
* 模糊查询企业名称
*/
@PostMapping
(
"/index"
)
public
AjaxResult
landMarketPage
(
@RequestBody
ComposeQueryDto
dto
)
{
if
(
PageQueryLimit
.
pageLimit
(
dto
.
getPage
())){
return
AjaxResult
.
error
(
"翻页已达到上限"
);
}
return
opportunityRadarService
.
enterpriseIndex
(
dto
);
}
/*
* 完全匹配企业名称
*/
@GetMapping
(
"/findByName/{keyword}"
)
public
AjaxResult
findByName
(
@PathVariable
String
keyword
)
{
return
opportunityRadarService
.
enterpriseByName
(
keyword
);
}
/*
* 完全匹配企业名称
*/
@PostMapping
(
"/page"
)
public
AjaxResult
page
(
@RequestBody
ComposeQueryDto
dto
)
{
if
(
PageQueryLimit
.
pageLimit
(
dto
.
getPage
())){
return
AjaxResult
.
error
(
"翻页已达到上限"
);
}
return
opportunityRadarService
.
enterprisePage
(
dto
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/controller/JskCombineInfoController.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
controller
;
import
cn.dev33.satoken.annotation.SaCheckPermission
;
import
com.dsk.biz.utils.ExcelUtils
;
import
com.dsk.common.core.controller.BaseController
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.jsk.domain.JskCombineBidPageDto
;
import
com.dsk.jsk.domain.JskCombineCertificateDto
;
import
com.dsk.jsk.domain.JskCombineSearchDto
;
import
com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo
;
import
com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo
;
import
com.dsk.jsk.service.JskCombineInfoService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.Map
;
/**
* 集团户相关信息
*
* @author lcl
* @create 2023/8/7
*/
@Slf4j
@RestController
@RequestMapping
(
value
=
"/combine/info"
)
public
class
JskCombineInfoController
extends
BaseController
{
@Autowired
private
JskCombineInfoService
baseService
;
/**
* 集团成员列表
*/
@PostMapping
(
"/memberList"
)
public
TableDataInfo
memberList
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
memberList
(
dto
);
}
/**
* 分组成员数量
*/
@PostMapping
(
"/group/memberCount"
)
public
R
groupMemberCount
(
@RequestBody
JskCombineSearchDto
dto
)
{
return
baseService
.
groupMemberCount
(
dto
);
}
/**
* 集团业绩列表
*/
@PostMapping
(
"/businessList"
)
public
TableDataInfo
businessList
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
businessList
(
dto
);
}
/**
* 集团资质列表
*/
@PostMapping
(
"/certificateList"
)
public
TableDataInfo
certificateList
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
certificateList
(
dto
);
}
/**
* 集团成员资质列表
*/
@PostMapping
(
"/member/certificateList"
)
public
TableDataInfo
menberCertificateList
(
@RequestBody
JskCombineCertificateDto
dto
)
throws
Exception
{
return
baseService
.
menberCertificateList
(
dto
);
}
/**
* 集团资质分组统计
*/
@PostMapping
(
"/group/certificateCount"
)
public
R
groupCertificateCount
(
@RequestBody
JskCombineSearchDto
dto
)
throws
Exception
{
return
baseService
.
groupCertificateCount
(
dto
);
}
/**
* 集团户搜索
*/
@PostMapping
(
"/index"
)
public
AjaxResult
index
(
@RequestBody
Map
<
String
,
Object
>
object
)
{
return
baseService
.
index
(
object
);
}
/**
* 查央企
*/
@PostMapping
(
"/centralEnterprse"
)
public
AjaxResult
centralEnterprse
()
{
return
baseService
.
centralEnterprse
();
}
/**
* 查央企子公司
*/
@PostMapping
(
"/centralEnterprse/child"
)
public
AjaxResult
centralEnterprseChild
()
{
return
baseService
.
centralEnterprseChild
();
}
/**
* 查央企子公司 翻页
*/
@PostMapping
(
"/centralEnterprse/child/page"
)
public
AjaxResult
centralEnterprseChildPage
(
@RequestBody
Map
<
String
,
Object
>
object
)
{
return
baseService
.
centralEnterprseChildPage
(
object
);
}
/**
* 查地方国企
*/
@PostMapping
(
"/centralEnterprse/local"
)
public
AjaxResult
centralEnterprseLocal
(
@RequestBody
Map
<
String
,
Object
>
object
)
{
return
baseService
.
centralEnterprseLocal
(
object
);
}
/**
* 查地方国企 翻页
*/
@PostMapping
(
"/centralEnterprse/local/page"
)
public
AjaxResult
centralEnterprseLocalPage
(
@RequestBody
Map
<
String
,
Object
>
object
)
{
return
baseService
.
centralEnterprseLocalPage
(
object
);
}
/**
* 民营企业
*/
@PostMapping
(
"/centralEnterprse/social"
)
public
AjaxResult
centralEnterprseSocial
()
{
return
baseService
.
centralEnterprseSocial
();
}
/**
* 民营企业 翻页
*/
@PostMapping
(
"/centralEnterprse/social/page"
)
public
AjaxResult
centralEnterprseSocialPage
(
@RequestBody
Map
<
String
,
Object
>
object
)
{
return
baseService
.
centralEnterprseSocialPage
(
object
);
}
/**
* 导出中标业绩
*/
@PostMapping
(
"/export/win/bid"
)
@SaCheckPermission
(
"combine:info:export:win:bid"
)
public
void
exportWinBid
(
@RequestBody
JskCombineSearchDto
dto
,
HttpServletResponse
response
)
{
List
<
JskCombineWinBidProjectExportVo
>
list
=
baseService
.
exportWinBid
(
dto
);
ExcelUtils
<
JskCombineWinBidProjectExportVo
>
util
=
new
ExcelUtils
<>(
JskCombineWinBidProjectExportVo
.
class
);
util
.
exportExcel
(
response
,
list
,
"集团中标"
,
dto
.
getCombineName
().
concat
(
"中标业绩清单"
),
true
);
// String fileName = util.localInit(list, "集团中标", dto.getCombineName().concat("中标业绩清单"), true);
}
/**
* 导出招标业绩
*/
@PostMapping
(
"/export/bid"
)
@SaCheckPermission
(
"combine:info:export:bid"
)
public
void
exportBid
(
@RequestBody
JskCombineBidPageDto
dto
,
HttpServletResponse
response
)
{
List
<
JskCombineBidProjectExportVo
>
list
=
baseService
.
exportBid
(
dto
);
ExcelUtils
<
JskCombineBidProjectExportVo
>
util
=
new
ExcelUtils
<>(
JskCombineBidProjectExportVo
.
class
);
util
.
exportExcel
(
response
,
list
,
"集团招标"
,
dto
.
getCombineName
().
concat
(
"招标公告清单"
),
true
);
}
/**
* 集团招标分页列表
*/
@PostMapping
(
"/bidPage"
)
public
TableDataInfo
bidPage
(
@RequestBody
JskCombineBidPageDto
dto
)
throws
Exception
{
return
baseService
.
bidPage
(
dto
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/PageQueryLimit.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
;
import
com.dsk.jsk.domain.bo.Page
;
/**
* @author lc
* @date 2023/6/20 17:48
*/
public
class
PageQueryLimit
{
public
static
boolean
pageLimit
(
Page
page
){
if
(
null
==
page
)
{
return
true
;
}
if
(
null
==
page
.
getLimit
()||
null
==
page
.
getPage
()){
return
true
;
}
if
(
page
.
getPage
()*
page
.
getLimit
()>
10000
){
return
true
;
}
return
false
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/AchievementQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
AchievementQueryDto
{
/**
* 业绩所需参数
*/
// //中标面积
// Double tenderArea;
// //许可面积
// Double licenceArea;
// //竣工面积
// Double completionArea;
//招投标面积
Double
startTenderArea
;
Double
endTenderArea
;
//施工许可面积
Double
startLicenceArea
;
Double
endLicenceArea
;
//竣工验收面积
Double
startCheckArea
;
Double
endCheckArea
;
//竣工验收备案面积
Double
startCompletionArea
;
Double
endCompletionArea
;
//总面积
Double
startTotalArea
;
Double
endTotalArea
;
//面积体现节点
String
areaStr
;
//项目面积同时具备、任意均可 and/or
String
areaQueryType
;
//许可金额
Double
licenceMoney
;
//中标金额
Double
startTenderMoney
;
Double
endTenderMoney
;
//合同金额
Double
startContractMoney
;
Double
endContractMoney
;
//施工许可金额
Double
startLicenceMoney
;
Double
endLicenceMoney
;
//竣工验收实际造价
Double
startCompletionMoney
;
Double
endCompletionMoney
;
//竣工备案实际造价
Double
startCheckMoney
;
Double
endCheckMoney
;
//总投资
Double
startInvest
;
Double
endInvest
;
//项目金额同时具备、任意均可
String
moneyQueryType
;
//金额和面积同时具备、任意均可
String
moneyAndAreaQueryType
;
//业绩时间同时具备、任意均可
String
timeQueryType
;
String
eid
;
String
buildCorpName
;
String
personName
;
String
ename
;
// 项目来源 0=本地 1=四库一平台
Integer
source
;
Double
startMoney
;
Double
endMoney
;
//金额体现节点
String
moneyStr
;
// 关键词(包含)
List
<
KeywordDto
>
keywords
;
// 关键词(不包含)
String
keywordNot
;
// 关键词(不包含)查询类型 project项目名称 scale建设规模 projectOrScale项目名称或建设规模
String
keywordNotType
;
// 业绩类型
String
achievementType
;
//单项查询 关键词包含
String
singleKeywordIn
;
//单项查询 关键词不包含
String
singleKeywordOut
;
//单项查询 关键词包含体现节点
String
singleKeywordInNode
;
//单项查询 关键词不包含体现节点
String
singleKeywordOutNode
;
//是否截图体现公司和规模 yes no
Boolean
isSingleReflect
;
//建设性质
String
nature
;
// 项目属地
String
divisionStr
;
//项目所在城市
String
cityStr
;
String
province
;
Integer
provinceId
;
String
city
;
Integer
cityId
;
String
county
;
Integer
countyId
;
Double
startArea
;
Double
endArea
;
//项目类别
String
projectType
;
// 工程用途
String
purposeStr
;
// 中标开始时间
Date
startTenderTime
;
// 中标结束时间
Date
endTenderTime
;
// 实际竣工开始日期
Date
startCheckDate
;
// 实际竣工结束日期
Date
endCheckDate
;
//竣工备案时间未公示
String
hasCheckDate
;
//实际开工开始日期
Date
startWorkDate
;
//实际开工结束日期
Date
endWorkDate
;
//合同日期开始
Date
startContractDate
;
//合同日期结束
Date
endContractDate
;
//施工许可开始日期
Date
startLicenceDate
;
//施工许可结束日期
Date
endLicenceDate
;
//施工图审开始日期
Date
startCensorDate
;
//施工图审结束日期
Date
endCensorDate
;
//竣工验收开始日期
Date
startCheckCheckDate
;
//竣工验收结束日期
Date
endCheckCheckDate
;
//竣工验收时间未公示
String
hasCheckCheckDate
;
// 业绩属性
String
attributeStr
;
// 业绩属性
String
attributeQueryType
;
// 项目经理
String
pmStr
;
// 项目经理同时具备、任意均可
String
pmQueryType
;
// 结构体系
String
structure
;
// 数据等级
String
dataLevel
;
//招投标数据等级
String
tenderDataLevel
;
//合同登记
String
contractDataLevel
;
//施工许可
String
licenceDataLevel
;
//竣工验收备案
String
completionDataLevel
;
//项目主体
String
projectDataLevel
;
//施工图审
String
censorDataLevel
;
//竣工验收
String
checkDataLevel
;
// 数据等级查询节点
String
dataLevelStr
;
// 数据等级查询方式 同时具备 任意均可
String
dataLevelQueryType
;
// 资金来源
String
fundSource
;
Double
startLength
;
Double
endLength
;
//施工许可
Double
startLicenceLength
;
Double
endLicenceLength
;
//竣工验收
Double
startCheckCompletionLength
;
Double
endCheckCompletionLength
;
//竣工验收备案
Double
startCompletionLength
;
Double
endCompletionLength
;
//长度体现节点
String
lengthNode
;
//长度筛选类型 or/and
String
lengthType
;
Double
startSpan
;
Double
endSpan
;
//施工许可
Double
startLicenceSpan
;
Double
endLicenceSpan
;
//竣工验收
Double
startCheckCompletionSpan
;
Double
endCheckCompletionSpan
;
//竣工验收备案
Double
startCompletionSpan
;
Double
endCompletionSpan
;
//跨度体现节点
String
spanNode
;
//跨度筛选类型 or/and
String
spanType
;
Integer
achievementCount
;
String
type
;
String
tenderWay
;
String
md5Company
;
// 企业业绩关键词
String
keyword
;
// 企业项目详情的中标开始时间 时间戳
Long
startTenderDetailTime
;
// 企业项目详情的中标结束时间 时间戳
Long
endTenderDetailTime
;
List
<
SkyProjectIndexDto
>
indexDtos
;
//指标筛选类型 or/and
String
indexQueryType
;
//指标体现节点
String
indexPoint
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/AptitudeDetailDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* @author liuchang
* @date 2020/7/24 13:47
*/
@Data
public
class
AptitudeDetailDto
{
Integer
categoryCode
;
Integer
typeCode
;
Integer
majorCode
;
String
levelCode
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/AptitudeDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author liuchang
* @date 2020/7/24 13:47
*/
@Data
public
class
AptitudeDto
{
//资质条件
String
nameStr
;
String
codeStr
;
//资质同时具备任意均可 and/or
String
queryType
;
//资质查询类型 qualification 按资质项 level 按等级
String
aptitudeType
;
//存放处理完后的资质条件
List
<
String
>
names
;
Integer
namesCount
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/AptitudeQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
import
java.util.List
;
@Getter
@Setter
public
class
AptitudeQueryDto
{
String
ename
;
String
resultEname
;
String
businessScopeQueryType
;
//资质查询范围 old 旧表 new 新表
String
aptitudeSource
;
//任意均可or 同时具备and 有且仅有only
String
aptitudeQueryType
;
List
<
AptitudeDto
>
aptitudeDtoList
;
//资质排除
String
outCodeStr
;
//资质排除类型 任意均可or 同时具备and
String
outQueryType
;
//行业code
String
industryCode
;
Double
registeredCapital
;
Double
leftRegisteredCapital
;
Double
rightRegisteredCapital
;
Double
leftActualCapi
;
Double
rightActualCapi
;
String
queryType
;
//三体系查询方式 同时具备、任意均可
String
systemQueryType
;
//体系类型
List
<
Integer
>
systemType
;
String
systemTypeStr
;
//参保人数 起
Integer
startInsuredNum
;
//参保人数 止
Integer
endInsuredNum
;
//是否有电话 0无 1有 2有手机号码 3有固定号码 4 有手机和固定号码
Integer
hasPhone
;
//是否高新技术企业 0否 1是
Integer
isHighTech
;
//税务登记 1:A级
Integer
taxLvl
;
String
taxYear
;
//企业类型
// 1 国有企业
// 2 集体企业
// 3 股份有限公司
// 4 有限责任公司
// 5 联营企业
// 6 港、澳、台商投资企业
// 7 私营企业
// 8 外商投资企业
// 9 个体工商户
// 10 股份制企业
// 11 事业单位
// 12 其他
String
companyType
;
//安许证到期日期参数
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startLiceValidityDate
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endLiceValidityDate
;
//资质编号
String
aptitudeCertNo
;
//安许证编号
String
liceCertNo
;
//资质到期日期参数
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startAptitudeValidityDate
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endAptitudeValidityDate
;
//成立日期
Date
startRegisteredDate
;
Date
endRegisteredDate
;
Integer
hasAptitude
;
Integer
hasLiceCert
;
Integer
no
;
Double
rate
;
String
isLocalC
;
String
isISO
;
String
isEMS
;
String
isOHSMS
;
String
certData
;
String
nameSimple
;
String
logoUrl
;
String
registeredDate
;
String
liceValidityDate
;
Integer
liceValidDay
;
String
url
;
String
registeredCapitalStr
;
String
id
;
String
companyId
;
Integer
jskEid
;
String
regionId
;
String
source
;
String
name
;
String
businessStatus
;
String
formerName
;
String
creditCode
;
String
legalPerson
;
String
registrationType
;
Double
actualCapi
;
String
domicile
;
String
domicileNum
;
String
domicileCity
;
String
domicileCounty
;
String
registerProvince
;
String
registerCity
;
String
registerCounty
;
Integer
isCountryCredit
;
String
businessAddress
;
String
businessScope
;
Integer
isLocal
;
String
attn
;
String
phone
;
String
other
;
String
regionInfo
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
rateTime
;
// 资质数
Integer
aptitudeCount
;
// 项目数
Integer
projectCount
;
// 人数
Integer
persionCount
;
//最新中标个数
Integer
recentlyCount
;
Integer
numPunish
;
Integer
badCreditChinaCount
;
Integer
zzZfcgsxCount
;
Integer
seriousIllegalCount
;
Integer
zzSxbzxCount
;
Integer
zzJdcgsxCount
;
Integer
zzRiskBidCount
;
// -------------注册地与备案地 重构版----------------
String
filePlaceCode
;
//备案地code
public
Integer
filePlaceType
;
//备案地类型 1 本省企业或外地备案 2 外地备案 3 本省企业
String
province
;
//注册地 省级code 多个逗号隔开
String
city
;
//注册地 市级code 多个逗号隔开
String
county
;
//注册地 区级code 多个逗号隔开
String
regionWeb
;
//企业备案网站
String
tagCode
;
//企业标签
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/AwardDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author 刘昌
* @date 2020/9/4 9:08
*/
@Data
public
class
AwardDto
{
String
id
;
//建安宝企业id
String
eid
;
//奖项类型(建安标品汇)
String
type
;
//建设库公司id
Integer
companyId
;
//公司名称
String
ename
;
//奖项名称
String
name
;
String
staffName
;
//企业角色
String
companyRole
;
//项目名称
String
projectName
;
//项目类型
String
projectType
;
//验收等级
String
grade
;
String
gradeStr
;
//颁发机构 JSON数组
String
organization
;
//奖项级别
String
level
;
//奖项小类
String
sectionType
;
//行业类型
String
industryType
;
String
industryTypeStr
;
//省份
String
province
;
//省份ID
Integer
provinceId
;
//市
String
city
;
//城市ID
Integer
cityId
;
String
area
;
Integer
areaId
;
//格式化后的发布时间
Date
publishDate
;
//获奖年度
String
year
;
//获奖起始年度
Integer
yearBegin
;
//获奖截止年度
Integer
yearOver
;
//原文链接
String
href
;
//快照截图地址, 存相对路径
String
pathSnapshot
;
//符合荣誉条件的数量
Integer
awardNum
;
//省份列表
String
provinceStr
;
//市区列表
String
cityStr
;
//荣誉名称列表
String
nameStr
;
//颁发单位
String
organizationStr
;
//开始发布时间
String
startPublishDate
;
//结束时间
String
endPublishDate
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/AwardQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author 刘昌
* @date 2020/9/8 16:01
*/
@Data
public
class
AwardQueryDto
{
List
<
AwardDto
>
awardDtos
;
String
awardDtoType
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/BatchQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
//批量查询dto
@Data
public
class
BatchQueryDto
{
String
region
;
String
fileUrl
;
String
userId
;
String
exportExeclName
;
String
exportBackUrl
;
String
exportUniqueCode
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/BeijingQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 北京一体化查询参数
* @author Administrator
*
*/
@Data
public
class
BeijingQueryDto
{
String
id
;
String
achievementType
;
String
province
;
String
city
;
String
county
;
//中标金额
Double
startTenderMoney
;
Double
endTenderMoney
;
//合同金额
Double
startContractMoney
;
Double
endContractMoney
;
//金额查询类型 and/or 默认任意均可
String
moneyQueryType
;
// 中标开始时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startTenderDate
;
// 中标结束时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endTenderDate
;
// 合同开始时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startContractDate
;
// 合同结束时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endContractDate
;
//时间查询类型 and/or 默认任意均可
String
timeQueryType
;
//建设单位
String
buildCorpName
;
//中标单位
String
tenderCompany
;
//招标代理
String
agency
;
//单项查询 关键词包含
String
singleKeywordIn
;
//单项查询 关键词不包含
String
singleKeywordOut
;
//单项查询 关键词包含体现节点
String
singleKeywordInNode
;
//单项查询 关键词不包含体现节点
String
singleKeywordOutNode
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/BusinessInfoDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.Date
;
@Getter
@Setter
public
class
BusinessInfoDto
{
String
ename
;
String
resultEname
;
String
businessScopeQueryType
;
Double
registeredCapital
;
Double
leftRegisteredCapital
;
Double
rightRegisteredCapital
;
Double
leftActualCapi
;
Double
rightActualCapi
;
String
queryType
;
//参保人数 起
Integer
startInsuredNum
;
//参保人数 止
Integer
endInsuredNum
;
//是否有电话 0否 1是
Integer
hasPhone
;
//是否高新技术企业 0否 1是
Integer
isHighTech
;
//税务登记 1:A级
Integer
taxLvl
;
String
taxYear
;
//企业类型
// 1 国有企业
// 2 集体企业
// 3 股份有限公司
// 4 有限责任公司
// 5 联营企业
// 6 港、澳、台商投资企业
// 7 私营企业
// 8 外商投资企业
// 9 个体工商户
// 10 股份制企业
// 11 事业单位
// 12 其他
String
companyType
;
//成立日期
Date
startRegisteredDate
;
Date
endRegisteredDate
;
Integer
hasAptitude
;
Integer
hasLiceCert
;
Integer
no
;
Double
rate
;
String
isLocalC
;
String
isISO
;
String
isEMS
;
String
isOHSMS
;
String
certData
;
String
nameSimple
;
String
logoUrl
;
String
registeredDate
;
String
liceValidityDate
;
Integer
liceValidDay
;
String
url
;
String
registeredCapitalStr
;
String
id
;
String
companyId
;
Integer
jskEid
;
String
regionId
;
String
source
;
String
name
;
//中文经营状态(枚举:在业、清算、迁入、迁出、停业、撤销、吊销、注销、不详)
String
businessStatus
;
String
formerName
;
String
creditCode
;
String
legalPerson
;
String
registrationType
;
Double
actualCapi
;
String
domicile
;
String
domicileNum
;
String
domicileCity
;
String
domicileCounty
;
String
registerProvince
;
String
registerCity
;
String
registerCounty
;
Integer
isCountryCredit
;
String
businessAddress
;
String
businessScope
;
Integer
isLocal
;
String
attn
;
String
phone
;
String
other
;
String
regionInfo
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
rateTime
;
// 资质数
Integer
aptitudeCount
;
// 项目数
Integer
projectCount
;
// 人数
Integer
persionCount
;
//最新中标个数
Integer
recentlyCount
;
Integer
numPunish
;
Integer
badCreditChinaCount
;
Integer
zzZfcgsxCount
;
Integer
seriousIllegalCount
;
Integer
zzSxbzxCount
;
Integer
zzJdcgsxCount
;
Integer
zzRiskBidCount
;
// -------------注册地与备案地 重构版----------------
String
filePlaceCode
;
//备案地code
public
Integer
filePlaceType
;
//备案地类型 1 本省企业或外地备案 2 外地备案 3 本省企业
String
province
;
//注册地 省级code 多个逗号隔开
String
city
;
//注册地 市级code 多个逗号隔开
String
county
;
//注册地 区级code 多个逗号隔开
String
regionWeb
;
//企业备案网站
String
tagCode
;
//企业标签
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ComposePersonnelQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* 人员查询实体类
* @author Administrator
*
*/
@Data
public
class
ComposePersonnelQueryDto
{
// 人员姓名
String
personName
;
// 人员id
String
staffId
;
// 企业名称
String
ename
;
//yes有业绩 no没业绩
String
mance
;
//企业注册地
String
domicile
;
String
domicileNum
;
String
domicileCity
;
String
domicileCounty
;
//市
String
registerCity
;
//省份
String
registerProvince
;
//区
String
registerCounty
;
String
cardNumber
;
//证书and/or
String
registerQueryType
;
// 注册类型 只有一人多证and
List
<
RegisterTypeDto
>
registers
;
//人员荣誉
List
<
AwardQueryDto
>
awardQueryDtos
;
//人员荣誉同时具备任意均可
String
personAwardQueryType
;
//人员业绩同时具备任意均可
String
achievementQueryType
;
//四库业绩
List
<
AchievementQueryDto
>
achievementQueryDto
;
//四库业绩完整版
List
<
AchievementQueryDto
>
achievementFullQueryDto
;
//最新中标业绩
List
<
RecentlyBidQueryDto
>
recentlyBidQueryDto
;
//一体化项目业绩
List
<
YitihuaAchievementQueryDto
>
yitihuaAchievements
;
//一体化业绩精简版
List
<
YitihuaAchievementQueryDto
>
ythAchievements
;
//一体化业绩完整版
List
<
YitihuaAchievementQueryDto
>
ythFullAchievements
;
//全平台业绩
List
<
JabBasicEnterpriseProjectDto
>
basicAchievements
;
//江西中标业绩
List
<
JiangxiBidQueryDto
>
jiangxiBidQueryDto
;
//水利业绩
List
<
ShuiliAchievementQueryDto
>
shuiliAchievements
;
//人员业绩条件是否与企业业绩条件相同
Boolean
isSame
;
//人员业绩企业一致
Integer
achievementCount
;
//一体化来源
String
yitihuaSource
;
//资质到期日期参数
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startCertValidityDate
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endCertValidityDate
;
String
filePlaceCode
;
//备案地code
Integer
filePlaceType
;
//备案地类型 1 本省企业或外地备案 2 外地备案 3 本省企业
String
province
;
//注册地 省级code 多个逗号隔开
String
city
;
//注册地 市级code 多个逗号隔开
String
county
;
//注册地 区级code 多个逗号隔开
//是否有电话 0否 1是
Integer
hasPhone
;
//关键词
String
keyword
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ComposeQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.dsk.jsk.domain.BasePage
;
import
lombok.Data
;
import
java.util.List
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
ComposeQueryDto
extends
BasePage
{
String
region
;
String
keyword
;
String
keywordNot
;
Page
page
;
AptitudeQueryDto
aptitudeQueryDto
;
//工商信息
BusinessInfoDto
businessInfoDto
;
List
<
AchievementQueryDto
>
enterpriseAchievementQueryDto
;
//完整版四库业绩
List
<
AchievementQueryDto
>
enterpriseAchievementFullQueryDto
;
List
<
JiangxiBidQueryDto
>
jiangxiBidQueryDto
;
BeijingQueryDto
beijingQueryDto
;
List
<
RecentlyBidQueryDto
>
recentlyBidQueryDto
;
List
<
AwardQueryDto
>
awardQueryDtos
;
String
awardEname
;
//人员证书专查
PersonnelCertificateQueryDto
personnelCertificateQueryDto
;
PersonnelCertificateQueryDto
companyPersonnelCertQueryDto
;
//项目负责人 (施工/监理/设计/勘察)
ComposePersonnelQueryDto
composePersonnelQueryDto
;
//项目负责人 (施工)
ComposePersonnelQueryDto
composePersonnelQueryDtoV2
;
// PersonnelQueryDto personnelQueryDto;
JskBidQueryDto
jskBidQueryDto
;
//标讯pro 招标
JskBidNewsDto
jskBidNewsDto
;
//标讯pro 中标候选人
JskBidCandidateDto
jskBidCandidateDto
;
//中标公示
JskBidWinListDto
jskBidWinListDto
;
//专项债项目
SpecialBondProjectDto
specialBondProjectDto
;
//投标计划
JskBidPlanDto
jskBidPlanDto
;
String
achievementQueryType
;
String
awardQueryType
;
Boolean
isHighLightKeyword
;
String
eid
;
String
personId
;
String
md5Company
;
List
<
String
>
exportHeader
;
//符合条件的荣誉类别 0 1 2 3
String
awardType
;
String
badBehaviorEname
;
//不良行为
List
<
CreditBehaviorDto
>
badBehaviors
;
//信用评价
List
<
CreditEvaluateDto
>
creditEvaluates
;
//良好行为
GoodBehaviorDto
goodBehaviorDto
;
String
creditEvaluateType
;
//全平台业绩
List
<
JabBasicEnterpriseProjectDto
>
basicAchievements
;
//江西住建项目业绩
List
<
YitihuaAchievementQueryDto
>
yitihuaAchievements
;
//一体化业绩精简版
List
<
YitihuaAchievementQueryDto
>
ythAchievements
;
//一体化业绩完整版
List
<
YitihuaAchievementQueryDto
>
ythFullAchievements
;
//水利业绩
List
<
ShuiliAchievementQueryDto
>
shuiliAchievements
;
//土地招拍挂
LandMarketDto
landMarketDto
;
//拟建
EstablishmentDto
establishmentDto
;
EstablishmentDto
bidPro
;
String
yitihuaSource
;
String
exportSource
;
Integer
exportCount
;
String
exportExeclName
;
String
exportBackUrl
;
String
exportUniqueCode
;
String
orderSn
;
public
Page
getPage
()
{
if
(
page
==
null
)
{
page
=
new
Page
();
page
.
setPage
(
1
);
page
.
setLimit
(
10
);
}
return
page
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ComposeRegisterDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
ComposeRegisterDto
{
// 注册类型
List
<
RegisterTypeDto
>
registerTypes
;
// and/or
String
registerQueryType
;
// 注册人数
Integer
registerCount
;
// 个数类型 1 大于等于 2 等于 3小于等于
Integer
countType
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/CreditBehaviorDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author 刘昌
* @date 2020/9/4 9:08
*/
@Data
public
class
CreditBehaviorDto
{
String
category
;
String
type
;
String
subclass
;
String
org
;
String
dataSource
;
String
contentInfo
;
String
punishType
;
Date
startTime
;
String
behaviorTime
;
String
behaviorExportTime
;
Date
endTime
;
Integer
jskEid
;
String
ename
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/CreditEvaluateDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author 刘昌
* @date 2020/9/4 9:08
*/
@Data
public
class
CreditEvaluateDto
{
String
keyword
;
String
no
;
String
ename
;
String
province
;
String
city
;
String
dataSource
;
//企业类型
String
type
;
// 是否是及以上
Boolean
attrComp
;
//评价类型
String
attribute
;
//排名、评分
String
rankOrLevel
;
//等级
Integer
startYear
;
Integer
endYear
;
String
jskEid
;
String
publishTime
;
String
timeSpan
;
Date
startTime
;
Date
endTime
;
String
quarter
;
String
issuteTime
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/DateQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 时间筛选对象
*
* @author lcl
* @create 2021/9/6
*/
@Data
public
class
DateQueryDto
implements
Serializable
{
//类型
private
String
type
;
//筛选类型 and/or
private
String
queryType
;
//开始时间
private
Date
startDate
;
//结束时间
private
Date
endDate
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/Enterprise.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 企业
* @author Administrator
*
*/
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
Enterprise
{
String
id
;
String
companyId
;
Integer
jskEid
;
String
regionId
;
String
source
;
String
name
;
String
businessStatus
;
String
formerName
;
String
creditCode
;
String
legalPerson
;
String
registrationType
;
Double
registeredCapital
;
Double
actualCapi
;
String
registeredCapitalStr
;
String
domicile
;
String
domicileNum
;
String
domicileCity
;
String
registerProvince
;
String
registerCity
;
Integer
isCountryCredit
;
String
businessAddress
;
String
businessScope
;
Integer
isLocal
;
String
attn
;
String
phone
;
String
other
;
String
regionInfo
;
Double
rate
;
Date
rateTime
;
// 资质数
Integer
aptitudeCount
;
// 项目数
Integer
projectCount
;
// 人数
Integer
persionCount
;
//最新中标个数
Integer
recentlyCount
;
Integer
numPunish
;
Integer
badCreditChinaCount
;
Integer
zzZfcgsxCount
;
Integer
seriousIllegalCount
;
Integer
zzSxbzxCount
;
Integer
zzJdcgsxCount
;
Integer
zzRiskBidCount
;
// -------------注册地与备案地 重构版----------------
String
filePlaceCode
;
//备案地code
public
Integer
filePlaceType
;
//备案地类型 1 本省企业或外地备案 2 外地备案 3 本省企业
String
province
;
//注册地 省级code 多个逗号隔开
String
city
;
//注册地 市级code 多个逗号隔开
String
county
;
//注册地 区级code 多个逗号隔开
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/EnterpriseDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
EnterpriseDto
{
Integer
no
;
Double
rate
;
String
isLocalC
;
String
labels
;
String
isISO
;
String
isEMS
;
String
isOHSMS
;
String
certData
;
String
nameSimple
;
String
logoUrl
;
String
registeredDate
;
String
liceValidityDate
;
//安许证-证书生效时间
String
liceIssueDate
;
String
liceCertNo
;
Integer
liceValidDay
;
String
url
;
String
registeredCapitalStr
;
String
id
;
String
companyId
;
Integer
jskEid
;
String
regionId
;
String
source
;
String
name
;
String
businessStatus
;
String
formerName
;
String
creditCode
;
String
legalPerson
;
String
registrationType
;
Double
registeredCapital
;
Double
actualCapi
;
String
domicile
;
String
domicileNum
;
String
domicileCity
;
String
registerProvince
;
String
registerCity
;
Integer
isCountryCredit
;
String
businessAddress
;
String
businessScope
;
Integer
isLocal
;
String
attn
;
String
phone
;
String
companyType
;
String
other
;
String
regionInfo
;
Date
rateTime
;
// 资质数
Integer
aptitudeCount
;
Integer
aptitudeCountNew
;
// 项目数
Integer
projectCount
;
// 人数
Integer
persionCount
;
//最新中标个数
Integer
recentlyCount
;
Integer
skyCount
;
Integer
registeredPersonnelCount
;
Integer
jskBidCount
;
Integer
supplierCount
;
Integer
customerCount
;
Integer
threePersonnelCount
;
Integer
numPunish
;
Integer
badCreditChinaCount
;
Integer
zzZfcgsxCount
;
Integer
seriousIllegalCount
;
Integer
zzSxbzxCount
;
Integer
zzJdcgsxCount
;
Integer
zzRiskBidCount
;
// -------------注册地与备案地 重构版----------------
String
filePlaceCode
;
//备案地code
public
Integer
filePlaceType
;
//备案地类型 1 本省企业或外地备案 2 外地备案 3 本省企业
String
province
;
//注册地 省级code 多个逗号隔开
String
city
;
//注册地 市级code 多个逗号隔开
String
county
;
//注册地 区级code 多个逗号隔开
//企业备案地
List
<
String
>
regionList
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/Entity.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
java.io.*
;
/**
* <pre>
* <b>.</b>
* <b>Description:实体类基类</b>
*
* <b>Author:</b> vip@chennxu.com
* <b>Date:</b> 2016年9月3日 上午11:49:20
* <b>Copyright:</b> Copyright ©2006-2015 chennxu.com Co., Ltd. All rights reserved.
* <b>Changelog:</b>
* Ver Date Author Detail
* ----------------------------------------------------------------------
* 1.0 2016年9月3日 上午11:49:20 vip@chennxu.com new file.
* </pre>
*/
public
class
Entity
implements
Serializable
,
Cloneable
,
Comparable
<
Entity
>
{
/**
* 序列化版本标示
*/
private
static
final
long
serialVersionUID
=
1L
;
/**
* 深度克隆
*
* @return 克隆后得到的对象
* @throws IOException
* @throws ClassNotFoundException
*/
public
final
Object
deepClone
()
throws
IOException
,
ClassNotFoundException
{
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
ObjectOutputStream
oos
=
new
ObjectOutputStream
(
bos
);
oos
.
writeObject
(
this
);
ByteArrayInputStream
bis
=
new
ByteArrayInputStream
(
bos
.
toByteArray
());
return
new
ObjectInputStream
(
bis
).
readObject
();
}
@Override
protected
Object
clone
()
throws
CloneNotSupportedException
{
// TODO Auto-generated method stub
return
super
.
clone
();
}
public
int
compareTo
(
Entity
o
)
{
return
0
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/EstablishmentDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 项目立项数据(JskProjectEstablishment)实体类
*
* @author pig4cloud
* @since 2022-04-09 17:06:01
*/
@Data
public
class
EstablishmentDto
{
private
String
keyword
;
private
String
keywordNot
;
private
String
id
;
/**
* 项目名称
*/
private
String
projectName
;
/**
* 申请单位
*/
private
String
companyName
;
private
Integer
companyId
;
/**
* 立项阶段
*/
private
String
stage
;
/**
* 审批部门
*/
private
String
examineOffice
;
/**
* 项目类型
*/
private
String
projectType
;
/**
* 事项名称
*/
private
String
examineContent
;
/**
* 审批结果
*/
private
String
examineStatus
;
/**
* 审批文号
*/
private
String
licenseNum
;
/**
* 计划开工时间
*/
private
String
planStartTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
planStartTimeStart
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
planStartTimeEnd
;
/**
* 建成时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
String
planEndTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
planEndTimeStart
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
planEndTimeEnd
;
/**
* 审批文件链接
*/
private
String
licenseUrl
;
/**
* 复核通过时间
*/
private
String
reviewTime
;
/**
* 办结时间
*/
private
String
handleTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
handleTimeStart
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
handleTimeEnd
;
/**
* 项目代码
*/
private
String
projectCode
;
/**
* 国家代码
*/
private
String
countryCode
;
/**
* 省
*/
private
Integer
provinceId
;
/**
* 市
*/
private
Integer
cityId
;
/**
* 区
*/
private
Integer
districtId
;
private
String
domicile
;
/**
* 省
*/
private
String
province
;
/**
* 市
*/
private
String
city
;
/**
* 区
*/
private
String
district
;
/**
* 总投资
*/
private
Double
money
;
private
Double
startMoney
;
private
Double
endMoney
;
/**
* 资金来源
*/
private
String
sourceMoney
;
/**
* 项目所属行业
*/
private
String
industry
;
/**
* 建设性质
*/
private
String
buildNature
;
/**
* 建设地点
*/
private
String
buildAddre
;
/**
* 建设规模和内容
*/
private
String
buildScale
;
/**
* 来源网站名称
*/
private
String
sourceName
;
/**
* 详情页url
*/
private
String
sourceUrl
;
private
String
personTel
;
/**
* 是否为民介
*/
private
Integer
isProject
;
private
String
isProjectStr
;
private
String
approvalInfo
;
private
String
marketingInfo
;
/**
* 创建时间 设置为mysql自动创建
*/
private
Date
createTime
;
private
String
updateTime
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/GoodBehaviorDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author lc
* @date 2023/1/16 16:08
*/
@Data
public
class
GoodBehaviorDto
{
//三体系查询方式 同时具备、任意均可
String
systemQueryType
;
//体系类型
List
<
Integer
>
systemType
;
String
systemTypeStr
;
//A级纳税人
String
taxYear
;
String
taxYearQueryType
;
//是否高新技术企业 0否 1是
Integer
isHighTech
;
String
ename
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/HeaderDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* 头部查询参数
*
* @author lcl
* @create 2021/10/22
*/
@Data
public
class
HeaderDto
{
private
String
queryStr
;
private
String
sourceName
;
private
Page
page
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JabBasicEnterpriseProjectDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 全平台企业基本业绩信息(筛选条件)
*
* @author lcl
* @create 2021/9/6
*/
@Data
public
class
JabBasicEnterpriseProjectDto
implements
Serializable
{
//参建单位
private
String
ename
;
//建设单位
private
String
buildCorpName
;
//业绩来源 多个空格隔开
private
String
achievementSource
;
//业绩类型 多个空格隔开
private
String
achievementType
;
//项目金额 最小值
private
Double
projectMoney
;
private
Double
startMoney
;
private
Double
endMoney
;
//包含金额未公示 0:不包含 1:包含
private
Integer
isMoney
;
//时间条件
private
List
<
DateQueryDto
>
dateDtos
;
//时间查询类型 and/or 默认任意均可
private
String
timeQueryType
;
//关键词(包含) 单个空格隔开
private
List
<
KeywordDto
>
keywords
;
//关键词(不包含)
private
String
keywordNot
;
private
String
keywordNotType
;
//单项查询 关键词包含
String
singleKeywordIn
;
//单项查询 关键词不包含
String
singleKeywordOut
;
//单项查询 关键词包含体现节点
String
singleKeywordInNode
;
//单项查询 关键词不包含体现节点
String
singleKeywordOutNode
;
//是否截图体现公司和规模 yes no
Boolean
isSingleReflect
;
//省 多个空格隔开
private
String
divisionStr
;
//市 多个空格隔开
private
String
cityStr
;
//区 多个空格隔开
private
String
countyStr
;
String
province
;
Integer
provinceId
;
String
city
;
Integer
cityId
;
String
county
;
Integer
countyId
;
//业绩数量
private
Integer
achievementCount
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JiangxiBidQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
JiangxiBidQueryDto
{
//参建单位 施工单位
String
ename
;
//建设单位
String
buildCorpName
;
//中标金额
Double
startMoney
;
Double
endMoney
;
//包含金额未公示
String
hasMoney
;
// 中标开始时间
Date
startTenderTime
;
// 中标结束时间
Date
endTenderTime
;
//开工日期开始
Date
startWorkDate
;
//开工日期结束
Date
endWorkDate
;
//竣工日期开始
Date
startCheckDate
;
//竣工日期结束
Date
endCheckDate
;
// 实际竣工开始日期
Date
startCheckCheckDate
;
// 实际竣工结束日期
Date
endCheckCheckDate
;
//实际开工开始日期
Date
startCheckWorkDate
;
//实际开工结束日期
Date
endCheckWorkDate
;
//业绩时间同时具备、任意均可
String
timeQueryType
;
// 关键词(包含)
List
<
KeywordDto
>
keywords
;
// 关键词(不包含)
String
keywordNot
;
// 关键词(不包含)查询类型 project项目名称 scale建设规模 projectOrScale项目名称或建设规模
String
keywordNotType
;
//单项查询 关键词包含
String
singleKeywordIn
;
//单项查询 关键词不包含
String
singleKeywordOut
;
//单项查询 关键词体现节点
String
singleKeywordInNode
;
//单项查询 关键词体现节点
String
singleKeywordOutNode
;
// // 项目属地
// String divisionStr;
//项目所在城市
String
cityStr
;
//所在区
String
countyStr
;
// 业绩数量
Integer
achievementCount
;
String
city
;
String
county
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JskBidCandidateDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
JskBidCandidateDto
{
String
id
;
//省
String
province
;
//市
String
city
;
//区
String
county
;
//项目名称
String
projectName
;
//项目类型
String
projectType
;
// 发布开始时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startPubdate
;
// 发布结束时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endPubdate
;
//中标金额开始
Double
startProjectAmount
;
//中标金额结束
Double
endProjectAmount
;
//最高限价开始
Double
startMaxAmount
;
//最高限价结束
Double
endMaxAmount
;
//下浮率开始
Double
startLowerRate
;
//下浮率结束
Double
endLowerRate
;
//中标候选人
String
bidWinCompany
;
//中标候选人id
String
bidWinCompanyId
;
//招标人
String
tenderee
;
//代理机构
String
agency
;
//最高限价
String
maxAmount
;
//中标金额
String
projectAmount
;
//下浮率
String
lowerRate
;
//名次
String
rank
;
//发布时间
String
pubdate
;
String
tendereeId
;
String
tendereeTel
;
String
agencyId
;
String
agencyTel
;
List
<
Map
<
String
,
String
>>
mapList
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JskBidNewsDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
JskBidNewsDto
{
String
id
;
//省
String
province
;
//市
String
city
;
//区
String
county
;
//项目名称
String
projectName
;
//项目类型
String
projectType
;
//工程用途
String
projectPurposes
;
//工程用途
String
projectLevel
;
//评标办法
String
bidAssessmentWay
;
//评标委员会-有无业主代表,0为未知,1为无,2为有
String
bidMettingHasProjectUnit
;
//有无预付款,0为未知,1为无,2为有
String
hasAdvanceAmount
;
//保证金缴纳
String
projectEnsureAmountPayType
;
// 发布开始时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startPubdate
;
// 发布结束时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endPubdate
;
// 开标截至时间开始
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startEndTimeDate
;
// 开标截至时间结束
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endEndTimeDate
;
//项目金额开始
Double
startProjectAmount
;
//项目金额结束
Double
endProjectAmount
;
//项目投资额开始
Double
startProjectInvestmentAmount
;
//项目投资额结束
Double
endProjectInvestmentAmount
;
//合同估算价开始
Double
startProjectContractAmount
;
//合同估算价结束
Double
endProjectContractAmount
;
//建安费开始
Double
startProjectSafeAmount
;
//建安费结束
Double
endProjectSafeAmount
;
//勘察费开始
Double
startProjectSurveyAmount
;
//勘察费结束
Double
endProjectSurveyAmount
;
//设计费开始
Double
startProjectDesignAmount
;
//设计费结束
Double
endProjectDesignAmount
;
//投标保证金开始
Double
startProjectEnsureAmount
;
//投标保证金结束
Double
endProjectEnsureAmount
;
//资质要求
String
qualiLimit
;
//业绩要求
String
projectLimit
;
//人员要求
String
personLimit
;
//招标人
String
tenderee
;
//代理机构
String
agency
;
//时间
String
dateStr
;
//金额
String
moneyStr
;
String
tendereeId
;
String
tendereeTel
;
String
agencyId
;
String
agencyTel
;
String
eligibleEnterprisesUrl
;
String
pubdate
;
String
endTimeDate
;
String
projectAmount
;
//项目投资额
String
projectInvestmentAmount
;
//合同估算价
String
projectContractAmount
;
//建安费
String
projectSafeAmount
;
//综合单价
String
projectComprehensiveAmount
;
//勘察费
String
projectSurveyAmount
;
//设计费
String
projectDesignAmount
;
//投标保证金
String
projectEnsureAmount
;
//是否有文档
String
hasFile
;
//项目特点解析
String
projectCharacteristics
;
//市场分析及报价策略
String
marketAnalysis
;
//成本分析
String
costAnalysis
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JskBidPlanDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
JskBidPlanDto
{
String
id
;
String
uuid
;
String
title
;
String
projectName
;
String
projectNumber
;
//招标人
String
tenderee
;
String
tendereeId
;
String
projectScale
;
String
province
;
String
city
;
String
area
;
String
domicile
;
//标的物类型
String
objectType
;
//项目类型
String
projectType
;
//招标方式
String
tenderWay
;
//合同预估金额
Double
planTenderAmount
;
Double
startPlanTenderAmount
;
Double
endPlanTenderAmount
;
//资金来源
String
projectCapitalSource
;
//发布时间
String
issueTime
;
//发布时间开始
Date
startIssueTime
;
//发布时间结束
Date
endIssueTime
;
//计划发布开始时间
String
planTenderDateStart
;
//计划发布截止时间
String
planTenderDateEnd
;
//来源网站
String
sourceName
;
/**
* 修改时间
*/
String
updateTime
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JskBidQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
JskBidQueryDto
{
String
id
;
String
title
;
//查找范围
String
queryScope
;
//"询价", "比选", "邀请", "竞争性谈判", "竞争性磋商", "单一来源", "竞价", "直接发包", "公开招标",其他',
String
tenderingManner
;
//招标金额
Double
bidMoney
;
String
hasMoney
;
Double
startBidMoney
;
Double
endBidMoney
;
String
domicile
;
String
tenderStage
;
String
projectType
;
String
companyName
;
String
projectName
;
String
contentInfo
;
Integer
jskEid
;
String
tenderTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startTenderTime
;
// 发布结束时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endTenderTime
;
String
punishDate
;
// 发布开始时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startPunishDate
;
// 发布结束时间
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endPunishDate
;
//行业
String
industry
;
// 标的物类型:工程/货物/服务/其他
String
subjectMatter
;
//中标标金额
Double
startTenderMoney
;
Double
endTenderMoney
;
String
overTime
;
String
phonePoint
;
String
contact
;
String
contactTel
;
String
source
;
String
agency
;
Integer
agencyId
;
String
agencyContact
;
String
agencyContactTel
;
String
province
;
String
city
;
String
county
;
/**
* 修改时间
*/
private
String
updateTime
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JskBidWinListDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* 中标公示查询参数
* @author Administrator
*
*/
@Data
public
class
JskBidWinListDto
{
String
winListUuid
;
//招标单位
String
tenderee
;
//招标单位id
String
tendereeId
;
//省
String
province
;
String
provinceId
;
//市
String
city
;
String
cityId
;
//区
String
area
;
String
areaId
;
//中标项目编号
String
bidWinProjectNo
;
//项目名称
String
projectName
;
//项目id
String
projectId
;
//中标单位
String
bidWinCompany
;
//正文id
String
contentId
;
//下浮率
Double
downfloatRate
;
//其他来源
String
otherSource
;
//处理后的工期(天)
Integer
dealProjectDuration
;
//建造师名称
String
constructor
;
//建造师注册号
String
constructorNo
;
//处理后的中标金额(万元)
Double
dealBidWinAmount
;
//主来源网站名称
String
sourceName
;
//主来源详情页链接
String
url
;
//建设工程项目类型
String
buildingProjectType
;
//中标时间/发布时间
String
issueTime
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/JskDataScreenDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
@Data
public
class
JskDataScreenDto
{
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
Integer
provinceId
;
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
String
certType
;
public
String
subclass
;
public
String
certLevel
;
public
String
label
;
public
Integer
count
;
public
String
newProjectCount
;
public
String
toDayBidAmount
;
public
String
toDayBidCount
;
public
Page
page
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/KeywordDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
@Data
public
class
KeywordDto
{
// 关键词(包含)
private
String
keyword
;
// 关键词(包含)查询类型 project项目名称 scale建设规模 projectOrScale项目名称或建设规模
private
String
keywordType
;
//是否截图体现公司和规模 yes no
private
Boolean
isReflect
;
//体现节点
private
String
keywordStr
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/LandMarketDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
LandMarketDto
{
private
Integer
id
;
/**
* 关键词
*/
private
String
keyword
;
private
String
keywordNot
;
/**
* 项目名称
*/
private
String
projectName
;
/**
* 受让人
*/
private
String
companyName
;
/**
* 企业ID
*/
private
Integer
companyId
;
/**
* 出让面积
*/
private
Double
acreage
;
private
Double
startAcreage
;
private
Double
endAcreage
;
/**
* 加价幅度
*/
private
String
addMoneyRange
;
/**
* 招拍挂起始时间
*/
private
Date
auctionBeginTime
;
/**
* 招拍挂截止时间
*/
private
Date
auctionEndTime
;
/**
* 批准单位
*/
private
String
authority
;
/**
* 保证金
*/
private
Double
bondmoney
;
/**
* 建筑面积
*/
private
Double
buildArea
;
private
Double
startBuildArea
;
private
Double
endBuildArea
;
/**
* 建筑密度
*/
private
String
buildingDensity
;
/**
* 建筑限高
*/
private
String
buildingHeight
;
private
String
domicile
;
/**
* 省
*/
private
String
province
;
/**
* 省ID
*/
private
Integer
provinceId
;
/**
* 市
*/
private
String
city
;
/**
* 市ID
*/
private
Integer
cityId
;
/**
* 区
*/
private
String
area
;
/**
* 区ID
*/
private
Integer
areaId
;
/**
* 合同编号
*/
private
String
contractNum
;
/**
* 合同签订日期
*/
private
String
contractSignTime
;
/**
* 合同签订日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
contractSignTimeStart
;
/**
* 合同签订日期
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
contractSignTimeEnd
;
/**
* 约定开工时间
*/
private
Date
conventionBeginTime
;
/**
* 约定竣工时间
*/
private
Date
conventionEndTime
;
/**
* 约定交地时间
*/
private
Date
conventionLandTime
;
/**
* 约定容积率
*/
private
String
conventionVolumeRate
;
/**
* 结果详情url
*/
private
String
detailUrl
;
/**
* 电子监管号
*/
private
String
electronicNumber
;
private
String
gdgid
;
/**
* 绿化率
*/
private
String
greeningRate
;
/**
* 行业分类
*/
private
String
industry
;
/**
* 投资强度
*/
private
String
investmentIntensity
;
/**
* 报名起始时间
*/
private
Date
joinBeginTime
;
/**
* 报名截止时间
*/
private
Date
joinEndTime
;
/**
* 土地坐落
*/
private
String
landAddr
;
/**
* 土地级别
*/
private
String
landLevel
;
/**
* 地块名称
*/
private
String
landName
;
/**
* 地块公示url
*/
private
String
landNoticeUrl
;
/**
* 土地来源
*/
private
String
landSource
;
/**
* 土地用途
*/
private
String
landUse
;
/**
* 土地使用权人cid
*/
private
Integer
landUseCompanyId
;
/**
* 土地使用权人
*/
private
String
landUseCompany
;
/**
* 出让年限
*/
private
String
landUseYear
;
/**
* 起始价
*/
private
String
moneyBegin
;
/**
* 分期支付约定
*/
private
String
paymentAgreement
;
/**
* 实际开工时间
*/
private
Date
realBeginTime
;
/**
* 实际竣工时间
*/
private
Date
realEndTime
;
/**
* 出让公告url
*/
private
String
sellNoticeUrl
;
/**
* 供地方式/供应方式
*/
private
String
supplyLandWay
;
/**
* 成交价格
*/
private
Double
transactionPrice
;
/**
* 成交价格-起
*/
private
Double
startTransactionPrice
;
/**
* 成交价格-止
*/
private
Double
endTransactionPrice
;
/**
* 成交公示日期
*/
private
String
transactionPublicityTime
;
/**
* 容积率
*/
private
String
volumeRate
;
/**
* 约定容积率上限
*/
private
Double
volumeRateHigh
;
/**
* 约定容积率下限
*/
private
Double
volumeRateLow
;
/**
* 来源
*/
private
String
dataSource
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 修改时间
*/
private
String
updateTime
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicDataDetailsDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 区域经济大全-详情
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataDetailsDto
{
/**
* id
*/
@NotNull
(
message
=
"id 不能为空"
)
private
Integer
id
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicDataRegionalListDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataRegionalListDto
{
/**
* id
*/
@NotNull
(
message
=
"id 不能为空"
)
private
Integer
id
;
/**
* 省Id
*/
@NotNull
(
message
=
"provinceId 不能为空"
)
private
Integer
provinceId
;
/**
* 市Id
*/
private
Integer
cityId
;
/**
* 区Id
*/
private
Integer
areaId
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicDataStatisticsRegionalDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 地区经济
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataStatisticsRegionalDto
{
/**
* id
*/
@NotNull
(
message
=
"id 不能为空"
)
private
Integer
id
;
/**
* 年份
*/
private
Integer
year
;
/**
* 省Id
*/
private
Integer
provinceId
;
/**
* 市Id
*/
private
Integer
cityId
;
/**
* 区Id
*/
private
Integer
areaId
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicDataV1Dto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* @ClassName OpRegionalEconomicDataV1Dto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataV1Dto
{
/**
* id
*/
private
Integer
id
;
/**
* 年份
*/
private
Integer
year
;
/**
* 省Id
*/
private
Integer
provinceId
;
/**
* 市Id
*/
private
Integer
cityId
;
/**
* 区Id
*/
private
Integer
areaId
;
/**
* 城市类型 1:直辖市
*/
private
Integer
cityType
;
/**
* 城市类型 1:直辖市
*/
private
Integer
provinceType
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicDataV1PageDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.dsk.jsk.domain.BasePage
;
import
lombok.Data
;
import
java.util.List
;
/**
* @ClassName OpRegionalEconomicDataV1PageDto
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataV1PageDto
extends
BasePage
{
/**
* 年份
*/
private
Integer
year
;
/**
* 省
*/
private
List
<
Integer
>
provinceIds
;
/**
* 市
*/
private
List
<
Integer
>
cityIds
;
/**
* 区
*/
private
List
<
Integer
>
areaIds
;
/**
* 全国宏观经济:1 / 辖区经济:2 / 地区对比:3
*/
private
Integer
type
;
/**
* 排序字段 默认gdp
*/
private
String
field
=
"gdp"
;
/**
* 排序 (降序desc 升序asc)
*/
private
String
order
=
"desc"
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicDataYearsListDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* @ClassName OpRegionalEconomicDataYearsListDto
* @Description 获取年份
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalEconomicDataYearsListDto
{
private
Integer
year
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalEconomicRegionalCompareDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
cn.hutool.core.util.ObjectUtil
;
import
java.util.List
;
/**
* @ClassName OpRegionalEconomicRegionalCompareDto
* @Description 地区经济-对比
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
public
class
OpRegionalEconomicRegionalCompareDto
{
/**
* 年份
*/
private
Integer
year
;
private
List
<
OpRegionalEconomicDataStatisticsRegionalDto
>
compareList
;
public
Integer
getYear
()
{
return
year
;
}
public
void
setYear
(
Integer
year
)
{
this
.
year
=
year
;
}
public
List
<
OpRegionalEconomicDataStatisticsRegionalDto
>
getCompareList
()
{
if
(
ObjectUtil
.
isNotEmpty
(
compareList
))
{
for
(
OpRegionalEconomicDataStatisticsRegionalDto
dataStatisticsRegionalDto
:
compareList
)
{
dataStatisticsRegionalDto
.
setYear
(
year
);
}
}
return
compareList
;
}
public
void
setCompareList
(
List
<
OpRegionalEconomicDataStatisticsRegionalDto
>
compareList
)
{
this
.
compareList
=
compareList
;
}
@Override
public
String
toString
()
{
return
"OpRegionalEconomicRegionalCompareDto{"
+
"year="
+
year
+
", compareList="
+
compareList
+
'}'
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/OpRegionalLocalDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* @ClassName OpRegionalLocalDto
* @Description 获取当前地区
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
OpRegionalLocalDto
{
/**
* 省Id
*/
private
Integer
provinceId
;
/**
* 市Id
*/
private
Integer
cityId
;
/**
* 区 Id
*/
private
Integer
areaId
;
private
String
ip
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/Page.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
cn.hutool.core.bean.BeanException
;
import
lombok.AccessLevel
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.experimental.FieldDefaults
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@Getter
@Setter
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
Page
extends
Entity
{
public
Page
(){
}
public
Page
(
Integer
page
,
Integer
limit
)
{
this
.
page
=
page
;
this
.
limit
=
limit
;
}
public
Page
(
List
<
Map
<
String
,
Object
>>
list
,
Long
total
,
Integer
limit
,
Integer
page
){
this
.
list
=
list
;
this
.
total
=
total
;
this
.
page
=
page
;
this
.
limit
=
limit
;
}
/**
* 序列化版本标示
*/
private
static
final
long
serialVersionUID
=
1L
;
// 页码数
Integer
page
;
// 单页最大行数
Integer
limit
;
List
<?>
list
;
String
field
;
String
order
;
Long
total
=
0L
;
// @SuppressWarnings("rawtypes")
// private void validateOrderField(boolean isPage, Class cls) {
// if (isPage) {
// PageHelper.startPage(page == null ? 1 : page, limit == null ? 10: limit);
// }
// if (!StringUtils.isEmpty(order) && cls != null&&!StringUtils.isEmpty(field)) {
// String[] orders = this.order.split(",");
// String[] fieldArray = this.field.split(",");
// if (orders.length == fieldArray.length) {
// List<Field> fields = ReflectionUtils.getDeclaredField(cls);
// for (String sort : fieldArray) {
// boolean isExsit = false;
// for (Field field : fields) {
// if (field.getName().equals(sort)) {
// isExsit = true;
// break;
// }
// }
// if (!isExsit) {
// throw new BeanException("排序字段'{}'异常", sort);
// }
// }
// StringBuilder orderBy = new StringBuilder();
// for (int i = 0; i < fieldArray.length; i++) {
// if (i!=0) {
// orderBy.append(",");
// }
// orderBy.append(humpToLine(fieldArray[i])).append(orders[i].equalsIgnoreCase("desc")?" desc":" asc");
// }
// PageHelper.orderBy(orderBy.toString());
// }
// }
// }
// public void initPagingData(Class<?> cls){
// this.validateOrderField(true, cls);
// }
//
// public void initAllData(Class<?> cls){
// this.validateOrderField(false, cls);
// }
// public Page setResult(List<?> result){
// com.github.pagehelper.Page<?> page = (com.github.pagehelper.Page<?>) result;
// this.total = page.getTotal();
// this.list = page.getResult();
// return this;
// }
public
void
setData
(
List
<?>
data
)
{
this
.
list
=
data
;
}
public
static
String
humpToLine
(
String
str
)
{
return
str
.
replaceAll
(
"[A-Z]"
,
"_$0"
).
toLowerCase
();
}
public
List
<?>
getList
()
{
if
(
CollectionUtils
.
isEmpty
(
this
.
list
)){
this
.
list
=
new
ArrayList
<>();
}
return
list
;
}
@Override
public
String
toString
()
{
return
"com.md.common.entity.Page{"
+
"serialVersionUID="
+
serialVersionUID
+
", page="
+
page
+
", limit="
+
limit
+
", list="
+
list
+
", field='"
+
field
+
'\''
+
", order='"
+
order
+
'\''
+
", total="
+
total
+
'}'
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/Personnel.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
Personnel
{
String
id
;
String
eid
;
Integer
jskEid
;
String
md5Company
;
String
name
;
String
sex
;
String
cardType
;
String
cardNo
;
String
ename
;
String
phone
;
String
registerCount
;
String
blaCount
;
String
changeCount
;
String
manceCount
;
String
noHaviorCount
;
String
haviorCount
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/PersonnelCertificateQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
/**
* 人员查询实体类
* @author Administrator
*
*/
@Data
public
class
PersonnelCertificateQueryDto
{
// 注册类型
List
<
ComposeRegisterDto
>
registers
;
String
queryType
;
String
queryCategory
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/PersonnelExeclDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
PersonnelExeclDto
{
String
id
;
String
name
;
String
registerType
;
String
specialty
;
String
ename
;
String
cardNumber
;
Date
validDate
;
String
phone
;
String
pids
;
String
projectCount
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/PersonnelQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.List
;
/**
* 人员查询实体类
* @author Administrator
*
*/
@Data
public
class
PersonnelQueryDto
{
// 注册类型
List
<
RegisterTypeDto
>
registers
;
// 人员姓名
String
personName
;
// 项目名称
String
projectName
;
// 业绩
Double
startMoney
;
Double
endMoney
;
// 企业名称
String
ename
;
// comp有竣工 yes有业绩 no没业绩
String
mance
;
String
cardNumber
;
String
queryType
;
String
queryCategory
;
//企业注册地
String
domicile
;
String
domicileNum
;
String
domicileCity
;
String
registerProvince
;
String
registerCity
;
//人员唯一标识
String
md5Company
;
//人员id
String
staffId
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/RecentlyBidQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
RecentlyBidQueryDto
{
// 项目属地
String
divisionStr
;
Integer
companyProvinceId
;
// 项目属地
String
cityStr
;
String
province
;
Integer
provinceId
;
String
city
;
Integer
cityId
;
String
county
;
Integer
countyId
;
String
eid
;
String
ename
;
String
pname
;
String
buildCorpName
;
Double
startMoney
;
Double
endMoney
;
// 关键词(包含)
List
<
KeywordDto
>
keywords
;
// 关键词(不包含)
String
keywordNot
;
//单项查询 关键词包含
String
singleKeywordIn
;
//单项查询 关键词不包含
String
singleKeywordOut
;
// 中标开始时间
Date
startTenderTime
;
// 中标结束时间
Date
endTenderTime
;
Integer
achievementCount
;
String
projectName
;
String
tenderType
;
String
sourceName
;
String
projectType
;
String
projectTypeNew
;
String
hasMoney
;
Double
startLowerRate
;
Double
endLowerRate
;
String
hasLowerRate
;
//业绩列表类型 lowerRate 下浮率业绩
String
listType
;
//是否有电话 0否 1是
Integer
hasPhone
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ReflectionUtils.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
ReflectionUtils
{
/**
* 获取全部属性 (追溯到所有顶级类)但不包括常量
*
* @param object
* @return
*/
public
static
List
<
Field
>
getDeclaredField
(
Object
object
)
{
Class
<?>
clazz
=
object
.
getClass
();
return
getDeclaredField
(
clazz
);
}
public
static
List
<
Field
>
getDeclaredField
(
Class
<?>
clazz
)
{
List
<
Field
>
fields
=
new
ArrayList
<
Field
>();
for
(;
clazz
!=
Object
.
class
;
clazz
=
clazz
.
getSuperclass
())
{
for
(
Field
field
:
clazz
.
getDeclaredFields
())
{
switch
(
field
.
getModifiers
())
{
case
24
:
case
25
:
case
26
:
case
28
:
continue
;
default
:
fields
.
add
(
field
);
break
;
}
}
}
return
fields
;
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/RegisterTypeDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
@Data
public
class
RegisterTypeDto
{
//来源
String
personType
;
// 注册专业
String
registerSpecialty
;
// 类型名称
String
registerName
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ShuiliAchievementQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 水利业绩筛选实体
*
* @author lcl
* @create 2021/8/30
*/
@Data
public
class
ShuiliAchievementQueryDto
implements
Serializable
{
//参建单位
private
String
ename
;
//建设单位
private
String
buildCorpName
;
//项目负责人
private
String
projectPrincipal
;
//业绩类型 单个
private
String
achievementType
;
//工程类型
private
String
projectType
;
//项目状态
private
String
projectStatus
;
//工程等别
private
String
grade
;
//工程级别
private
String
level
;
//工程规模
private
String
projectScale
;
//省
private
String
divisionStr
;
//市
private
String
cityStr
;
private
String
province
;
//注册地 省级code 多个逗号隔开
private
String
city
;
//注册地 市级code 多个逗号隔开
private
String
county
;
//注册地 区级code 多个逗号隔开
//关键词(包含) 多个空格分隔
private
List
<
KeywordDto
>
keywords
;
//关键词(不包含) 多个空格分隔
private
String
keywordNot
;
private
String
keywordNotType
;
//单项查询 关键词包含
private
String
singleKeywordIn
;
//单项查询 关键词不包含
private
String
singleKeywordOut
;
//单项查询 关键词包含体现节点
private
String
singleKeywordInNode
;
//单项查询 关键词不包含体现节点
private
String
singleKeywordOutNode
;
//项目金额(最大)
private
Double
endMoney
;
//项目金额(最小)
private
Double
startMoney
;
//项目金额体现 多个空格分隔
private
String
moneyStr
;
//项目金额类型 and/or
private
String
moneyQueryType
;
//实际开工时间(开始)
private
Date
startTimeFactBegin
;
//实际开工时间(结束)
private
Date
startTimeFactEnd
;
//实际竣工时间(开始)
private
Date
overTimeFactBegin
;
//实际竣工时间(结束)
private
Date
overTimeFactEnd
;
//开工日期(开始)
private
Date
startTimeBegin
;
//开工日期(结束)
private
Date
startTimeEnd
;
//完工日期(开始)
private
Date
overTimeBegin
;
//完工日期(结束)
private
Date
overTimeEnd
;
//合同签订日期(开始)
private
Date
contractDateBegin
;
//合同签订日期(结束)
private
Date
contractDateEnd
;
//报告提交日期(开始)
private
Date
reportCommitDateBegin
;
//报告提交日期(结束)
private
Date
reportCommitDateEnd
;
//时间类型 and/or
private
String
timeQueryType
;
//截图体现节点
private
String
screenshotShowNode
;
//截图体现类型 and/or
private
String
screenshotShowType
;
//业绩数量
private
Integer
achievementCount
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/SkyProjectIndexDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
@Data
public
class
SkyProjectIndexDto
{
String
descriptionType
;
Double
indexData
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/SpecialBondInformationDetailsDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @ClassName SpecialBondInformationDetailsDto
* @Description 专项债-详情
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
SpecialBondInformationDetailsDto
{
/**
* 专项债券唯一标识
*/
@NotNull
(
message
=
"id 不能为空"
)
private
Integer
id
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/SpecialBondInformationPageDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.dsk.jsk.domain.BasePage
;
import
lombok.Data
;
/**
* @ClassName SpecialBondInformationPageDto
* @Description 专项债-详情分页
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
SpecialBondInformationPageDto
extends
BasePage
{
/**
* 专项债券唯一标识
*/
private
String
specialBondUuid
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/SpecialBondProjectDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* 组合查询参数
* @author Administrator
*
*/
@Data
public
class
SpecialBondProjectDto
{
Long
id
;
String
uuid
;
String
projectName
;
//match精确 like模糊
String
nameType
;
String
projectType
;
//项目总投资
String
projectTotalInvestment
;
//项目资本金
String
projectCapital
;
//专项债金额
String
specialCapital
;
//项目主体
String
projectEntity
;
//项目主体id
Long
projectEntityId
;
//主管部门
String
chargeDepartment
;
//实施单位
String
piu
;
Long
piuId
;
String
domicile
;
String
province
;
String
city
;
String
area
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/SpecialPurposeBondsDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
/**
* @ClassName SpecialPurposeBonds
* @Description 专项债-项目类别统计
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
SpecialPurposeBondsDto
{
/**
* 省Id
*/
private
Integer
provinceId
;
/**
* 市Id
*/
private
Integer
cityId
;
/**
* 区Id
*/
private
Integer
areaId
;
/**
* 项目类型
*/
private
String
specialBondProjectType
;
/**
* 项目个数
*/
private
Integer
count
;
/**
* 投资金额
*/
private
Double
projectTotalInvestment
;
/**
* 比例(%)
*/
private
Double
proportion
;
/**
* 排序字段
*/
private
String
field
;
/**
* 排序 (降序desc 升序asc)
*/
private
String
order
;
/**
* 是否为历史(1是,0否)
*/
private
Integer
isHistory
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/SpecialPurposeBondsPageDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.dsk.jsk.domain.BasePage
;
import
lombok.Data
;
/**
* @ClassName SpecialPurposeBonds
* @Description 专项债-项目分页列表
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
SpecialPurposeBondsPageDto
extends
BasePage
{
/**
* 省Id
*/
private
Integer
provinceId
;
/**
* 市Id
*/
private
Integer
cityId
;
/**
* 区Id
*/
private
Integer
areaId
;
/**
* 排序字段 默认-投资金额
*/
private
String
field
;
/**
* 排序 (降序desc 升序asc)
*/
private
String
order
;
/**
* 是否为历史(1是,0否)
*/
private
Integer
isHistory
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/UrbanInvestmentPlatformDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.dsk.jsk.domain.BasePage
;
import
lombok.Data
;
import
java.util.List
;
/**
* @ClassName UrbanInvestmentPlatformDto
* @Description 城投平台参数对象
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
UrbanInvestmentPlatformDto
extends
BasePage
{
/**
* 行政级别
*/
private
String
uipExecutiveLevel
;
/**
* 城投业务类型
*/
private
List
<
String
>
uipBusinessType
;
/**
* 主体评级
*/
private
List
<
String
>
bratingSubjectLevel
;
/**
* 股东背景
*/
private
List
<
String
>
shareholderBg
;
/**
* 股权关系
*/
private
List
<
String
>
equityRelationship
;
/**
* 平台重要性
*/
private
List
<
String
>
platformImportance
;
/**
* 所属开发区
*/
private
List
<
String
>
developmentZone
;
/**
* 省
*/
private
List
<
Integer
>
provinceIds
;
/**
* 市
*/
private
List
<
Integer
>
cityIds
;
/**
* 区
*/
private
List
<
Integer
>
areaIds
;
/**
* 关键词
*/
private
String
keyword
;
/**
* 排序字段
*/
private
String
field
;
/**
* 字段 desc asc
*/
private
String
order
;
/**
* 含下属区:1 本级:2
*/
private
Integer
type
=
1
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/UrbanInvestmentPlatformSubjectLevelDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.util.Objects
;
/**
* @ClassName UrbanInvestmentPlatformSubjectLevelDto
* @Description 信用评级
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public
class
UrbanInvestmentPlatformSubjectLevelDto
{
/**
* 企业Id
*/
private
Long
companyId
;
/**
* 主体评级
*/
private
String
bratingSubjectLevel
;
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
{
return
true
;
}
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
}
UrbanInvestmentPlatformSubjectLevelDto
that
=
(
UrbanInvestmentPlatformSubjectLevelDto
)
o
;
return
Objects
.
equals
(
companyId
,
that
.
companyId
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
companyId
);
}
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/YitihuaAchievementQueryDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* 江西住建筛选实体
*
* @author lcl
* @create 2021/8/30
*/
@Data
public
class
YitihuaAchievementQueryDto
implements
Serializable
{
//参建单位
private
String
ename
;
//建设单位
private
String
buildCorpName
;
//业绩类型 多个空格分隔
private
String
achievementType
;
//项目分类 多个空格分隔
private
String
projectType
;
//工程用途 多个空格分隔
private
String
purposeStr
;
//建设性质 多个空格分隔
private
String
nature
;
//招标方式 多个空格分隔
private
String
tenderWay
;
//关键词(包含) 多个空格分隔
private
List
<
KeywordDto
>
keywords
;
//关键词(不包含) 多个空格分隔
private
String
keywordNot
;
private
String
keywordNotType
;
//单项查询 关键词包含
String
singleKeywordIn
;
//单项查询 关键词不包含
String
singleKeywordOut
;
//单项查询 关键词包含体现节点
String
singleKeywordInNode
;
//单项查询 关键词不包含体现节点
String
singleKeywordOutNode
;
//是否截图体现公司和规模 yes no
Boolean
isSingleReflect
;
//项目节点
private
String
attributeStr
;
//项目节点类型 and/or
private
String
attributeQueryType
;
//项目金额(最大)
private
Double
endMoney
;
//项目金额(最小)
private
Double
startMoney
;
//项目金额体现 多个空格分隔
private
String
moneyStr
;
//中标金额
private
Double
startTenderMoney
;
private
Double
endTenderMoney
;
//合同金额
private
Double
startContractMoney
;
private
Double
endContractMoney
;
//施工许可金额
private
Double
startLicenceMoney
;
private
Double
endLicenceMoney
;
//竣工验收实际造价
private
Double
startCompletionMoney
;
private
Double
endCompletionMoney
;
//竣工备案实际造价
private
Double
startCheckMoney
;
private
Double
endCheckMoney
;
//总投资
private
Double
startInvest
;
private
Double
endInvest
;
//项目金额类型 and/or
private
String
moneyQueryType
;
//项目面积(最大)
private
Double
endArea
;
//项目面积(最小)
private
Double
startArea
;
//项目面积体现 多个空格分隔
private
String
areaStr
;
//招投标面积
private
Double
startTenderArea
;
private
Double
endTenderArea
;
//施工许可面积
private
Double
startLicenceArea
;
private
Double
endLicenceArea
;
//竣工验收面积
private
Double
startCheckArea
;
private
Double
endCheckArea
;
//竣工验收备案面积
private
Double
startCompletionArea
;
private
Double
endCompletionArea
;
//总面积
private
Double
startTotalArea
;
private
Double
endTotalArea
;
//项目面积类型 and/or
private
String
areaQueryType
;
//金额和面积类型 and/or
private
String
moneyAndAreaQueryType
;
//项目经理节点 多个空格分隔
private
String
pmStr
;
//项目经理类型 and/or
private
String
pmQueryType
;
//中标时间(开始-结束)
private
Date
startTenderTime
;
private
Date
endTenderTime
;
//合同签订时间(开始-结束)
private
Date
startContractDate
;
private
Date
endContractDate
;
//许可时间(开始-结束)
private
Date
startLicenceDate
;
private
Date
endLicenceDate
;
//备案开工时间(开始-结束)
private
Date
startWorkDate
;
private
Date
endWorkDate
;
//竣工备案时间(开始-结束)
private
Date
startCheckDate
;
private
Date
endCheckDate
;
//竣工备案时间未公示
private
String
hasCheckDate
;
//实际开工时间(开始-结束)
private
Date
startCheckWorkDate
;
private
Date
endCheckWorkDate
;
//竣工验收时间(开始-结束)
private
Date
startCheckCheckDate
;
private
Date
endCheckCheckDate
;
//竣工验收时间未公示
private
String
hasCheckCheckDate
;
//图审完成时间(开始-结束)
private
Date
startCensorDate
;
private
Date
endCensorDate
;
//时间类型 and/or
private
String
timeQueryType
;
//省
private
String
divisionStr
;
//市
private
String
cityStr
;
//区
private
String
countyStr
;
private
String
province
;
//注册地 省级code 多个逗号隔开
private
String
city
;
//注册地 市级code 多个逗号隔开
private
String
county
;
//注册地 区级code 多个逗号隔开
//业绩数量
private
Integer
achievementCount
;
// 数据等级
private
String
dataLevel
;
//招投标数据等级
private
String
tenderDataLevel
;
//合同登记
private
String
contractDataLevel
;
//施工许可
private
String
licenceDataLevel
;
//竣工验收备案
private
String
completionDataLevel
;
//项目主体
private
String
projectDataLevel
;
//施工图审
private
String
censorDataLevel
;
//竣工验收
private
String
checkDataLevel
;
// 数据等级查询节点
private
String
dataLevelStr
;
// 数据等级查询方式 同时具备 任意均可
private
String
dataLevelQueryType
;
// 结构体系
private
String
structure
;
//长度
private
Double
startLength
;
//长度
private
Double
endLength
;
//施工许可
private
Double
startLicenceLength
;
private
Double
endLicenceLength
;
//竣工验收
private
Double
startCheckCompletionLength
;
private
Double
endCheckCompletionLength
;
//竣工验收备案
private
Double
startCompletionLength
;
private
Double
endCompletionLength
;
//长度体现节点
private
String
lengthNode
;
//长度筛选类型 or/and
private
String
lengthType
;
//跨度
private
Double
startSpan
;
//跨度
private
Double
endSpan
;
//施工许可
private
Double
startLicenceSpan
;
private
Double
endLicenceSpan
;
//竣工验收
private
Double
startCheckCompletionSpan
;
private
Double
endCheckCompletionSpan
;
//竣工验收备案
private
Double
startCompletionSpan
;
private
Double
endCompletionSpan
;
//跨度体现节点
private
String
spanNode
;
//跨度筛选类型 or/and
private
String
spanType
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ZaiJianListDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
//在建导出参数接收
@Getter
@Setter
public
class
ZaiJianListDto
{
List
<
String
>
md5CompanyList
;
List
<
ZaiJianPersonnelDto
>
nullDataList
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/bo/ZaiJianPersonnelDto.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
bo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
ZaiJianPersonnelDto
extends
Personnel
{
Integer
no
;
String
id
;
String
registerType
;
String
cardNumber
;
String
sealNumber
;
Date
validDate
;
String
pid
;
String
eid
;
Integer
jskEid
;
String
specialty
;
String
ename
;
String
projectName
;
String
province
;
Long
tenderDate
;
//中标时间
String
tenderTime
;
Double
tenderMoney
;
Integer
period
;
String
registerInfo
;
String
otherRegisterInfo
;
//项目状态
String
status
;
//人员角色
String
personRole
;
//业绩来源
String
source
;
String
sourceName
;
//业绩来源类型 1四库一平台 2最新中标 3全国公路
String
sourceType
;
//信息快照
String
sourceUrl
;
//合同金额
Double
contractMoney
;
//许可金额
Double
licenceMoney
;
//实际造价(竣工金额)
Double
overMoney
;
//结算金额
Double
settlementMoney
;
//金额信息
String
totalMoney
;
//合同时间
String
contractDate
;
//许可时间
String
licenceDate
;
//计划竣工时间
String
planCompletionDate
;
//实际竣工时间
String
completionDate
;
//计划开工时间
String
planStartDate
;
//实际开工时间
String
startDate
;
//计划交工时间
String
planHandoverDate
;
//实际交工时间
String
handoverDate
;
//时间信息
String
totalDate
;
//业绩个数
Long
achievementCount
;
//各自系统的人员id
String
personId
;
//快照
String
snapshootPic
;
//人员id
String
staffId
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/vo/JskCombineBidProjectExportVo.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
vo
;
import
com.dsk.common.annotation.Excel
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 集团中标业绩
* @author lcl
* @create 2023/8/28
*/
@Data
public
class
JskCombineBidProjectExportVo
implements
Serializable
{
@Excel
(
name
=
"序号"
,
width
=
6
)
private
Integer
id
;
@Excel
(
name
=
"招标发布时间"
,
width
=
15
,
dateFormat
=
"yyyy/MM/dd"
)
private
Date
issueTime
;
@Excel
(
name
=
"招标成员"
,
width
=
30
)
private
String
tenderee
;
@Excel
(
name
=
"持股比例"
,
suffix
=
"%"
,
width
=
15
)
private
Double
stockPercent
;
@Excel
(
name
=
"成员等级"
,
width
=
15
)
private
String
memberLevel
;
@Excel
(
name
=
"项目名称"
,
width
=
50
)
private
String
projectName
;
@Excel
(
name
=
"预算金额"
,
suffix
=
"万元"
)
private
Double
bidAmount
;
@Excel
(
name
=
"项目地区"
,
width
=
20
)
private
String
address
;
@Excel
(
name
=
"招标采购分类"
,
width
=
15
)
private
String
subjectMatter
;
@Excel
(
name
=
"项目类型"
,
width
=
15
)
private
String
projectType
;
@Excel
(
name
=
"代理单位"
,
width
=
30
)
private
String
agency
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/domain/vo/JskCombineWinBidProjectExportVo.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
domain
.
vo
;
import
com.dsk.common.annotation.Excel
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 集团中标业绩
* @author lcl
* @create 2023/8/28
*/
@Data
public
class
JskCombineWinBidProjectExportVo
implements
Serializable
{
@Excel
(
name
=
"序号"
,
width
=
6
)
private
Integer
id
;
@Excel
(
name
=
"中标时间"
,
width
=
15
,
dateFormat
=
"yyyy/MM/dd"
)
private
Date
bidTime
;
@Excel
(
name
=
"成员名称"
,
width
=
30
)
private
String
companyName
;
@Excel
(
name
=
"持股比例"
,
suffix
=
"%"
,
width
=
15
)
private
Double
stockPercent
;
@Excel
(
name
=
"成员等级"
,
width
=
15
)
private
String
memberLevel
;
@Excel
(
name
=
"项目名称"
,
width
=
50
)
private
String
projectName
;
@Excel
(
name
=
"中标金额"
,
suffix
=
"万元"
)
private
Double
bidAmount
;
@Excel
(
name
=
"中标地区"
,
width
=
20
)
private
String
address
;
@Excel
(
name
=
"业绩类型"
,
width
=
15
)
private
String
boundType
;
@Excel
(
name
=
"项目类型"
,
width
=
15
)
private
String
projectType
;
@Excel
(
name
=
"业主单位"
,
width
=
30
)
private
String
projectUnit
;
}
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/service/BusinessOpportunityRadarService.java
View file @
fdc10cb4
...
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
...
@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONObject
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.jsk.domain.bo.ComposeQueryDto
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -51,13 +52,13 @@ public class BusinessOpportunityRadarService {
...
@@ -51,13 +52,13 @@ public class BusinessOpportunityRadarService {
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
}
public
AjaxResult
enterpriseIndex
(
JSONObject
object
)
{
public
AjaxResult
enterpriseIndex
(
ComposeQueryDto
dto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/index"
,
object
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/index"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
)
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
}
public
AjaxResult
enterprisePage
(
JSONObject
object
)
{
public
AjaxResult
enterprisePage
(
ComposeQueryDto
dto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/page"
,
object
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/page"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
)
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
}
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/service/EnterpriseService.java
View file @
fdc10cb4
...
@@ -385,7 +385,7 @@ public class EnterpriseService {
...
@@ -385,7 +385,7 @@ public class EnterpriseService {
}
}
public
R
remark
(
EnterpriseRemarkBody
vo
)
throws
Exception
{
public
R
remark
(
EnterpriseRemarkBody
vo
)
throws
Exception
{
return
R
.
ok
(
EncodeIdUtil
.
avDecode
(
EncodeIdUtil
.
binaryToUnicode
(
vo
.
mark
)));
return
R
.
ok
(
"操作成功"
,
EncodeIdUtil
.
avDecode
(
EncodeIdUtil
.
binaryToUnicode
(
vo
.
mark
)));
}
}
public
R
bondCreditRating
(
EnterpriseBondCreditRatingBody
body
)
throws
Exception
{
public
R
bondCreditRating
(
EnterpriseBondCreditRatingBody
body
)
throws
Exception
{
...
...
dsk-module/dsk-biz-api/src/main/java/com/dsk/jsk/service/JskCombineInfoService.java
0 → 100644
View file @
fdc10cb4
package
com
.
dsk
.
jsk
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.dsk.common.core.domain.AjaxResult
;
import
com.dsk.common.core.domain.R
;
import
com.dsk.common.core.page.TableDataInfo
;
import
com.dsk.common.exception.ServiceException
;
import
com.dsk.common.utils.DskOpenApiUtil
;
import
com.dsk.jsk.domain.JskCombineBidPageDto
;
import
com.dsk.jsk.domain.JskCombineCertificateDto
;
import
com.dsk.jsk.domain.JskCombineSearchDto
;
import
com.dsk.jsk.domain.vo.JskCombineBidProjectExportVo
;
import
com.dsk.jsk.domain.vo.JskCombineWinBidProjectExportVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.MapUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author lcl
* @create 2023/8/7
*/
@Slf4j
@Service
public
class
JskCombineInfoService
{
@Autowired
private
DskOpenApiUtil
dskOpenApiUtil
;
@Autowired
private
EnterpriseService
enterpriseService
;
public
TableDataInfo
memberList
(
JskCombineSearchDto
dto
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/memberList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
dskOpenApiUtil
.
responsePage
(
map
);
}
public
R
groupMemberCount
(
JskCombineSearchDto
dto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/group/memberCount"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
BeanUtil
.
toBean
(
map
,
R
.
class
);
}
public
TableDataInfo
businessList
(
JskCombineSearchDto
dto
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/project/combine/projectList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
if
(!
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
{
Map
<
String
,
Object
>
data
=
BeanUtil
.
beanToMap
(
map
.
get
(
"data"
));
if
(!
ObjectUtils
.
isEmpty
(
data
.
get
(
"list"
)))
{
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
data
.
get
(
"list"
);
list
.
parallelStream
().
forEach
(
res
->
{
Integer
companyId
=
MapUtils
.
getInteger
(
res
,
"companyId"
);
String
companyName
=
MapUtils
.
getString
(
res
,
"companyName"
);
res
.
put
(
"uipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
companyName
,
companyId
));
Integer
projectUnitId
=
MapUtils
.
getInteger
(
res
,
"projectUnitId"
);
String
projectUnit
=
MapUtils
.
getString
(
res
,
"projectUnit"
);
res
.
put
(
"projectUnitUipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
projectUnit
,
projectUnitId
));
});
}
}
return
dskOpenApiUtil
.
responsePage
(
map
);
}
public
TableDataInfo
certificateList
(
JskCombineSearchDto
dto
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/certificateList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
dskOpenApiUtil
.
responsePage
(
map
);
}
public
TableDataInfo
menberCertificateList
(
JskCombineCertificateDto
dto
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/member/certificateList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
dskOpenApiUtil
.
responsePage
(
map
);
}
public
R
groupCertificateCount
(
JskCombineSearchDto
dto
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/group/certificateCount"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
return
BeanUtil
.
toBean
(
map
,
R
.
class
);
}
public
AjaxResult
index
(
Map
<
String
,
Object
>
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/groupCompany"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprse
()
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse"
,
null
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprseChild
()
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse/child"
,
null
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprseChildPage
(
Map
<
String
,
Object
>
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse/child/page"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprseLocal
(
Map
<
String
,
Object
>
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse/local"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprseLocalPage
(
Map
<
String
,
Object
>
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse/local/page"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprseSocial
()
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse/social"
,
null
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
AjaxResult
centralEnterprseSocialPage
(
Map
<
String
,
Object
>
object
)
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/enterprice/centralEnterprse/social/page"
,
object
);
return
BeanUtil
.
toBean
(
map
,
AjaxResult
.
class
);
}
public
List
<
JskCombineWinBidProjectExportVo
>
exportWinBid
(
JskCombineSearchDto
dto
)
{
if
(
ObjectUtils
.
isEmpty
(
dto
.
getPageSize
()))
throw
new
ServiceException
(
"导出条数不能为空!"
);
if
(
dto
.
getPageSize
()
>
2000
)
dto
.
setPageSize
(
2000
);
dto
.
setPageNum
(
1
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/nationzj/project/combine/projectList"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
if
(
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
throw
new
ServiceException
(
"导出失败,系统错误!"
);
Map
<
String
,
Object
>
data
=
BeanUtil
.
beanToMap
(
map
.
get
(
"data"
));
if
(
ObjectUtils
.
isEmpty
(
data
.
get
(
"list"
)))
throw
new
ServiceException
(
"导出失败,系统错误!"
);
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
data
.
get
(
"list"
);
if
(
ObjectUtils
.
isEmpty
(
list
))
throw
new
ServiceException
(
"导出失败,无数据导出!"
);
List
<
JskCombineWinBidProjectExportVo
>
result
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
JskCombineWinBidProjectExportVo
vo
=
new
JskCombineWinBidProjectExportVo
();
vo
.
setId
(
i
+
1
);
vo
.
setBidTime
(
MapUtil
.
getDate
(
list
.
get
(
i
),
"bidTime"
));
vo
.
setCompanyName
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"companyName"
));
vo
.
setStockPercent
(
MapUtil
.
getDouble
(
list
.
get
(
i
),
"stockPercent"
));
vo
.
setMemberLevel
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"memberLevel"
));
vo
.
setProjectName
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"projectName"
));
vo
.
setBidAmount
(
MapUtil
.
getDouble
(
list
.
get
(
i
),
"bidAmount"
));
vo
.
setAddress
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"address"
));
vo
.
setBoundType
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"boundType"
));
vo
.
setProjectType
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"projectType"
));
vo
.
setProjectUnit
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"projectUnit"
));
result
.
add
(
vo
);
}
return
result
;
}
public
List
<
JskCombineBidProjectExportVo
>
exportBid
(
JskCombineBidPageDto
dto
)
{
if
(
ObjectUtils
.
isEmpty
(
dto
.
getPageSize
()))
throw
new
ServiceException
(
"导出条数不能为空!"
);
if
(
dto
.
getPageSize
()
>
2000
)
dto
.
setPageSize
(
2000
);
dto
.
setPageNum
(
1
);
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/bidPage"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
if
(
ObjectUtils
.
isEmpty
(
map
.
get
(
"data"
)))
throw
new
ServiceException
(
"导出失败,系统错误!"
);
Map
<
String
,
Object
>
data
=
BeanUtil
.
beanToMap
(
map
.
get
(
"data"
));
if
(
ObjectUtils
.
isEmpty
(
data
.
get
(
"list"
)))
throw
new
ServiceException
(
"导出失败,系统错误!"
);
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
data
.
get
(
"list"
);
if
(
ObjectUtils
.
isEmpty
(
list
))
throw
new
ServiceException
(
"导出失败,无数据导出!"
);
List
<
JskCombineBidProjectExportVo
>
result
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
JskCombineBidProjectExportVo
vo
=
new
JskCombineBidProjectExportVo
();
vo
.
setId
(
i
+
1
);
vo
.
setIssueTime
(
MapUtil
.
getDate
(
list
.
get
(
i
),
"issueTime"
));
vo
.
setTenderee
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"tenderee"
));
vo
.
setStockPercent
(
MapUtil
.
getDouble
(
list
.
get
(
i
),
"stockPercent"
));
vo
.
setMemberLevel
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"memberLevel"
));
vo
.
setProjectName
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"projectName"
));
vo
.
setBidAmount
(
MapUtil
.
getDouble
(
list
.
get
(
i
),
"bidAmount"
));
vo
.
setAddress
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"address"
));
vo
.
setSubjectMatter
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"subjectMatter"
));
vo
.
setProjectType
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"projectType"
));
vo
.
setAgency
(
MapUtil
.
getStr
(
list
.
get
(
i
),
"agency"
));
result
.
add
(
vo
);
}
return
result
;
}
public
TableDataInfo
bidPage
(
JskCombineBidPageDto
dto
)
throws
Exception
{
Map
<
String
,
Object
>
map
=
dskOpenApiUtil
.
requestBody
(
"/operate/combine/bidPage"
,
BeanUtil
.
beanToMap
(
dto
,
false
,
false
));
if
(
ObjectUtil
.
isNotEmpty
(
map
.
get
(
"data"
)))
{
Map
<
String
,
Object
>
data
=
BeanUtil
.
beanToMap
(
map
.
get
(
"data"
));
if
(!
ObjectUtils
.
isEmpty
(
data
.
get
(
"list"
)))
{
List
<
Map
<
String
,
Object
>>
list
=
(
List
<
Map
<
String
,
Object
>>)
data
.
get
(
"list"
);
list
.
parallelStream
().
forEach
(
res
->
{
//招标企业
Integer
tendereeId
=
MapUtils
.
getInteger
(
res
,
"tendereeId"
);
String
tenderee
=
MapUtils
.
getString
(
res
,
"tenderee"
);
// 代理机构名称
Integer
agencyId
=
MapUtils
.
getInteger
(
res
,
"agencyId"
);
String
agency
=
MapUtils
.
getString
(
res
,
"agency"
);
res
.
put
(
"tendereeUipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
tenderee
,
tendereeId
));
res
.
put
(
"agencyUipId"
,
enterpriseService
.
getUipIdByCompanyNameOrCompanyId
(
agency
,
agencyId
));
});
}
}
return
dskOpenApiUtil
.
responsePage
(
map
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment