Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
E
entity-to-db-doc
Project
Project
Details
Activity
Releases
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
zhangjunyong
entity-to-db-doc
Commits
26b592c4
Commit
26b592c4
authored
Apr 14, 2023
by
June
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
v2- 新增 food-match
parent
0eeb8f98
Changes
47
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
4591 additions
and
0 deletions
+4591
-0
pom.xml
pom.xml
+13
-0
RedisConstant.java
...iankangyouyi/cloud/food_match/constant/RedisConstant.java
+16
-0
DictEnum.java
...va/com/jiankangyouyi/cloud/food_match/enums/DictEnum.java
+33
-0
EnergyRangeEnum.java
...jiankangyouyi/cloud/food_match/enums/EnergyRangeEnum.java
+80
-0
FoodHealthProblemEnum.java
...ngyouyi/cloud/food_match/enums/FoodHealthProblemEnum.java
+198
-0
FoodNatureEnum.java
.../jiankangyouyi/cloud/food_match/enums/FoodNatureEnum.java
+52
-0
FoodQuantityLevelEnum.java
...ngyouyi/cloud/food_match/enums/FoodQuantityLevelEnum.java
+41
-0
FooodClsEnum.java
...om/jiankangyouyi/cloud/food_match/enums/FooodClsEnum.java
+57
-0
GenderRealEnum.java
.../jiankangyouyi/cloud/food_match/enums/GenderRealEnum.java
+34
-0
MealsEnergyRangeEnum.java
...angyouyi/cloud/food_match/enums/MealsEnergyRangeEnum.java
+72
-0
TotalEnergyRangeEnum.java
...angyouyi/cloud/food_match/enums/TotalEnergyRangeEnum.java
+79
-0
FoodMatchResultCollectTypeEnum.java
...food_match/enums/test/FoodMatchResultCollectTypeEnum.java
+318
-0
ChangeFoodStatusDTO.java
...youyi/cloud/food_match/model/dto/ChangeFoodStatusDTO.java
+9
-0
AbstractAuthHttpApiRequestDTO.java
...atch/model/dto/request/AbstractAuthHttpApiRequestDTO.java
+17
-0
AbstractHttpApiRequestDTO.java
...od_match/model/dto/request/AbstractHttpApiRequestDTO.java
+48
-0
IdReuqestDTO.java
...ouyi/cloud/food_match/model/dto/request/IdReuqestDTO.java
+14
-0
APIBatchMatchFoodRequestDTO.java
.../model/dto/request/match/APIBatchMatchFoodRequestDTO.java
+156
-0
APIFindFoodMatchResRequestDTO.java
...odel/dto/request/match/APIFindFoodMatchResRequestDTO.java
+49
-0
APIMatchFoodV2RequestDTO.java
...tch/model/dto/request/match/APIMatchFoodV2RequestDTO.java
+167
-0
APIReSaveFoodMatchResRequestDTOV2.java
.../dto/request/match/APIReSaveFoodMatchResRequestDTOV2.java
+72
-0
BatchMatchFoodRequestDTO.java
...tch/model/dto/request/match/BatchMatchFoodRequestDTO.java
+156
-0
ChangeFoodApiRequestDTO.java
...atch/model/dto/request/match/ChangeFoodApiRequestDTO.java
+175
-0
ChangeFoodSelfRequestV4DTO.java
...h/model/dto/request/match/ChangeFoodSelfRequestV4DTO.java
+21
-0
ChangeMealRequestApiDTO.java
...atch/model/dto/request/match/ChangeMealRequestApiDTO.java
+75
-0
DelMatchFoodRequestDTO.java
...match/model/dto/request/match/DelMatchFoodRequestDTO.java
+35
-0
MatchFoodV2RequestDTO.java
..._match/model/dto/request/match/MatchFoodV2RequestDTO.java
+126
-0
NutrientAnalysisRequestDTO.java
...h/model/dto/request/match/NutrientAnalysisRequestDTO.java
+36
-0
ReSaveFoodMatchResRequestDTO.java
...model/dto/request/match/ReSaveFoodMatchResRequestDTO.java
+44
-0
ReSaveFoodMatchResRequestDTOV2.java
...del/dto/request/match/ReSaveFoodMatchResRequestDTOV2.java
+64
-0
V3ChangeFoodRequestDTO.java
...match/model/dto/request/match/V3ChangeFoodRequestDTO.java
+57
-0
GetFoodNutrientInfoV2RequestDTO.java
...o/request/match/food/GetFoodNutrientInfoV2RequestDTO.java
+77
-0
MatchTestParam.java
...od_match/model/dto/request/match/test/MatchTestParam.java
+119
-0
MealFoodConditionRequestDTO.java
...h/model/dto/request/rule/MealFoodConditionRequestDTO.java
+78
-0
UserLastFoodMatchReqInfoResponseDTO.java
...o/response/match/UserLastFoodMatchReqInfoResponseDTO.java
+115
-0
BaseDataClassifyDO.java
...d/food_match/model/entity/mongodb/BaseDataClassifyDO.java
+103
-0
FoodMatchResDO.java
...cloud/food_match/model/entity/mongodb/FoodMatchResDO.java
+209
-0
FoodMatchResDefaultDO.java
...ood_match/model/entity/mongodb/FoodMatchResDefaultDO.java
+53
-0
FoodMatchRuleDOV3_7.java
.../food_match/model/entity/mongodb/FoodMatchRuleDOV3_7.java
+64
-0
FoodMatchRuleFoodDOV3_7.java
...d_match/model/entity/mongodb/FoodMatchRuleFoodDOV3_7.java
+41
-0
FoodMaterialDO.java
...cloud/food_match/model/entity/mongodb/FoodMaterialDO.java
+133
-0
FoodProcessDO.java
.../cloud/food_match/model/entity/mongodb/FoodProcessDO.java
+141
-0
FoodMatchLogCollect37.java
...atch/model/entity/mongodb/test/FoodMatchLogCollect37.java
+34
-0
ThirdPartyFoodMatchCondition.java
...del/third_party/request/ThirdPartyFoodMatchCondition.java
+117
-0
ThirdPartyChangeFoodResponseDTO.java
...third_party/response/ThirdPartyChangeFoodResponseDTO.java
+28
-0
FoodNutrientInfoCountVO.java
...yi/cloud/food_match/model/vo/FoodNutrientInfoCountVO.java
+945
-0
Starter.java
src/main/java/com/june/entitytodbdoc/Starter.java
+1
-0
DocumentInfoDTO.java
...main/java/com/june/entitytodbdoc/dto/DocumentInfoDTO.java
+19
-0
No files found.
pom.xml
View file @
26b592c4
...
...
@@ -41,6 +41,19 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.jiankangyouyi.cloud
</groupId>
<artifactId>
food-match-api
</artifactId>
<version>
2.2.2-TK-SNAPSHOT
</version>
<exclusions>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-log4j2
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
com.jiankangyouyi.cloud
</groupId>
<artifactId>
health-cloud-data-center-api
</artifactId>
...
...
src/main/java/com/jiankangyouyi/cloud/food_match/constant/RedisConstant.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
constant
;
/**
* @description: redis相关常量类
* @author: zyj
* @email: zhaoyujie@jiankangyouyi. com
* @date: 2021/5/27 3:06 下午
*/
public
interface
RedisConstant
{
/**
* 配餐锁 food_match:match:appId_userId_date
*/
String
FOOD_MATCH_LOCK
=
"food_match:match:%s_%s_%s"
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/DictEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
com.jiankangyouyi.cloud.core.constant.BaseEnum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @description:
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2022/1/13 10:42 上午
*/
@Getter
@AllArgsConstructor
public
enum
DictEnum
implements
BaseEnum
{
EXTEND_UNIT
(
"02"
,
"0208"
,
"食物库"
,
"扩展单位"
)
;
private
String
dictType
;
private
String
dictSubType
;
private
String
dictTypeShow
;
private
String
dictSubTypeShow
;
@Override
public
String
code
()
{
return
String
.
format
(
"%s_%s"
,
getDictType
(),
getDictSubType
());
}
@Override
public
String
message
()
{
return
String
.
format
(
"%s_%s"
,
getDictTypeShow
(),
getDictSubTypeShow
());
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/EnergyRangeEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.math.BigDecimal
;
/**
* @description:
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2022/1/18 3:57 下午
*/
@Getter
@AllArgsConstructor
public
enum
EnergyRangeEnum
{
/**碳水**/
ER_C_1
(
"ER_C_1"
,
"40-55"
,
BigDecimal
.
valueOf
(
0.4
),
BigDecimal
.
valueOf
(
0.55
)),
ER_C_2
(
"ER_C_2"
,
"45-65"
,
BigDecimal
.
valueOf
(
0.45
),
BigDecimal
.
valueOf
(
0.65
)),
ER_C_3
(
"ER_C_3"
,
"50-55"
,
BigDecimal
.
valueOf
(
0.5
),
BigDecimal
.
valueOf
(
0.55
)),
ER_C_4
(
"ER_C_4"
,
"50-60"
,
BigDecimal
.
valueOf
(
0.5
),
BigDecimal
.
valueOf
(
0.6
)),
ER_C_5
(
"ER_C_5"
,
"50-65"
,
BigDecimal
.
valueOf
(
0.5
),
BigDecimal
.
valueOf
(
0.65
)),
ER_C_6
(
"ER_C_6"
,
"55-65"
,
BigDecimal
.
valueOf
(
0.55
),
BigDecimal
.
valueOf
(
0.65
)),
ER_C_7
(
"ER_C_7"
,
"60-65"
,
BigDecimal
.
valueOf
(
0.6
),
BigDecimal
.
valueOf
(
0.65
)),
ER_C_8
(
"ER_C_7"
,
"60-70"
,
BigDecimal
.
valueOf
(
0.6
),
BigDecimal
.
valueOf
(
0.7
)),
/**蛋白质**/
ER_P_1
(
"ER_P_1"
,
"10-15"
,
BigDecimal
.
valueOf
(
0.1
),
BigDecimal
.
valueOf
(
0.15
)),
ER_P_2
(
"ER_P_2"
,
"10-13"
,
BigDecimal
.
valueOf
(
0.1
),
BigDecimal
.
valueOf
(
0.13
)),
ER_P_3
(
"ER_P_3"
,
"10-20"
,
BigDecimal
.
valueOf
(
0.1
),
BigDecimal
.
valueOf
(
0.2
)),
ER_P_4
(
"ER_P_4"
,
"13-15"
,
BigDecimal
.
valueOf
(
0.13
),
BigDecimal
.
valueOf
(
0.15
)),
ER_P_5
(
"ER_P_5"
,
"13-17"
,
BigDecimal
.
valueOf
(
0.13
),
BigDecimal
.
valueOf
(
0.17
)),
ER_P_6
(
"ER_P_6"
,
"15-20"
,
BigDecimal
.
valueOf
(
0.15
),
BigDecimal
.
valueOf
(
0.2
)),
ER_P_7
(
"ER_P_7"
,
"15-18"
,
BigDecimal
.
valueOf
(
0.15
),
BigDecimal
.
valueOf
(
0.18
)),
/**脂肪**/
ER_F_1
(
"ER_F_1"
,
"15-25"
,
BigDecimal
.
valueOf
(
0.15
),
BigDecimal
.
valueOf
(
0.25
)),
ER_F_2
(
"ER_F_2"
,
"20-25"
,
BigDecimal
.
valueOf
(
0.2
),
BigDecimal
.
valueOf
(
0.25
)),
ER_F_3
(
"ER_F_3"
,
"20-30"
,
BigDecimal
.
valueOf
(
0.2
),
BigDecimal
.
valueOf
(
0.3
)),
ER_F_4
(
"ER_F_4"
,
"20-35"
,
BigDecimal
.
valueOf
(
0.2
),
BigDecimal
.
valueOf
(
0.35
)),
;
private
String
code
;
private
String
name
;
private
BigDecimal
min
;
private
BigDecimal
max
;
public
static
EnergyRangeEnum
getEnumByCodeOrName
(
String
condition
)
{
EnergyRangeEnum
[]
values
=
values
();
if
(
condition
==
null
)
{
return
null
;
}
else
{
EnergyRangeEnum
result
=
null
;
for
(
EnergyRangeEnum
temp
:
values
){
if
(
temp
.
code
.
equals
(
condition
)
||
temp
.
name
.
equals
(
condition
)){
result
=
temp
;
break
;
}
}
return
result
;
}
}
public
static
EnergyRangeEnum
getEnumByEnergy
(
BigDecimal
min
,
BigDecimal
max
)
{
EnergyRangeEnum
[]
values
=
values
();
if
(
min
==
null
||
max
==
null
)
{
return
null
;
}
else
{
EnergyRangeEnum
result
=
null
;
for
(
EnergyRangeEnum
temp
:
values
){
if
(
temp
.
getMin
().
compareTo
(
min
)==
0
&&
temp
.
getMax
().
compareTo
(
max
)==
0
){
result
=
temp
;
break
;
}
}
return
result
;
}
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/FoodHealthProblemEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
lombok.Getter
;
@Getter
public
enum
FoodHealthProblemEnum
{
TYPE_2_DIABETES
(
"TYPE_2_DIABETES"
,
"2型糖尿病"
,
"4"
),
HYPERTENSION
(
"HYPERTENSION"
,
"高血压"
,
"12"
),
DYSLIPIDEMIA
(
"DYSLIPIDEMIA"
,
"血脂异常"
,
"8"
),
CORONARY_DISEASE
(
"CORONARY_DISEASE"
,
"冠心病"
,
"11"
),
OSTEOPOROSIS
(
"OSTEOPOROSIS"
,
"骨质疏松"
,
"7"
),
GOUT
(
"GOUT"
,
"痛风"
,
"5"
),
FATTY_LIVER
(
"FATTY_LIVER"
,
"脂肪肝"
,
"9"
),
STROKE
(
"STROKE"
,
"脑卒中"
,
"10"
),
GASTRIC_FUNCTION_DISORDER
(
"GASTRIC_FUNCTION_DISORDER"
,
"胃功能紊乱"
,
"6"
),
INTESTINAL_FUNCTION_DISORDER
(
"INTESTINAL_FUNCTION_DISORDER"
,
"肠道功能紊乱"
,
"3"
),
// HYPOIMMUNITY("HYPOIMMUNITY", "免疫力低下","16"),
OBESITY
(
"OBESITY"
,
"肥胖"
,
"13"
),
HYPERURICEMIA
(
"HYPERURICEMIA"
,
"高尿酸血症"
,
"22"
),
AD
(
"AD"
,
"阿尔兹海默症"
,
"28"
),
COPD
(
"COPD"
,
"慢阻肺"
,
"25"
),
ASCVD
(
"ASCVD"
,
"动脉粥样硬化性心血管病"
,
"23"
),
ICVD
(
"ICVD"
,
"缺血性心血管病"
,
"21"
),
INSOMNIA
(
"INSOMNIA"
,
"失眠"
,
"24"
),
HPYPERLIPIDEMIA
(
"HPYPERLIPIDEMIA"
,
"高血脂"
,
"8"
),
IIH
(
"IIH"
,
"甲亢"
,
"27"
),
TSH
(
"TSH"
,
"甲减"
,
"26"
),
// CFS("CFS","慢性疲劳综合征"),
// POSTPARTUM_WEIGHT("POSTPARTUM_WEIGHT", "产后体重管理"),
// FGID("FGID","功能性胃肠病","33-1"),
FGID
(
"FGID"
,
"功能性胃肠病"
,
"31"
),
IMMUNITY
(
"IMMUNITY"
,
"免疫力"
,
"16"
),
CFS
(
"CFS"
,
"慢性疲劳综合征"
,
"32"
),
// region 营养不良
/**
* 饱和脂肪酸过量
*/
SFA_OVER
(
"SFA_OVER"
,
"营养不良-饱和脂肪酸过量"
,
"15-2"
),
/**
* n-3脂肪酸缺乏
*/
N3_EFA_LACK
(
"N3_EFA_LACK"
,
"营养不良-n-3脂肪酸缺乏"
,
"15-3"
),
/**
* 反式脂肪酸过量
*/
TFA_OVER
(
"TFA_OVER"
,
"营养不良-反式脂肪酸过量"
,
"15-1"
),
/**
* 胆固醇过量
*/
TC_OVER
(
"TC_OVER"
,
"营养不良-胆固醇过量"
,
"15-4"
),
/**
* 膳食纤维缺乏
*/
DIETARY_FIBER_LACK
(
"DIETARY_FIBER_LACK"
,
"营养不良-膳食纤维缺乏"
,
"15-5"
),
/**
* 优质蛋白缺乏
*/
QUALITY_PROTEIN_LACK
(
"QUALITY_PROTEIN_LACK"
,
"营养不良-优质蛋白缺乏"
,
"15-6"
),
/**
* 维生素A缺乏
*/
VITAMIN_A_LACK
(
"VITAMIN_A_LACK"
,
"营养不良-维生素A缺乏"
,
"15-7"
),
/**
* 维生素D缺乏
*/
VITAMIN_D_LACK
(
"VITAMIN_D_LACK"
,
"营养不良-维生素D缺乏"
,
"15-8"
),
/**
* 维生素E缺乏
*/
VITAMIN_E_LACK
(
"VITAMIN_E_LACK"
,
"营养不良-维生素E缺乏"
,
"15-9"
),
/**
* 维生素k缺乏
*/
VITAMIN_K_LACK
(
"VITAMIN_K_LACK"
,
"营养不良-维生素k缺乏"
,
"15-10"
),
/**
* 维生素c缺乏
*/
VITAMIN_C_LACK
(
"VITAMIN_C_LACK"
,
"营养不良-维生素c缺乏"
,
"15-11"
),
/**
* 维生素B1缺乏
*/
VITAMIN_B1_LACK
(
"VITAMIN_B1_LACK"
,
"营养不良-维生素B1缺乏"
,
"15-12"
),
/**
* 维生素B2缺乏
*/
VITAMIN_B2_LACK
(
"VITAMIN_B2_LACK"
,
"营养不良-维生素B2缺乏"
,
"15-13"
),
/**
* 烟酸缺乏
*/
NICOTINIC_ACID_LACK
(
"NICOTINIC_ACID_LACK"
,
"营养不良-烟酸缺乏"
,
"15-14"
),
/**
* 维生素B6缺乏
*/
VITAMIN_B6_LACK
(
"VITAMIN_B6_LACK"
,
"营养不良-维生素B6缺乏"
,
"15-15"
),
/**
* 叶酸缺乏
*/
FOLIC_ACID_LACK
(
"FOLIC_ACID_LACK"
,
"营养不良-叶酸缺乏"
,
"15-16"
),
/**
* 维生素B12缺乏
*/
VITAMIN_B12_LACK
(
"VITAMIN_B12_LACK"
,
"营养不良-维生素B12缺乏"
,
"15-17"
),
/**
* 生物素缺乏
*/
VH_LACK
(
"VH_LACK"
,
"营养不良-生物素缺乏"
,
"15-18"
),
/**
* 钙缺乏
*/
CALCIUM_LACK
(
"CALCIUM_LACK"
,
"营养不良-钙缺乏"
,
"15-19"
),
/**
* 镁缺乏
*/
MAGNESIUM_LACK
(
"MAGNESIUM_LACK"
,
"营养不良-镁缺乏"
,
"15-20"
),
/**
* 钾缺乏
*/
POTASSIUM_LACK
(
"POTASSIUM_LACK"
,
"营养不良-钾缺乏"
,
"15-21"
),
/**
* 铁缺乏
*/
IRON_LACK
(
"IRON_LACK"
,
"营养不良-铁缺乏"
,
"15-22"
),
/**
* 碘缺乏
*/
IODINE_LACK
(
"IODINE_LACK"
,
"营养不良-碘缺乏"
,
"15-23"
),
/**
* 碘过量
*/
IODINE_OVER
(
"IODINE_OVER"
,
"营养不良-碘过量"
,
"15-24"
),
/**
* 锌缺乏
*/
ZINC_LACK
(
"ZINC_LACK"
,
"营养不良-锌缺乏"
,
"15-25"
),
/**
* 硒缺乏
*/
SELENIUM_LACK
(
"SELENIUM_LACK"
,
"营养不良-硒缺乏"
,
"15-26"
),
/**
* 铜缺乏
*/
CIGS_LACK
(
"CIGS_LACK"
,
"营养不良-铜缺乏"
,
"15-27"
),
/**
* 铬缺乏
*/
CHROMIUM_LACK
(
"CHROMIUM_LACK"
,
"营养不良-铬缺乏"
,
"15-28"
),
//endregion
//region 产后人群
POSTPARTUM_GTE_7
(
"POSTPARTUM_GTE_7"
,
"产后<=7天"
,
"33-1"
),
POSTPARTUM_LT_7_LACTATION
(
"POSTPARTUM_LT_7_LACTATION"
,
"产后>7天-哺乳期"
,
"33-2"
),
POSTPARTUM_LT_7_NOLACTATION
(
"POSTPARTUM_LT_7_NOLACTATION"
,
"产后>7天-非哺乳期"
,
"33-3"
),
//endregion,
CVD
(
"CVD"
,
"心血管疾病"
,
"34"
)
;
private
String
code
;
private
String
name
;
//转化为数据库code
private
String
dictCode
;
/**
* 根据code 查询
* @param code
* @return
*/
public
static
FoodHealthProblemEnum
getEnumByDictCode
(
String
code
)
{
FoodHealthProblemEnum
[]
values
=
values
();
if
(
code
==
null
)
{
return
null
;
}
else
{
FoodHealthProblemEnum
[]
var2
=
values
;
int
var3
=
values
.
length
;
for
(
int
var4
=
0
;
var4
<
var3
;
++
var4
)
{
FoodHealthProblemEnum
value
=
var2
[
var4
];
if
(
code
.
equals
(
value
.
getCode
()))
{
return
value
;
}
}
return
null
;
}
}
public
static
void
main
(
String
[]
args
)
{
getEnumByDictCode
(
"26"
);
}
private
FoodHealthProblemEnum
(
String
code
,
String
name
,
String
dictCode
)
{
this
.
code
=
code
;
this
.
name
=
name
;
this
.
dictCode
=
dictCode
;
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/FoodNatureEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
@Getter
@AllArgsConstructor
@NoArgsConstructor
public
enum
FoodNatureEnum
{
ONE_01
(
"01"
,
"干"
),
ONE_02
(
"02"
,
"湿"
),
ONE_03
(
"03"
,
"生"
),
ONE_04
(
"04"
,
"熟"
),
ONE_05
(
"05"
,
"素(主食)"
),
ONE_06
(
"06"
,
"荤(主食)"
),
ONE_07
(
"07"
,
"辛辣刺激"
),
ONE_08
(
"08"
,
"深色蔬菜"
),
ONE_09
(
"09"
,
"绿叶蔬菜"
),
ONE_10
(
"10"
,
"热"
),
ONE_11
(
"11"
,
"凉"
),
ONE_12
(
"12"
,
"水产品-鱼"
),
ONE_13
(
"13"
,
"水产品-贝"
),
ONE_14
(
"14"
,
"水产品-虾"
),
ONE_15
(
"15"
,
"水产品-蟹"
),
ONE_16
(
"16"
,
"海产品"
);
private
String
code
;
private
String
name
;
/**
* 根据code 查询
* @param name
* @return
*/
public
static
FoodNatureEnum
getEnumByDictName
(
String
name
)
{
FoodNatureEnum
[]
values
=
values
();
if
(
name
==
null
)
{
return
null
;
}
else
{
FoodNatureEnum
[]
var2
=
values
;
int
var3
=
values
.
length
;
for
(
int
var4
=
0
;
var4
<
var3
;
++
var4
)
{
FoodNatureEnum
value
=
var2
[
var4
];
if
(
name
.
equals
(
value
.
getName
()))
{
return
value
;
}
}
return
null
;
}
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/FoodQuantityLevelEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author : liuze
* @date: 2022/9/13 11:22
**/
@AllArgsConstructor
@Getter
public
enum
FoodQuantityLevelEnum
{
QUANTITY_LEVEL_LOW
(
"LOW"
,
"低"
,
0
,
1600
),
QUANTITY_LEVEL_MIDDLE
(
"MIDDLE"
,
"中"
,
1600
,
2600
),
QUANTITY_LEVEL_HIGH
(
"HIGH"
,
"高"
,
2600
,
Integer
.
MAX_VALUE
),
;
private
String
code
;
private
String
name
;
private
Integer
min
;
private
Integer
max
;
public
static
FoodQuantityLevelEnum
getEnumByCodeOrName
(
String
condition
)
{
FoodQuantityLevelEnum
[]
values
=
values
();
if
(
condition
==
null
)
{
return
null
;
}
else
{
FoodQuantityLevelEnum
result
=
null
;
for
(
FoodQuantityLevelEnum
temp
:
values
){
if
(
temp
.
code
.
equals
(
condition
)
||
temp
.
name
.
equals
(
condition
)){
result
=
temp
;
break
;
}
}
return
result
;
}
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/FooodClsEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
com.jiankangyouyi.cloud.core.constant.BaseEnum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @description:
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2022/1/18 3:57 下午
*/
@Getter
@AllArgsConstructor
public
enum
FooodClsEnum
implements
BaseEnum
{
/**
* 坚果、种子类
*/
NUT
(
"0115"
,
"坚果、种子类"
),
/**
* 乳类及制品
*/
MILK
(
"0113"
,
"乳类及制品"
),
/**
* 薯类
*/
POTATO
(
"022010"
,
"薯类"
),
/**
* 芋类
*/
TANIA
(
"022013"
,
"芋类"
),
/**
* 主食类
*/
STAPLE_FOOD
(
"0220"
,
"主食类"
),
/**
* 水果类及制品
*/
FRUIT
(
"0109"
,
"水果类及制品"
),
;
private
String
clsCode
;
private
String
clsName
;
@Override
public
String
code
()
{
return
getClsCode
();
}
@Override
public
String
message
()
{
return
getClsName
();
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/GenderRealEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
com.jiankangyouyi.cloud.core.constant.BaseEnum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @description: 性别枚举
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/11/12 4:31 下午
*/
@AllArgsConstructor
@Getter
public
enum
GenderRealEnum
implements
BaseEnum
{
MAN
(
"1"
,
"男"
),
WOMAN
(
"2"
,
"女"
),
;
private
String
code
;
private
String
name
;
@Override
public
String
code
()
{
return
this
.
getCode
();
}
@Override
public
String
message
()
{
return
this
.
getName
();
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/MealsEnergyRangeEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.math.BigDecimal
;
/**
* @description:
* @author: liuze
* @email: liuze@jiankangyouyi.com
* @date: 2022/1/18 3:57 下午
*/
@Getter
@AllArgsConstructor
public
enum
MealsEnergyRangeEnum
{
/**加餐**/
MER_1
(
"MER_1"
,
"3-5"
,
BigDecimal
.
valueOf
(
0.03
),
BigDecimal
.
valueOf
(
0.05
)),
MER_2
(
"MER_2"
,
"3-8"
,
BigDecimal
.
valueOf
(
0.03
),
BigDecimal
.
valueOf
(
0.08
)),
MER_3
(
"MER_3"
,
"5-10"
,
BigDecimal
.
valueOf
(
0.05
),
BigDecimal
.
valueOf
(
0.1
)),
MER_4
(
"MER_4"
,
"15-25"
,
BigDecimal
.
valueOf
(
0.15
),
BigDecimal
.
valueOf
(
0.25
)),
MER_5
(
"MER_5"
,
"20-30"
,
BigDecimal
.
valueOf
(
0.2
),
BigDecimal
.
valueOf
(
0.3
)),
MER_6
(
"MER_6"
,
"25-35"
,
BigDecimal
.
valueOf
(
0.25
),
BigDecimal
.
valueOf
(
0.35
)),
MER_7
(
"MER_7"
,
"28-38"
,
BigDecimal
.
valueOf
(
0.28
),
BigDecimal
.
valueOf
(
0.38
)),
MER_8
(
"MER_8"
,
"29-39"
,
BigDecimal
.
valueOf
(
0.29
),
BigDecimal
.
valueOf
(
0.39
)),
MER_9
(
"MER_9"
,
"30-37"
,
BigDecimal
.
valueOf
(
0.3
),
BigDecimal
.
valueOf
(
0.37
)),
MER_10
(
"MER_10"
,
"30-40"
,
BigDecimal
.
valueOf
(
0.3
),
BigDecimal
.
valueOf
(
0.4
)),
MER_11
(
"MER_11"
,
"35-45"
,
BigDecimal
.
valueOf
(
0.35
),
BigDecimal
.
valueOf
(
0.45
)),
;
private
String
code
;
private
String
name
;
private
BigDecimal
min
;
private
BigDecimal
max
;
public
static
MealsEnergyRangeEnum
getEnumByCodeOrName
(
String
condition
)
{
MealsEnergyRangeEnum
[]
values
=
values
();
if
(
condition
==
null
)
{
return
null
;
}
else
{
MealsEnergyRangeEnum
result
=
null
;
for
(
MealsEnergyRangeEnum
temp
:
values
){
if
(
temp
.
code
.
equals
(
condition
)
||
temp
.
name
.
equals
(
condition
)){
result
=
temp
;
break
;
}
}
return
result
;
}
}
public
static
MealsEnergyRangeEnum
getEnumByEnergy
(
BigDecimal
min
,
BigDecimal
max
)
{
MealsEnergyRangeEnum
[]
values
=
values
();
if
(
min
==
null
||
max
==
null
)
{
return
null
;
}
else
{
MealsEnergyRangeEnum
result
=
null
;
for
(
MealsEnergyRangeEnum
temp
:
values
){
if
(
temp
.
getMin
().
compareTo
(
min
)==
0
&&
temp
.
getMax
().
compareTo
(
max
)==
0
){
result
=
temp
;
break
;
}
}
return
result
;
}
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/TotalEnergyRangeEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.math.BigDecimal
;
/**
* @description:
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2022/1/18 3:57 下午
*/
@Getter
@AllArgsConstructor
public
enum
TotalEnergyRangeEnum
{
TER_1
(
"TER_1"
,
"1200-1300"
,
BigDecimal
.
valueOf
(
1200
),
BigDecimal
.
valueOf
(
1300
)),
TER_2
(
"TER_2"
,
"1300-1400"
,
BigDecimal
.
valueOf
(
1300
),
BigDecimal
.
valueOf
(
1400
)),
TER_3
(
"TER_3"
,
"1400-1500"
,
BigDecimal
.
valueOf
(
1400
),
BigDecimal
.
valueOf
(
1500
)),
TER_4
(
"TER_4"
,
"1500-1600"
,
BigDecimal
.
valueOf
(
1500
),
BigDecimal
.
valueOf
(
1600
)),
TER_5
(
"TER_5"
,
"1600-1700"
,
BigDecimal
.
valueOf
(
1600
),
BigDecimal
.
valueOf
(
1700
)),
TER_6
(
"TER_6"
,
"1700-1800"
,
BigDecimal
.
valueOf
(
1700
),
BigDecimal
.
valueOf
(
1800
)),
TER_7
(
"TER_7"
,
"1800-1900"
,
BigDecimal
.
valueOf
(
1800
),
BigDecimal
.
valueOf
(
1900
)),
TER_8
(
"TER_8"
,
"1900-2000"
,
BigDecimal
.
valueOf
(
1900
),
BigDecimal
.
valueOf
(
2000
)),
TER_9
(
"TER_9"
,
"2000-2100"
,
BigDecimal
.
valueOf
(
2000
),
BigDecimal
.
valueOf
(
2100
)),
TER_10
(
"TER_10"
,
"2100-2200"
,
BigDecimal
.
valueOf
(
2100
),
BigDecimal
.
valueOf
(
2200
)),
TER_11
(
"TER_11"
,
"2200-2300"
,
BigDecimal
.
valueOf
(
2200
),
BigDecimal
.
valueOf
(
2300
)),
TER_12
(
"TER_12"
,
"2300-2400"
,
BigDecimal
.
valueOf
(
2300
),
BigDecimal
.
valueOf
(
2400
)),
TER_13
(
"TER_13"
,
"2400-2500"
,
BigDecimal
.
valueOf
(
2400
),
BigDecimal
.
valueOf
(
2500
)),
TER_14
(
"TER_14"
,
"2500-2600"
,
BigDecimal
.
valueOf
(
2500
),
BigDecimal
.
valueOf
(
2600
)),
TER_15
(
"TER_15"
,
"2600-2700"
,
BigDecimal
.
valueOf
(
2600
),
BigDecimal
.
valueOf
(
2700
)),
TER_16
(
"TER_16"
,
"2700-2800"
,
BigDecimal
.
valueOf
(
2700
),
BigDecimal
.
valueOf
(
2800
)),
TER_17
(
"TER_17"
,
"2800-2900"
,
BigDecimal
.
valueOf
(
2800
),
BigDecimal
.
valueOf
(
2900
)),
TER_18
(
"TER_18"
,
"2900-3000"
,
BigDecimal
.
valueOf
(
2900
),
BigDecimal
.
valueOf
(
3000
)),
TER_19
(
"TER_19"
,
"3000-3500"
,
BigDecimal
.
valueOf
(
3000
),
BigDecimal
.
valueOf
(
3500
)),
;
private
String
code
;
private
String
name
;
private
BigDecimal
min
;
private
BigDecimal
max
;
public
static
TotalEnergyRangeEnum
getEnumByCodeOrName
(
String
condition
)
{
TotalEnergyRangeEnum
[]
values
=
values
();
if
(
condition
==
null
)
{
return
null
;
}
else
{
TotalEnergyRangeEnum
result
=
null
;
for
(
TotalEnergyRangeEnum
temp
:
values
){
if
(
temp
.
code
.
equals
(
condition
)
||
temp
.
name
.
equals
(
condition
)){
result
=
temp
;
break
;
}
}
return
result
;
}
}
public
static
TotalEnergyRangeEnum
getEnumByEnergy
(
BigDecimal
energy
)
{
TotalEnergyRangeEnum
[]
values
=
values
();
if
(
energy
==
null
)
{
return
null
;
}
else
{
if
(
TER_19
.
getMax
().
compareTo
(
energy
)==
0
){
return
TER_19
;
}
TotalEnergyRangeEnum
result
=
null
;
for
(
TotalEnergyRangeEnum
temp
:
values
){
if
(
temp
.
getMin
().
compareTo
(
energy
)<=
0
&&
temp
.
getMax
().
compareTo
(
energy
)>=
0
){
result
=
temp
;
break
;
}
}
return
result
;
}
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/enums/test/FoodMatchResultCollectTypeEnum.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
enums
.
test
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.lang3.StringUtils
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
/**
* 配餐统计纬度
*
* @author june
* @date 2022/11/03
*/
@Getter
@AllArgsConstructor
@NoArgsConstructor
public
enum
FoodMatchResultCollectTypeEnum
{
/**
* 能量
*/
ENERGY
,
/**
* 碳水化合物
*/
CARBOHYDRATE
,
/**
* 蛋白质
*/
PROTEIN
,
/**
* 脂肪
*/
FAT
,
/**
* 碳水化合物-比例
*/
CARBOHYDRATE_RATIO
(
"碳水化合物"
,
null
),
/**
* 蛋白质-比例
*/
PROTEIN_RATIO
(
"蛋白质"
,
null
),
/**
* 脂肪-比例
*/
FAT_RATIO
(
"脂肪"
,
null
),
/**
* 早餐
*/
BREAKFAST
,
/**
* 早加餐
*/
BREAKFAST_EXTRA
,
/**
* 午餐
*/
LUNCH
,
/**
* 午加餐
*/
LUNCH_EXTRA
,
/**
* 晚餐
*/
SUPPER
,
/**
* 晚加餐
*/
SUPPER_EXTRA
,
/**
* 早餐-比例
*/
BREAKFAST_RATIO
(
"早餐"
,
null
),
/**
* 早加餐-比例
*/
BREAKFAST_EXTRA_RATIO
(
"早加餐"
,
null
),
/**
* 午餐-比例
*/
LUNCH_RATIO
(
"午餐"
,
null
),
/**
* 午加餐-比例
*/
LUNCH_EXTRA_RATIO
(
"午加餐"
,
null
),
/**
* 晚餐-比例
*/
SUPPER_RATIO
(
"晚餐"
,
null
),
/**
* 晚加餐-比例
*/
SUPPER_EXTRA_RATIO
(
"晚加餐"
,
null
),
/**
* 谷物
*/
CEREAL
(
"膳食结构"
,
"谷物"
,
"g"
),
/**
* 全谷物
*/
ALL_CEREAL
(
"膳食结构"
,
"全谷物"
,
"g"
),
/**
* 薯类
*/
POTATO
(
"膳食结构"
,
"薯类"
,
"g"
),
/**
* 蔬菜
*/
VEGETABLE
(
"膳食结构"
,
"蔬菜"
,
"g"
),
/**
* 水果
*/
FRUITS
(
"膳食结构"
,
"水果"
,
"g"
),
/**
* 禽畜肉蛋
*/
MEAT
(
"膳食结构"
,
"禽畜肉蛋"
,
"g"
),
/**
* 蛋及其制品
*/
EGGS
(
"膳食结构"
,
"蛋及其制品"
,
"g"
),
/**
* 鱼虾类
*/
SEAFOOD
(
"膳食结构"
,
"鱼虾类"
,
"g"
),
/**
* 奶
*/
MILK
(
"膳食结构"
,
"奶"
,
"g"
),
/**
* 大豆
*/
SOYA
(
"膳食结构"
,
"大豆"
,
"g"
),
/**
* 坚果
*/
NUT
(
"膳食结构"
,
"坚果"
,
"g"
),
/**
* 烹饪油
*/
OIL
(
"膳食结构"
,
"烹饪油"
,
"g"
),
/**
* 膳食纤维或可溶性膳食纤维
*/
DF
,
/**
* 总胆固醇
*/
TOTAL_CHOLESTEROL
,
/**
* 维生素a
*/
VA
,
/**
* 维生素c
*/
VC
,
/**
* 维生素d
*/
VD
,
/**
* 维生素e
*/
VE
,
/**
* 维生素b1
*/
VB1
,
/**
* 维生素b2
*/
VB2
,
/**
* 维生素b5
*/
VB5
,
/**
* 维生素b6
*/
VB6
,
/**
* 维生素b12
*/
VB12
,
/**
* 叶酸
*/
FOLIC_ACID
,
/**
* 烟酸
*/
NIACIN
,
/**
* 生物素
*/
BIOTIN
,
/**
* 维生素k
*/
VK
,
/**
* 胆碱
*/
CHOLINE
,
/**
* 钙
*/
CALCIUM
,
/**
* 钾
*/
POTASSIUM
,
/**
* 镁
*/
MAGNESIUM
,
/**
* 铁
*/
IRON
,
/**
* 锌
*/
ZINC
,
/**
* 硒
*/
SELENIUM
,
/**
* 铬
*/
CHROMIUM
,
/**
* 锰
*/
MANGANESE
,
/**
* 碘
*/
IODINE
,
/**
* 钠
*/
SODIUM
,
/**
* 磷
*/
PHOSPHORUS
,
/**
* 铜
*/
COPPER
,
/**
* 氟
*/
FLUORINE
,
/**
* 钼
*/
MOLYBDENUM
,
;
/**
* 父类名称
*/
private
String
parentName
;
/**
* 当前类名称
*/
private
String
name
;
/**
* 单位 默认百分比
*/
private
String
unit
;
FoodMatchResultCollectTypeEnum
(
String
name
,
String
unit
)
{
this
.
name
=
name
;
this
.
unit
=
unit
;
}
/**
* 获取不匹配提示信息
*
* @param min 最小值
* @param max 最大值
* @return
*/
public
String
getNotMatchMessage
(
BigDecimal
min
,
BigDecimal
max
)
{
String
messageName
=
StringUtils
.
isBlank
(
this
.
parentName
)
?
this
.
name
:
String
.
format
(
"%s(%s)"
,
this
.
parentName
,
this
.
name
);
// 是否百分比
boolean
isRatio
=
StringUtils
.
isBlank
(
this
.
unit
);
String
type
=
isRatio
?
"占比"
:
"含量"
;
String
range
=
isRatio
?
String
.
format
(
"%s%%~%s%%"
,
getRatioString
(
min
),
getRatioString
(
max
))
:
String
.
format
(
"%s%s~%s%s"
,
min
.
toPlainString
(),
this
.
unit
,
max
.
toPlainString
(),
this
.
unit
);
return
String
.
format
(
"%s%s不合理,合理范围为%s"
,
messageName
,
type
,
range
);
}
private
static
String
getRatioString
(
BigDecimal
ratio
)
{
return
ratio
.
multiply
(
new
BigDecimal
(
100
)).
setScale
(
2
,
RoundingMode
.
HALF_UP
).
toPlainString
();
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/ChangeFoodStatusDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
;
import
lombok.Data
;
@Data
public
class
ChangeFoodStatusDTO
{
Boolean
status
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/AbstractAuthHttpApiRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* @description:
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/12/21 12:53 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
AbstractAuthHttpApiRequestDTO
extends
AbstractHttpApiRequestDTO
{
private
String
configId
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/AbstractHttpApiRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
;
import
com.jiankangyouyi.cloud.core.validator.ValidDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Size
;
/**
* Http 请求DTO
*
* @author yangsongbo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
abstract
class
AbstractHttpApiRequestDTO
implements
ValidDTO
{
private
static
final
long
serialVersionUID
=
1L
;
public
static
final
String
FIELD_BIZ_TYPE
=
"bizType"
;
public
static
final
String
FIELD_APP_ID
=
"appId"
;
public
static
final
String
FIELD_IP
=
"ip"
;
/**
* 业务类型
*/
@NotBlank
(
message
=
"请求参数bizType不能为空"
)
@Size
(
max
=
10
,
message
=
"请求参数bizType长度不合法"
)
private
String
bizType
;
/**
* IP地址
*/
private
String
ip
;
/**
* 应用ID
*/
@NotBlank
(
message
=
"获取appId失败"
)
@Size
(
max
=
32
,
message
=
"appId长度不合法"
)
private
String
appId
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/IdReuqestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
;
import
lombok.Data
;
/**
* @description: id相关请求
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/30 5:46 下午
*/
@Data
public
class
IdReuqestDTO
extends
AbstractHttpApiRequestDTO
{
private
String
id
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/APIBatchMatchFoodRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.*
;
import
com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.NutrientStateInfo
;
import
com.jiankangyouyi.cloud.food_match.api.enums.ExerciseLevelEnum
;
import
com.jiankangyouyi.cloud.food_match.enums.GenderRealEnum
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractAuthHttpApiRequestDTO
;
import
lombok.*
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
/**
* @description: 批量-配餐请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/26 3:32 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
APIBatchMatchFoodRequestDTO
extends
AbstractAuthHttpApiRequestDTO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
@NotEmptyHC
@SizeHC
(
value
=
64
)
private
String
userId
;
/**
* 体重 kg
*/
@NotEmptyHC
@BigDecimalValHC
@MinHC
(
25
)
@MaxHC
(
200
)
private
String
weight
;
/**
* 身高 cm
* @length 3
*/
@NotEmptyHC
@IntValHC
@MinHC
(
100
)
@MaxHC
(
230
)
private
String
height
;
/**
* 出生年月日 yyyy-MM-dd
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
birthday
;
/**
* 性别 1:男2:女
* @length 1
*/
@NotEmptyHC
@EnumHC
(
enumTypes
=
GenderRealEnum
.
class
)
@MinHC
(
value
=
1
,
message
=
"gender 不合法"
)
private
String
gender
;
/**
* 体力活动等级
* @length 1
*/
@NotEmptyHC
// @EnumHC(enumTypes = ActivityLevelEnum.class)
@Pattern
(
regexp
=
"^[1-5]$"
,
message
=
"activityLevel 不合法"
)
private
String
activityLevel
;
/**
* 运动等级
* @length 1
*/
@EnumHC
(
enumTypes
=
ExerciseLevelEnum
.
class
)
private
String
exerciseRiskLevel
;
/**
* 疾病情况
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* NULL 营养素状态信息 当健康问题包含 NUTRIENT_DEFICIENCY 时此处不可为空
*/
private
List
<
NutrientStateInfo
>
nutrientStateInfos
;
/**
* NUll 分娩日期,性别为女性时才能赋值 yyyy-MM-dd
*/
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
deliveryDate
;
/**
* NULL 哺乳状态,性别为女性时才能赋值
* <p>
* {@link LactationStatusEnum}
*/
@EnumHC
(
enumTypes
=
LactationStatusEnum
.
class
)
@SizeHC
(
1
)
private
String
lactationStatus
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
*/
@SizeHC
(
value
=
16
)
private
String
nation
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
*/
@SizeHC
(
value
=
16
)
private
String
area
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 配餐日期-起
*/
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
@NotEmptyHC
@Length
(
max
=
10
,
min
=
10
,
message
=
"planningDateStart 不合法"
)
private
String
planningDateStart
;
/**
* 配餐日期-止
*/
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
@NotEmptyHC
@Length
(
max
=
10
,
min
=
10
,
message
=
"planningDateEnd 不合法"
)
private
String
planningDateEnd
;
/**
* 是否强行配餐<br/>true:无视已存计划重新生成所有<br/>false: 只填补不存在的计划
*/
@NotNullHC
@BooleanValHC
private
String
reMatch
;
@NotEmptyHC
@SizeHC
(
64
)
private
String
configId
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/APIFindFoodMatchResRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.entity.page.Page
;
import
com.jiankangyouyi.cloud.core.validator.annotation.DateValHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.NotEmptyHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.SizeHC
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractAuthHttpApiRequestDTO
;
import
lombok.*
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Size
;
/**
* @author : liuze
* @date: 2022/12/13 11:00
**/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
APIFindFoodMatchResRequestDTO
extends
AbstractAuthHttpApiRequestDTO
{
/**
* 用户id
*/
@NotEmptyHC
@Length
(
max
=
64
,
message
=
"userId 不合法"
)
private
String
userId
;
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
@Length
(
max
=
10
,
min
=
10
,
message
=
"startDate 不合法"
)
private
String
startDate
;
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
@Length
(
max
=
10
,
min
=
10
,
message
=
"endDate 不合法"
)
private
String
endDate
;
@NotNull
(
message
=
"请求参数page不能为空"
)
@Valid
private
Page
page
;
private
String
sortColumn
;
private
boolean
desc
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/APIMatchFoodV2RequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.*
;
import
com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.NutrientStateInfo
;
import
com.jiankangyouyi.cloud.food_match.api.enums.ExerciseLevelEnum
;
import
com.jiankangyouyi.cloud.food_match.enums.GenderRealEnum
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractAuthHttpApiRequestDTO
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.match.test.MatchTestParam
;
import
lombok.*
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @description: 配餐请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/26 3:32 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
APIMatchFoodV2RequestDTO
extends
AbstractAuthHttpApiRequestDTO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
@NotEmptyHC
@SizeHC
(
value
=
64
)
private
String
userId
;
/**
* 体重 kg
*/
@NotEmptyHC
@BigDecimalValHC
@MinHC
(
25
)
@MaxHC
(
200
)
private
String
weight
;
/**
* 身高 cm
* @length 3
*/
@NotEmptyHC
@IntValHC
@MinHC
(
100
)
@MaxHC
(
230
)
private
String
height
;
/**
* 出生年月日 yyyy-MM-dd
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
birthday
;
/**
* 性别 1:男2:女
* @length 1
*/
@NotEmptyHC
@EnumHC
(
enumTypes
=
GenderRealEnum
.
class
)
private
String
gender
;
/**
* 体力活动等级
* @length 1
*/
@NotEmptyHC
@Pattern
(
regexp
=
"^[1-5]$"
,
message
=
"activityLevel 不合法"
)
private
String
activityLevel
;
/**
* 运动等级
* @length 1
*/
@EnumHC
(
enumTypes
=
ExerciseLevelEnum
.
class
)
private
String
exerciseRiskLevel
;
/**
* 疾病情况
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* NULL 营养素状态信息 当健康问题包含 NUTRIENT_DEFICIENCY 时此处不可为空
*/
private
List
<
NutrientStateInfo
>
nutrientStateInfos
;
/**
* NUll 分娩日期,性别为女性时才能赋值 yyyy-MM-dd
*/
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
deliveryDate
;
/**
* NULL 哺乳状态,性别为女性时才能赋值
* <p>
* {@link com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum}
*/
@EnumHC
(
enumTypes
=
LactationStatusEnum
.
class
)
@SizeHC
(
1
)
private
String
lactationStatus
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
*/
@SizeHC
(
value
=
16
)
private
String
nation
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
*/
@SizeHC
(
value
=
16
)
private
String
area
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* 配餐日期
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
planningDate
;
/**
* 是否强行重新配餐
* @length 5
*/
@BooleanValHC
private
String
reMatch
;
/**
* 糖尿病用药情况,不传默认4
* {@link com.jiankangyouyi.cloud.data.center.api.enums.Type2DiabetesPharmacyEnum}
*/
@SizeHC
(
1
)
private
String
type2DiabetesPharmacyCode
;
private
Integer
type
;
private
Integer
recommendedIntakeEnergy
;
/**
* 测试
*/
private
MatchTestParam
test
;
public
MatchTestParam
getTest
()
{
if
(
Objects
.
isNull
(
test
))
{
test
=
new
MatchTestParam
();
}
return
test
;
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/APIReSaveFoodMatchResRequestDTOV2.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.*
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
/**
* @description: 重新保存配餐结果
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/8/24 2:54 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
APIReSaveFoodMatchResRequestDTOV2
extends
AbstractHttpApiRequestDTO
{
/**
* 配餐用户id
* @length 64
*/
@NotEmptyHC
@SizeHC
(
64
)
private
String
userId
;
/**
* 配餐日期
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
recipesDate
;
/**
* 餐次类型 <br/>1:早餐<br/>2早+餐<br/>3午餐<br/>4午+餐<br/>5晚餐<br/>6晚+餐
* @length 1
*/
@SizeHC
(
1
)
@MinHC
(
1
)
@MaxHC
(
6
)
@NotEmptyHC
@IntValHC
private
String
mealType
;
/**
* 替换食物id
* @length 32
*/
@NotEmptyHC
@SizeHC
(
32
)
private
String
replaceFoodId
;
/**
* 被替换食物id
* @length 32
*/
@NotEmptyHC
@SizeHC
(
32
)
private
String
byReplaceFoodId
;
/**
* 更换后的食物克数
* @length 4
*/
@NotEmptyHC
@IntValHC
@SizeHC
(
4
)
private
String
gram
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/BatchMatchFoodRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.*
;
import
com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.NutrientStateInfo
;
import
com.jiankangyouyi.cloud.food_match.api.enums.ExerciseLevelEnum
;
import
com.jiankangyouyi.cloud.food_match.enums.GenderRealEnum
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.*
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
/**
* @description: 配餐请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/26 3:32 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
BatchMatchFoodRequestDTO
extends
AbstractHttpApiRequestDTO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
@NotEmptyHC
@SizeHC
(
value
=
64
)
private
String
userId
;
/**
* 体重 kg
*/
@NotEmptyHC
@BigDecimalValHC
@MinHC
(
25
)
@MaxHC
(
200
)
private
String
weight
;
/**
* 身高 cm
*
* @length 3
*/
@NotEmptyHC
@IntValHC
@MinHC
(
100
)
@MaxHC
(
230
)
private
String
height
;
/**
* 出生年月日 yyyy-MM-dd
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
birthday
;
/**
* 性别 1:男2:女
*
* @length 1
*/
@NotEmptyHC
@EnumHC
(
enumTypes
=
GenderRealEnum
.
class
)
private
String
gender
;
/**
* 体力活动等级
*
* @length 1
*/
@NotEmptyHC
@Pattern
(
regexp
=
"^[1-5]$"
,
message
=
"activityLevel 不合法"
)
private
String
activityLevel
;
/**
* 运动等级
*
* @length 1
*/
@EnumHC
(
enumTypes
=
ExerciseLevelEnum
.
class
)
private
String
exerciseRiskLevel
;
/**
* 疾病情况
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* NULL 营养素状态信息 当健康问题包含 NUTRIENT_DEFICIENCY 时此处不可为空
*/
private
List
<
NutrientStateInfo
>
nutrientStateInfos
;
/**
* NUll 分娩日期,性别为女性时才能赋值 yyyy-MM-dd
*/
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
deliveryDate
;
/**
* NULL 哺乳状态,性别为女性时才能赋值
* <p>
* {@link com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum}
*/
@EnumHC
(
enumTypes
=
LactationStatusEnum
.
class
)
@SizeHC
(
1
)
private
String
lactationStatus
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
*/
@SizeHC
(
value
=
16
)
private
String
nation
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
*/
@SizeHC
(
value
=
16
)
private
String
area
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 糖尿病用药情况,不传默认4
* {@link com.jiankangyouyi.cloud.data.center.api.enums.Type2DiabetesPharmacyEnum}
*/
@SizeHC
(
1
)
private
String
type2DiabetesPharmacyCode
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* 配餐日期-起
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
planningDateStart
;
/**
* 配餐日期-止
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
planningDateEnd
;
/**
* 是否强行配餐,true:无视已存计划重新生成所有,false: 只填补不存在的计划
*/
@BooleanValHC
@NotNullHC
private
Boolean
reMatch
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/ChangeFoodApiRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.Data
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* @description: 换一换请求DTO
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/8/20 4:23 下午
*/
@Data
public
class
ChangeFoodApiRequestDTO
extends
AbstractHttpApiRequestDTO
{
/**
* 用户id
*/
private
String
userId
;
/**
* 体重 kg
*/
private
BigDecimal
weight
;
/**
* 身高 cm
*/
private
int
height
;
/**
* 出生年月日 yyyy-MM-dd
*/
private
String
birthday
;
/**
* 性别 1:男2:女
*/
private
String
gender
;
/**
* 体力活动等级
*/
private
String
activityLevel
;
/**
* 运动等级
*/
private
Integer
exerciseRiskLevel
;
/**
* 疾病情况
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* 时令
*/
private
String
userSeason
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* 需要换的餐次
*/
private
String
suitMeal
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
*/
private
String
nation
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
*/
private
String
area
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 配餐日期
*/
private
String
planningDate
;
/**
* 早餐食物
*/
private
List
<
MatchResFoodInfo
>
breakfastRes
;
/**
* 早+餐食物
*/
private
List
<
MatchResFoodInfo
>
breakfastExtraRes
;
/**
* 午餐食物
*/
private
List
<
MatchResFoodInfo
>
lunchRes
;
/**
* 午+餐食物
*/
private
List
<
MatchResFoodInfo
>
lunchExtraRes
;
/**
* 晚餐食物
*/
private
List
<
MatchResFoodInfo
>
supperRes
;
/**
* 晚+餐食物
*/
private
List
<
MatchResFoodInfo
>
supperExtraRes
;
/**
* 换一换食物所处餐次
* 1早餐 2早+ 3午餐 4午+ 5晚餐 6晚+
*/
private
int
changeMealCode
;
/**
* 换一换食物所处位置,从0开始
*/
private
int
changeFoodIndex
;
/**
* 食物候选列表数量
*/
private
int
foodNum
;
/**
* 是否忽略餐次比例,不对外暴露,别写进文档
*/
private
boolean
ignoreMealRatio
;
/**
* 是否放弃约束
*/
private
Boolean
isAbandonConstraint
;
public
Set
<
String
>
hasFoodIds
()
{
Set
<
String
>
res
=
new
LinkedHashSet
<>();
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getBreakfastRes
()))
res
.
addAll
(
this
.
getBreakfastRes
().
stream
().
collect
(
Collectors
.
groupingBy
(
MatchResFoodInfo:
:
getFoodId
)).
keySet
());
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getBreakfastExtraRes
()))
res
.
addAll
(
this
.
getBreakfastExtraRes
().
stream
().
collect
(
Collectors
.
groupingBy
(
MatchResFoodInfo:
:
getFoodId
)).
keySet
());
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getLunchRes
()))
res
.
addAll
(
this
.
getLunchRes
().
stream
().
collect
(
Collectors
.
groupingBy
(
MatchResFoodInfo:
:
getFoodId
)).
keySet
());
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getLunchExtraRes
()))
res
.
addAll
(
this
.
getLunchExtraRes
().
stream
().
collect
(
Collectors
.
groupingBy
(
MatchResFoodInfo:
:
getFoodId
)).
keySet
());
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getSupperRes
()))
res
.
addAll
(
this
.
getSupperRes
().
stream
().
collect
(
Collectors
.
groupingBy
(
MatchResFoodInfo:
:
getFoodId
)).
keySet
());
if
(
CollectionUtils
.
isNotEmpty
(
this
.
getSupperExtraRes
()))
res
.
addAll
(
this
.
getSupperExtraRes
().
stream
().
collect
(
Collectors
.
groupingBy
(
MatchResFoodInfo:
:
getFoodId
)).
keySet
());
return
res
;
}
/**
* 配餐成功的食物精简结果
*/
@Data
public
static
class
MatchResFoodInfo
implements
Serializable
{
private
String
foodId
;
private
int
gram
;
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/ChangeFoodSelfRequestV4DTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.NotEmptyHC
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* 手动换一换
*
* @author: june
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
ChangeFoodSelfRequestV4DTO
extends
APIReSaveFoodMatchResRequestDTOV2
{
/**
* 是否强制替换
*/
@NotEmptyHC
private
Boolean
isForce
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/ChangeMealRequestApiDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.*
;
import
com.jiankangyouyi.cloud.food_match.api.enums.FoodMealTypeEnum
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.util.Objects
;
import
java.util.Set
;
/**
* @description: 整餐换一换请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2022/1/18 5:03 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
ChangeMealRequestApiDTO
extends
AbstractHttpApiRequestDTO
{
/**
* 日期 格式yyyy-MM-dd
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
recipesDate
;
/**
* 用户id
*/
@NotEmptyHC
@SizeHC
(
64
)
private
String
userId
;
/**
* 餐次类型 1早餐2早+3午餐4午+5晚餐6晚+
*/
@NotEmptyHC
@IntValHC
@EnumHC
(
enumTypes
=
FoodMealTypeEnum
.
class
)
@SizeHC
(
1
)
private
String
mealType
;
/**
* 不可变食物ids
*/
private
Set
<
String
>
immutableFoodIds
;
/**
* 是否放弃约束条件
*/
private
Boolean
discard
=
false
;
/**
* 是否限制热量 - 默认true
*/
private
Boolean
isLimitEnergy
;
/**
* 是否放弃约束
*/
private
Boolean
isAbandonConstraint
;
public
Boolean
getLimitEnergy
()
{
if
(
Objects
.
isNull
(
isLimitEnergy
))
{
return
true
;
}
return
isLimitEnergy
;
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/DelMatchFoodRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.DateValHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.NotEmptyHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.SizeHC
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.*
;
import
org.hibernate.validator.constraints.Length
;
/**
* @description: 删除指定日期以后配餐请求dto
* @author: 刘彬
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
DelMatchFoodRequestDTO
extends
AbstractHttpApiRequestDTO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
@NotEmptyHC
@SizeHC
(
value
=
64
)
private
String
userId
;
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
@Length
(
min
=
10
,
max
=
10
,
message
=
"请求参数delDateBegin不合法,支持格式yyyy-MM-dd"
)
private
String
delDateBegin
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/MatchFoodV2RequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.SizeHC
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.NutrientStateInfo
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.*
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @description: 配餐请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/26 3:32 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
MatchFoodV2RequestDTO
extends
AbstractHttpApiRequestDTO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
private
String
userId
;
/**
* 体重 kg
*/
private
BigDecimal
weight
;
/**
* 身高 cm
*/
private
int
height
;
/**
* 出生年月日 yyyy-MM-dd
*/
private
String
birthday
;
/**
* 性别 1:男2:女
*/
private
String
gender
;
/**
* 体力活动等级
*/
private
String
activityLevel
;
/**
* 运动等级
*/
private
Integer
exerciseRiskLevel
;
/**
* 疾病情况
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* NULL 营养素状态信息 当健康问题包含 NUTRIENT_DEFICIENCY 时此处不可为空
*/
private
List
<
NutrientStateInfo
>
nutrientStateInfos
;
/**
* NUll 分娩日期,性别为女性时才能赋值 yyyy-MM-dd
*/
private
String
deliveryDate
;
/**
* NULL 哺乳状态,性别为女性时才能赋值
* <p>
* {@link com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum}
*/
private
String
lactationStatus
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
*/
private
String
nation
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
*/
private
String
area
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 配餐日期
*/
private
String
planningDate
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* 是否强行重新配餐
*/
private
boolean
reMatch
;
/**
* 糖尿病用药情况,不传默认4
* {@link com.jiankangyouyi.cloud.data.center.api.enums.Type2DiabetesPharmacyEnum}
*/
@SizeHC
(
1
)
private
String
type2DiabetesPharmacyCode
;
// /**
// * 调试时使用
// */
// private Integer type;
private
Integer
recommendedIntakeEnergy
;
/**
* 区分产品 华为 ,标品
*/
private
String
standard
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/NutrientAnalysisRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.DateValHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.NotEmptyHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.SizeHC
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* @description: 营养素分析
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/11/15 9:34 上午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
NutrientAnalysisRequestDTO
extends
AbstractHttpApiRequestDTO
{
/**
* 配餐计划日期
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
@SizeHC
(
value
=
10
)
private
String
planDate
;
/**
* userId
*/
@NotEmptyHC
@SizeHC
(
value
=
64
)
private
String
userId
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/ReSaveFoodMatchResRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.Data
;
/**
* @description: 重新保存配餐结果
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/8/24 2:54 下午
*/
@Data
public
class
ReSaveFoodMatchResRequestDTO
extends
AbstractHttpApiRequestDTO
{
/**
* 配餐用户id
*/
private
String
userId
;
/**
* 配餐日期
*/
private
String
planningDate
;
/**
* 换一换食物所处餐次 1早餐 2早+ 3午餐 4午+ 5晚餐 6晚+
*/
private
int
changeMealCode
;
/**
* 换一换食物所处位置,从0开始
*/
private
int
changeFoodIndex
;
/**
* 更换后食物id
*/
private
String
changeFoodId
;
/**
* 更换后的食物克数
*/
private
int
gram
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/ReSaveFoodMatchResRequestDTOV2.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.DateValHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.NotEmptyHC
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
/**
* @description: 重新保存配餐结果
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/8/24 2:54 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
ReSaveFoodMatchResRequestDTOV2
extends
AbstractHttpApiRequestDTO
{
/**
* 配餐用户id
* @length 64
*/
private
String
userId
;
/**
* 配餐日期
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
recipesDate
;
/**
* 餐次类型 <br/>1:早餐<br/>2早+餐<br/>3午餐<br/>4午+餐<br/>5晚餐<br/>6晚+餐
* @length 1
*/
@Min
(
value
=
1
,
message
=
"mealType 范围为1~6"
)
@Max
(
value
=
6
,
message
=
"mealType 范围为1~6"
)
private
int
mealType
;
/**
* 替换食物id
* @length 32
*/
@NotEmptyHC
private
String
replaceFoodId
;
/**
* 被替换食物id
* @length 32
*/
@NotEmptyHC
private
String
byReplaceFoodId
;
/**
* 更换后的食物克数
* @length 4
*/
@NotEmptyHC
private
int
gram
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/V3ChangeFoodRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.DateValHC
;
import
com.jiankangyouyi.cloud.core.validator.annotation.NotEmptyHC
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.*
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
/**
* @description: 第三方换一换请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/9 2:05 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
V3ChangeFoodRequestDTO
extends
AbstractHttpApiRequestDTO
{
/**
* 日期 格式yyyy-MM-dd
*/
@NotEmptyHC
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
recipesDate
;
/**
* 用户id
* @length 64
*/
@NotEmptyHC
private
String
userId
;
/**
* 替换食物id
* @length 32
*/
@NotEmptyHC
private
String
replaceFoodId
;
/**
* 餐次类型 <br/>1:早餐<br/>2早+餐<br/>3午餐<br/>4午+餐<br/>5晚餐<br/>6晚+餐
*/
@Min
(
value
=
1
,
message
=
"mealType 范围为1~6"
)
@Max
(
value
=
6
,
message
=
"mealType 范围为1~6"
)
private
int
mealType
;
/**
* 是否放弃约束-默认放弃
*/
private
Boolean
isAbandonConstraint
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/food/GetFoodNutrientInfoV2RequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
.
food
;
import
com.jiankangyouyi.cloud.core.validator.annotation.IntValHC
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.AbstractHttpApiRequestDTO
;
import
lombok.*
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @description: 配餐请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/26 3:32 下午
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
GetFoodNutrientInfoV2RequestDTO
extends
AbstractHttpApiRequestDTO
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 食物id
*/
@NotBlank
(
message
=
"食物ID不能为空"
)
@Length
(
max
=
64
,
message
=
"食物ID长度不能超过64"
)
private
String
foodId
;
/**
* 克数
*/
@NotNull
(
message
=
"克数不能为空"
)
@IntValHC
(
message
=
"克数必须为整数"
)
@Min
(
value
=
1
,
message
=
"克数不能小于1"
)
@Max
(
value
=
9999
,
message
=
"克数长度不能超过4"
)
private
String
gram
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
public
String
getFoodId
()
{
return
foodId
;
}
public
void
setFoodId
(
String
foodId
)
{
this
.
foodId
=
foodId
;
}
public
Integer
getGram
()
{
if
(
Objects
.
isNull
(
gram
))
{
return
null
;
}
return
Integer
.
valueOf
(
gram
);
}
public
void
setGram
(
String
gram
)
{
this
.
gram
=
gram
;
}
public
void
setGram
(
Integer
gram
)
{
if
(
Objects
.
isNull
(
gram
))
{
this
.
gram
=
null
;
return
;
}
this
.
gram
=
String
.
valueOf
(
getGram
());
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/match/test/MatchTestParam.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
match
.
test
;
import
com.jiankangyouyi.cloud.data.center.api.model.dto.response.EnergyBalancePlanInfoResponseDTO
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.EnergyRatio
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.MealRatio
;
import
com.jiankangyouyi.cloud.food_match.api.model.vo.FoodMatchVO
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.match.APIMatchFoodV2RequestDTO
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Objects
;
/**
* 测试参数
*
* @author june
* @date 2022/11/02
*/
@Data
@Slf4j
public
class
MatchTestParam
{
public
static
final
ThreadLocal
<
MatchTestParam
>
PARAM
=
new
ThreadLocal
<>();
/**
* 能量比例
*/
private
EnergyRatio
energyRatio
;
/**
* 餐次比例
*/
private
List
<
MealRatio
>
mealRatio
;
/**
* 批次ID
*/
private
String
batchId
;
/**
* 备注
*/
private
String
remark
;
/**
* 三餐能量最小值缩减
*/
private
BigDecimal
mealsEnergyMinCut
=
BigDecimal
.
valueOf
(
0.005
);
/**
* 三餐能量最大值缩减
*/
private
BigDecimal
mealsEnergyMaxCut
=
BigDecimal
.
valueOf
(
0.01
);
/**
* 膳食结构带公式的下限缩减
*/
private
BigDecimal
dietaryMinCut
=
BigDecimal
.
valueOf
(
0.05
);
/**
* 膳食结构带公式的上缩减
*/
private
BigDecimal
dietaryMaxCut
=
BigDecimal
.
valueOf
(
0.03
);
/**
* 禽肉蛋-膳食结构 - g
*/
private
BigDecimal
dietaryEegCut
=
BigDecimal
.
valueOf
(
1
);
// 以下参数不支持传参
/**
* 能量平衡计划
*/
private
EnergyBalancePlanInfoResponseDTO
energyBalancePlan
;
/**
* 配餐结果
*/
private
FoodMatchVO
matchResult
;
/**
* 配餐请求
*/
private
APIMatchFoodV2RequestDTO
matchRequest
;
/**
* 是否插入日志
*/
private
Boolean
isInsertLog
=
Boolean
.
FALSE
;
/**
* 设置测试参数
*
* @param testParam 测试参数
*/
public
static
void
setTestParam
(
MatchTestParam
testParam
)
{
if
(
Objects
.
isNull
(
testParam
))
{
testParam
=
new
MatchTestParam
();
}
PARAM
.
set
(
testParam
);
}
/**
* 获取测试参数
*
* @return {@link MatchTestParam}
*/
public
static
MatchTestParam
getTestParam
()
{
MatchTestParam
testParam
=
PARAM
.
get
();
if
(
Objects
.
isNull
(
testParam
))
{
testParam
=
new
MatchTestParam
();
setTestParam
(
testParam
);
}
return
testParam
;
}
/**
* 清空测试参数
*/
public
static
void
clearTestParam
()
{
PARAM
.
remove
();
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/request/rule/MealFoodConditionRequestDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
request
.
rule
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.MealRatio
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.NutrientStateInfo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
import
java.util.Set
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
MealFoodConditionRequestDTO
{
/***
* 配餐 餐次
*/
List
<
MealRatio
>
mealRatio
;
/**
* 排除的食物ids
*/
private
Set
<
String
>
historyFoodIds
;
/**
* 个人健康问题
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* NUll 分娩日期,性别为女性时才能赋值 yyyy-MM-dd
*/
private
String
deliveryDate
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* NULL 哺乳状态,性别为女性时才能赋值
* <p>
* {@link com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum}
*/
private
String
lactationStatus
;
/**
* NULL 营养素状态信息 当健康问题包含 NUTRIENT_DEFICIENCY 时此处不可为空
*/
private
List
<
NutrientStateInfo
>
nutrientStateInfos
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
*/
private
List
<
String
>
nations
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
*/
private
List
<
String
>
areas
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 时令
*/
private
String
userSeason
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/dto/response/match/UserLastFoodMatchReqInfoResponseDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
dto
.
response
.
match
;
import
com.jiankangyouyi.cloud.core.validator.annotation.SizeHC
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.HealthProblemInfo
;
import
com.jiankangyouyi.cloud.data.center.api.model.entity.component.NutrientStateInfo
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @description: 用户最后一次配餐请求的请求信息
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/30 5:43 下午
*/
@Data
public
class
UserLastFoodMatchReqInfoResponseDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 用户id
*/
@SizeHC
(
value
=
32
)
private
String
userId
;
/**
* 体重 kg
* @length 5,2
*/
private
BigDecimal
weight
;
/**
* 身高 cm
* @length 3
*/
private
int
height
;
/**
* 出生年月日 yyyy-MM-dd
* @length 10
*/
private
String
birthday
;
/**
* 性别 1:男2:女
* @length 1
*/
private
String
gender
;
/**
* 体力活动等级
* @length 1
*/
private
String
activityLevel
;
/**
* 运动等级
* @length 1
*/
private
Integer
exerciseRiskLevel
;
/**
* 疾病情况
*/
private
List
<
HealthProblemInfo
>
healthProblemInfos
;
/**
* NULL 营养素状态信息 当健康问题包含 NUTRIENT_DEFICIENCY 时此处不可为空
*/
private
List
<
NutrientStateInfo
>
nutrientStateInfos
;
/**
* NUll 分娩日期,性别为女性时才能赋值 yyyy-MM-dd
* @length 10
*/
private
String
deliveryDate
;
/**
* NULL 哺乳状态,性别为女性时才能赋值
* <p>
* {@link com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum}
* @length 1
*/
private
String
lactationStatus
;
/**
* 配餐日期 yyyy-MM-dd
* @length 10
*/
private
String
planningDate
;
/**
* NULL 民族 (膳食使用时数据来源——字典——字典大类:食物库,字典子类:禁忌民族)
* @length 16
*/
private
String
nation
;
/**
* 所在的地域
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:国家及地区)
* @length 16
*/
private
String
area
;
/**
* 喜好口味
* (膳食使用时数据来源——字典——字典大类:食物库,字典子类:口味)
*/
private
List
<
String
>
taste
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* 糖尿病用药情况
* {@link com.jiankangyouyi.cloud.data.center.api.enums.Type2DiabetesPharmacyEnum}
*/
@SizeHC
(
1
)
private
String
type2DiabetesPharmacyCode
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/BaseDataClassifyDO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity
;
import
lombok.*
;
import
org.springframework.data.mongodb.core.index.CompoundIndex
;
import
org.springframework.data.mongodb.core.index.CompoundIndexes
;
import
org.springframework.data.mongodb.core.index.Indexed
;
import
org.springframework.data.mongodb.core.mapping.Document
;
/**
* 问题分类表
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@CompoundIndexes
(
value
=
{
@CompoundIndex
(
name
=
"classifyId_-1"
,
def
=
"{'classifyId' : -1}"
)
}
)
@Document
(
collection
=
"v3.base.data.classify"
)
public
class
BaseDataClassifyDO
extends
BaseMongoEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* NOT NULL 分类业务ID
*/
@Indexed
(
unique
=
true
)
private
String
classifyId
;
/**
* NOT NULL
* 业务属性
* 1 食材库
* 2 加工食品库
* 3 包装食品库
* 4 中医药材库
* 5 问题库
* 6 指标库
*/
private
String
bizProperty
;
/**
* NOT NULL 上级业务ID 一级默认为”0“
*/
private
String
parentId
;
/**
* NOT NULL 分类等级(例:一级:1,二级:2)
*/
private
Integer
classifyLevel
;
/**
* NOT NULL 分类名称
*/
private
String
classifyName
;
/**
* NOT NULL 分类编码(例:一级01,二级0101)
*/
private
String
classifyCode
;
/**
* NOT NULL 排序(默认9999)
*/
private
Integer
rowOrder
;
/**
* NULL 分类图片
*/
private
String
imageUrl
;
/**
* 分类简介
*/
private
String
description
;
/**
* 临床意义
*/
private
String
meaning
;
public
static
final
String
FIELD_CLASSIFYID
=
"classifyId"
;
public
static
final
String
FIELD_BIZPROOERTY
=
"bizProperty"
;
public
static
final
String
FIELD_PARENTID
=
"parentId"
;
public
static
final
String
FIELD_CLASSIFYLEVEL
=
"classifyLevel"
;
public
static
final
String
FIELD_CLASSIFYNAME
=
"classifyName"
;
public
static
final
String
FIELD_CLASSIFYCODE
=
"classifyCode"
;
public
static
final
String
FIELD_ROWORDER
=
"rowOrder"
;
public
static
final
String
FIELD_IMAGEURL
=
"imageUrl"
;
public
static
final
String
FIELD_DESCRIPTION
=
"description"
;
public
static
final
String
FIELD_MEANING
=
"meaning"
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/FoodMatchResDO.java
0 → 100644
View file @
26b592c4
This diff is collapsed.
Click to expand it.
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/FoodMatchResDefaultDO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
com.jiankangyouyi.cloud.food_match.api.model.dto.response.match.FoodMatchV2ResponseDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.ToString
;
import
lombok.experimental.FieldNameConstants
;
import
org.bson.types.ObjectId
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.index.CompoundIndex
;
import
org.springframework.data.mongodb.core.index.CompoundIndexes
;
import
org.springframework.data.mongodb.core.mapping.Document
;
/**
* @description: 配餐结果do
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ToString
(
callSuper
=
true
)
@FieldNameConstants
@CompoundIndexes
(
value
=
{
@CompoundIndex
(
name
=
"key_-1_keyEnergy_-1"
,
def
=
"{'key' : -1, 'keyEnergy' : -1}"
,
unique
=
false
)
}
)
@Document
(
collection
=
"food_match.res_default5"
)
public
class
FoodMatchResDefaultDO
extends
FoodMatchV2ResponseDTO
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
private
ObjectId
id
;
/**
* 早加
*/
private
String
key
;
/**
* 摄入能量
*/
private
Integer
keyEnergy
;
private
String
insertResultDate
;
// private EnergyBalancePlanResponseDTO energyBalancePlanResponseDTO;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/FoodMatchRuleDOV3_7.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
com.jiankangyouyi.cloud.food_match.enums.FoodQuantityLevelEnum
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.FieldNameConstants
;
import
org.bson.types.ObjectId
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 动态配餐规 则
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@FieldNameConstants
@Document
(
collection
=
"v3.7.food_match.rule"
)
public
class
FoodMatchRuleDOV3_7
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
private
ObjectId
id
;
/**
* 餐次类型 {@link com.jiankangyouyi.cloud.data.center.api.enums.MealType}
*/
private
Integer
mealTimesType
;
/**
* 餐类 key 唯一标示
*/
private
String
mealKey
;
/**
* 是否支持加餐
* v3.7
*/
private
boolean
extra
;
/**
* 热量等级 {@link FoodQuantityLevelEnum}
* v3.7
*/
private
List
<
String
>
quantityLevels
;
/**
* 过敏原禁忌标签 {@link com.jiankangyouyi.cloud.data.center.api.enums.AllergenTabooTagEnum}
*/
private
List
<
String
>
allergenTabooTags
;
/**
* 推荐食物坑位
*/
private
List
<
List
<
FoodMatchRuleFoodDOV3_7
>>
foodMatchRuleFoodList
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/FoodMatchRuleFoodDOV3_7.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Set
;
@Data
public
class
FoodMatchRuleFoodDOV3_7
{
/**
* 一级分类 多个分类是或的关系
*/
private
String
classify1
;
private
String
c1Name
;
/**
* 二级分类 多个分类是或的关系
*/
private
String
classify2
;
private
String
c2Name
;
/**
* 三级分类是或的关系
*/
private
String
classify3
;
private
String
c3Name
;
/**
* 排除标签 只能为什么标签 比如只能为干标签
*/
private
List
<
String
>
hasTag
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/FoodMaterialDO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum
;
import
com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodMaterial
;
import
com.jiankangyouyi.cloud.core.validator.annotation.EnumHC
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.bson.types.ObjectId
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.index.CompoundIndex
;
import
org.springframework.data.mongodb.core.index.CompoundIndexes
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.NotBlank
;
import
java.util.Date
;
import
java.util.List
;
/**
* 食材表
*
* @author :yangsongbo
*/
@CompoundIndexes
(
value
=
{
@CompoundIndex
(
name
=
"foodId_-1"
,
def
=
"{'foodId' : -1}"
,
unique
=
true
),
@CompoundIndex
(
name
=
"foodName_1"
,
def
=
"{'foodName' : 1}"
),
@CompoundIndex
(
name
=
"updateTime_-1__id_-1"
,
def
=
"{'updateTime' : -1,'_id' : -1}"
)
}
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@Document
(
collection
=
"v4.food.material"
)
public
class
FoodMaterialDO
extends
FoodMaterial
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
private
ObjectId
_id
;
/**
* 更新时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
/**
* 创建时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
/**
* 创建日期 yyyy-MM-dd
*/
private
String
createDate
;
/**
* 操作人账号
*/
private
String
operateAccount
;
/**
* 审核状态
* <p>
* {@link AuditStatusValidEnum}
*/
@NotBlank
(
message
=
"请求参数auditStatus不能为空"
)
@EnumHC
(
enumTypes
=
AuditStatusValidEnum
.
class
,
message
=
"请求参数auditStatus不合法"
)
private
String
auditStatus
;
/**
* 创建者账号
*/
private
String
createAccount
;
/**
* 驳回理由
*/
private
List
<
String
>
reasonsForRejection
;
/**
* 采纳时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
adoptTime
;
/**
* 采纳人账号
*/
private
String
adoptAccount
;
public
static
final
String
FIELD_ID
=
"_id"
;
public
static
final
String
FIELD_UPDATETIME
=
"updateTime"
;
public
static
final
String
FIELD_CREATETIME
=
"createTime"
;
public
static
final
String
FIELD_ADOPTTIME
=
"adoptTime"
;
public
static
final
String
FIELD_AUDITSTATUS
=
"auditStatus"
;
public
static
final
String
FIELD_CREATEDATE
=
"createDate"
;
public
static
final
String
FIELD_OPERATEACCOUNT
=
"operateAccount"
;
public
static
final
String
FIELD_CREATE_ACCOUNT
=
"createAccount"
;
public
static
final
String
FIELD_ADOPT_ACCOUNT
=
"adoptAccount"
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/FoodProcessDO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum
;
import
com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodProcess
;
import
com.jiankangyouyi.cloud.core.validator.annotation.EnumHC
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.bson.types.ObjectId
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.index.CompoundIndex
;
import
org.springframework.data.mongodb.core.index.CompoundIndexes
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
javax.validation.constraints.NotBlank
;
import
java.util.Date
;
import
java.util.List
;
/**
* 加工食品表
*
* @author :yangsongbo
*/
@CompoundIndexes
(
value
=
{
@CompoundIndex
(
name
=
"foodId_-1"
,
def
=
"{'foodId' : -1}"
,
unique
=
true
),
@CompoundIndex
(
name
=
"majorMaterials_foodId_-1_foodStatus_1"
,
def
=
"{'majorMaterials.foodId' : -1,'foodStatus':1}"
),
@CompoundIndex
(
name
=
"minorMaterials_foodId_-1_foodStatus_1"
,
def
=
"{'minorMaterials.foodId' : -1,'foodStatus':1}"
),
@CompoundIndex
(
name
=
"foodName_1"
,
def
=
"{'foodName' : 1}"
),
@CompoundIndex
(
name
=
"updateTime_-1__id_-1"
,
def
=
"{'updateTime' : -1,'_id' : -1}"
)
}
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@Document
(
collection
=
"v4.food.process"
)
public
class
FoodProcessDO
extends
FoodProcess
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@Id
private
ObjectId
_id
;
/**
* 更新时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
updateTime
;
/**
* 创建时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
/**
* 创建时间 yyyy-MM-dd
*/
private
String
createDate
;
/**
* 审核状态
* <p>
* {@link AuditStatusValidEnum}
*/
@NotBlank
(
message
=
"请求参数auditStatus不能为空"
)
@EnumHC
(
enumTypes
=
AuditStatusValidEnum
.
class
,
message
=
"请求参数auditStatus不合法"
)
private
String
auditStatus
;
/**
* 操作人账号
*/
private
String
operateAccount
;
/**
* 创建者账号
*/
private
String
createAccount
;
/**
* 驳回理由
*/
private
List
<
String
>
reasonsForRejection
;
/**
* 采纳时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
adoptTime
;
/**
* 采纳人账号
*/
private
String
adoptAccount
;
public
static
final
String
FIELD_ID
=
"_id"
;
public
static
final
String
FIELD_UPDATETIME
=
"updateTime"
;
public
static
final
String
FIELD_CREATETIME
=
"createTime"
;
public
static
final
String
FIELD_AUDITSTATUS
=
"auditStatus"
;
public
static
final
String
FIELD_CREATEDATE
=
"createDate"
;
public
static
final
String
FIELD_OPERATEACCOUNT
=
"operateAccount"
;
public
static
final
String
FIELD_CREATE_ACCOUNT
=
"createAccount"
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/entity/mongodb/test/FoodMatchLogCollect37.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
.
test
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
/**
* 配餐日志 汇总信息
*
* @author june
* @date 2022/11/03
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public
class
FoodMatchLogCollect37
{
/**
* 总和
*/
private
BigDecimal
total
;
/**
* 上线值
*/
private
BigDecimal
limitMin
;
/**
* 下限制
*/
private
BigDecimal
limitMax
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/third_party/request/ThirdPartyFoodMatchCondition.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
third_party
.
request
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize
;
import
com.jiankangyouyi.cloud.core.validator.annotation.*
;
import
com.jiankangyouyi.cloud.food_match.api.enums.GenderEnum
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @description: 配餐条件
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/9 9:47 上午
*/
@Data
public
class
ThirdPartyFoodMatchCondition
implements
Serializable
{
/**
* 生日
*/
@DateValHC
(
pattern
=
"yyyy-MM-dd"
)
private
String
birthday
;
/**
* 身高
*/
@IntValHC
@SizeHC
(
3
)
@MinHC
(
100
)
@MaxHC
(
230
)
private
String
height
;
/**
* 体重
*/
@BigDecimalValHC
@MinHC
(
25
)
@MaxHC
(
200
)
private
String
weight
;
/**
* 性别
*/
@EnumHC
(
enumTypes
=
GenderEnum
.
class
)
private
String
gender
;
/**
* 口味
*/
private
String
taste
;
/**
* 民族
*/
private
String
nation
;
/**
* 地区
*/
private
String
region
;
/**
* 加餐列表,没有的话默认三餐<p/>
* 1早2午3晚4早+5午+6晚+
*/
private
List
<
String
>
extraMealList
;
private
List
<
NoEatFoodInfo
>
notEatFoodList
;
/**
* 管理目标<p/>
* 1减脂2增肌3保持健康4塑形
*/
private
String
management
;
private
List
<
CrowdInfo
>
crowdManagement
;
/**
* 摄入能量
*/
@NotNull
(
message
=
"energy not null"
)
// @Min(value = 1200,message = "energy最小为1000")
// @Max(value = 3000,message = "energy最大为3000")
private
Integer
energy
;
/**
* 是否强制配餐
*/
private
Boolean
reMatch
;
/**
* 不吃食物信息
*/
@Data
public
static
class
NoEatFoodInfo
implements
Serializable
{
private
String
foodId
;
private
String
foodType
;
private
String
foodName
;
private
int
value
;
private
int
heat
;
@JsonSerialize
(
using
=
QiniuKeyToUrlJsonSerialize
.
class
)
private
String
imageUrl
;
private
String
unit
;
private
String
minQuantity
;
private
String
minQuantityEnergy
;
}
@Data
public
static
class
CrowdInfo
implements
Serializable
{
private
String
crowd
;
private
String
management
;
}
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/third_party/response/ThirdPartyChangeFoodResponseDTO.java
0 → 100644
View file @
26b592c4
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
third_party
.
response
;
import
com.jiankangyouyi.cloud.food_match.model.third_party.request.ThirdPartyFoodMatchCondition
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @description: 第三方换一换响应
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/9 2:15 下午
*/
@Data
public
class
ThirdPartyChangeFoodResponseDTO
implements
Serializable
{
/**
* 换一换食物候选列表
*/
private
List
<
ThirdPartyFoodMatchCondition
.
NoEatFoodInfo
>
foodList
=
new
ArrayList
<>();
/**
* 是否为最优方案
*/
private
boolean
optimalCase
;
}
src/main/java/com/jiankangyouyi/cloud/food_match/model/vo/FoodNutrientInfoCountVO.java
0 → 100644
View file @
26b592c4
This diff is collapsed.
Click to expand it.
src/main/java/com/june/entitytodbdoc/Starter.java
View file @
26b592c4
...
...
@@ -27,6 +27,7 @@ public class Starter {
.
parallelStream
().
map
(
GetClassCommentUtils:
:
execute
)
.
filter
(
Optional:
:
isPresent
)
.
map
(
Optional:
:
get
)
.
distinct
()
.
sorted
(
Comparator
.
comparing
(
DocumentInfoDTO:
:
getDocumentName
))
.
flatMap
(
dto
->
MarkdownUtils
.
getOneDocumentContent
(
dto
).
stream
())
.
collect
(
Collectors
.
toList
());
...
...
src/main/java/com/june/entitytodbdoc/dto/DocumentInfoDTO.java
View file @
26b592c4
...
...
@@ -90,5 +90,24 @@ public class DocumentInfoDTO {
this
.
describe
=
describe
;
}
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
{
return
true
;
}
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
{
return
false
;
}
DocumentInfoDTO
that
=
(
DocumentInfoDTO
)
o
;
return
documentName
.
equals
(
that
.
documentName
);
}
@Override
public
int
hashCode
()
{
return
documentName
.
hashCode
();
}
}
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