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
Show 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 @@
...
@@ -41,6 +41,19 @@
</exclusion>
</exclusion>
</exclusions>
</exclusions>
</dependency>
</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>
<dependency>
<groupId>
com.jiankangyouyi.cloud
</groupId>
<groupId>
com.jiankangyouyi.cloud
</groupId>
<artifactId>
health-cloud-data-center-api
</artifactId>
<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
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
entity
.
mongodb
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum
;
import
com.jiankangyouyi.cloud.data.center.api.model.dto.response.EnergyBalancePlanInfoResponseDTO
;
import
com.jiankangyouyi.cloud.food_match.api.model.entity.match.FoodMatchV2ResponseInfo
;
import
com.jiankangyouyi.cloud.food_match.model.dto.request.match.MatchFoodV2RequestDTO
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.bson.types.ObjectId
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.annotation.Version
;
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
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
/**
* @description: 配餐结果do
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/28 11:14 上午
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@CompoundIndexes
(
value
=
{
@CompoundIndex
(
name
=
"appId_1_bizType_1_userId_1_validStatus_1_planningDate_-1"
,
def
=
"{'appId' : 1,'bizType':1,'userId':1,'validStatus':1,'planningDate':-1}"
,
unique
=
true
),
@CompoundIndex
(
name
=
"createTime"
,
def
=
"{'createTime' : 1}"
),
@CompoundIndex
(
name
=
"updateTime"
,
def
=
"{'updateTime' : 1}"
),
@CompoundIndex
(
name
=
"planningDate_-1_appId_-1_userId_-1"
,
def
=
"{'planningDate' : -1,'appId' : -1,'userId':-1}"
),
@CompoundIndex
(
name
=
"userId_-1_planningDate_-1"
,
def
=
"{'userId':-1,'planningDate' : -1}"
)
}
)
@Document
(
collection
=
"v3.food_match.res"
)
public
class
FoodMatchResDO
extends
FoodMatchV2ResponseInfo
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
private
ObjectId
id
;
/**
* 用户id
*/
private
String
userId
;
/**
* 业务类型
*/
private
String
bizType
;
/**
* appId
*/
private
String
appId
;
/**
* 配餐日期
*/
private
String
planningDate
;
/**
* 配餐请求参数
*/
private
MatchFoodV2RequestDTO
foodMatchRequestDTO
;
/**
* 能量平衡计划
*/
private
EnergyBalancePlanInfoResponseDTO
energyBalancePlan
;
/**
* 数据状态
* {@link com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum}
*/
private
String
validStatus
=
ValidStatusEnum
.
VALID
.
getCode
();
@Version
private
Long
version
;
/**
* 创建时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@Indexed
private
Date
createTime
=
new
Date
();
/**
* 修改时间
*/
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@Indexed
private
Date
updateTime
=
new
Date
();
public
static
final
String
FIELD_ID
=
"_id"
;
public
static
final
String
FIELD_USERID
=
"userId"
;
public
static
final
String
FIELD_BIZTYPE
=
"bizType"
;
public
static
final
String
FIELD_APPID
=
"appId"
;
public
static
final
String
FIELD_PLANNINGDATE
=
"planningDate"
;
public
static
final
String
FIELD_VALIDSTATUS
=
"validStatus"
;
public
static
final
String
FIELD_CREATETIME
=
"createTime"
;
public
static
final
String
FIELD_UPDATETIME
=
"updateTime"
;
public
static
final
String
FIELD_BREAKFASTRES
=
"breakfastRes"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS
=
"breakfastRes.foods"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_FOODID
=
"breakfastRes.foods.foodId"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_FOODNAME
=
"breakfastRes.foods.foodName"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_GRAM
=
"breakfastRes.foods.gram"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_CARBOHYDRATE
=
"breakfastRes.foods.carbohydrate"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_PROTEIN
=
"breakfastRes.foods.protein"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_FAT
=
"breakfastRes.foods.fat"
;
public
static
final
String
FIELD_BREAKFASTRES_FOODS_ENERGY
=
"breakfastRes.foods.energy"
;
public
static
final
String
FIELD_BREAKFASTRES_PROTEIN
=
"breakfastRes.protein"
;
public
static
final
String
FIELD_BREAKFASTRES_FAT
=
"breakfastRes.fat"
;
public
static
final
String
FIELD_BREAKFASTRES_CARBOHYDRATE
=
"breakfastRes.carbohydrate"
;
public
static
final
String
FIELD_BREAKFASTRES_ENERGY
=
"breakfastRes.energy"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES
=
"breakfastExtraRes"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS
=
"breakfastExtraRes.foods"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_FOODID
=
"breakfastExtraRes.foods.foodId"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_FOODNAME
=
"breakfastExtraRes.foods.foodName"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_GRAM
=
"breakfastExtraRes.foods.gram"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_CARBOHYDRATE
=
"breakfastExtraRes.foods.carbohydrate"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_PROTEIN
=
"breakfastExtraRes.foods.protein"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_FAT
=
"breakfastExtraRes.foods.fat"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FOODS_ENERGY
=
"breakfastExtraRes.foods.energy"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_PROTEIN
=
"breakfastExtraRes.protein"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_FAT
=
"breakfastExtraRes.fat"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_CARBOHYDRATE
=
"breakfastExtraRes.carbohydrate"
;
public
static
final
String
FIELD_BREAKFASTEXTRARES_ENERGY
=
"breakfastExtraRes.energy"
;
public
static
final
String
FIELD_LUNCHRES
=
"lunchRes"
;
public
static
final
String
FIELD_LUNCHRES_FOODS
=
"lunchRes.foods"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_FOODID
=
"lunchRes.foods.foodId"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_FOODNAME
=
"lunchRes.foods.foodName"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_GRAM
=
"lunchRes.foods.gram"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_CARBOHYDRATE
=
"lunchRes.foods.carbohydrate"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_PROTEIN
=
"lunchRes.foods.protein"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_FAT
=
"lunchRes.foods.fat"
;
public
static
final
String
FIELD_LUNCHRES_FOODS_ENERGY
=
"lunchRes.foods.energy"
;
public
static
final
String
FIELD_LUNCHRES_PROTEIN
=
"lunchRes.protein"
;
public
static
final
String
FIELD_LUNCHRES_FAT
=
"lunchRes.fat"
;
public
static
final
String
FIELD_LUNCHRES_CARBOHYDRATE
=
"lunchRes.carbohydrate"
;
public
static
final
String
FIELD_LUNCHRES_ENERGY
=
"lunchRes.energy"
;
public
static
final
String
FIELD_LUNCHEXTRARES
=
"lunchExtraRes"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS
=
"lunchExtraRes.foods"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_FOODID
=
"lunchExtraRes.foods.foodId"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_FOODNAME
=
"lunchExtraRes.foods.foodName"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_GRAM
=
"lunchExtraRes.foods.gram"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_CARBOHYDRATE
=
"lunchExtraRes.foods.carbohydrate"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_PROTEIN
=
"lunchExtraRes.foods.protein"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_FAT
=
"lunchExtraRes.foods.fat"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FOODS_ENERGY
=
"lunchExtraRes.foods.energy"
;
public
static
final
String
FIELD_LUNCHEXTRARES_PROTEIN
=
"lunchExtraRes.protein"
;
public
static
final
String
FIELD_LUNCHEXTRARES_FAT
=
"lunchExtraRes.fat"
;
public
static
final
String
FIELD_LUNCHEXTRARES_CARBOHYDRATE
=
"lunchExtraRes.carbohydrate"
;
public
static
final
String
FIELD_LUNCHEXTRARES_ENERGY
=
"lunchExtraRes.energy"
;
public
static
final
String
FIELD_SUPPERRES
=
"supperRes"
;
public
static
final
String
FIELD_SUPPERRES_FOODS
=
"supperRes.foods"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_FOODID
=
"supperRes.foods.foodId"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_FOODNAME
=
"supperRes.foods.foodName"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_GRAM
=
"supperRes.foods.gram"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_CARBOHYDRATE
=
"supperRes.foods.carbohydrate"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_PROTEIN
=
"supperRes.foods.protein"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_FAT
=
"supperRes.foods.fat"
;
public
static
final
String
FIELD_SUPPERRES_FOODS_ENERGY
=
"supperRes.foods.energy"
;
public
static
final
String
FIELD_SUPPERRES_PROTEIN
=
"supperRes.protein"
;
public
static
final
String
FIELD_SUPPERRES_FAT
=
"supperRes.fat"
;
public
static
final
String
FIELD_SUPPERRES_CARBOHYDRATE
=
"supperRes.carbohydrate"
;
public
static
final
String
FIELD_SUPPERRES_ENERGY
=
"supperRes.energy"
;
public
static
final
String
FIELD_SUPPEREXTRARES
=
"supperExtraRes"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS
=
"supperExtraRes.foods"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_FOODID
=
"supperExtraRes.foods.foodId"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_FOODNAME
=
"supperExtraRes.foods.foodName"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_GRAM
=
"supperExtraRes.foods.gram"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_CARBOHYDRATE
=
"supperExtraRes.foods.carbohydrate"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_PROTEIN
=
"supperExtraRes.foods.protein"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_FAT
=
"supperExtraRes.foods.fat"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FOODS_ENERGY
=
"supperExtraRes.foods.energy"
;
public
static
final
String
FIELD_SUPPEREXTRARES_PROTEIN
=
"supperExtraRes.protein"
;
public
static
final
String
FIELD_SUPPEREXTRARES_FAT
=
"supperExtraRes.fat"
;
public
static
final
String
FIELD_SUPPEREXTRARES_CARBOHYDRATE
=
"supperExtraRes.carbohydrate"
;
public
static
final
String
FIELD_SUPPEREXTRARES_ENERGY
=
"supperExtraRes.energy"
;
public
static
final
String
FIELD_PROTEIN
=
"protein"
;
public
static
final
String
FIELD_FAT
=
"fat"
;
public
static
final
String
FIELD_CARBOHYDRATE
=
"carbohydrate"
;
public
static
final
String
FIELD_ENERGY
=
"energy"
;
public
static
final
String
FIELD_FOODMATCHREQUESTDTO
=
"foodMatchRequestDTO"
;
}
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
package
com
.
jiankangyouyi
.
cloud
.
food_match
.
model
.
vo
;
import
cn.hutool.core.util.NumberUtil
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize
;
import
com.jiankangyouyi.cloud.food_match.api.model.entity.food.FoodMatchDietaryPattern
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.data.annotation.Transient
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @description: 食物营养素汇总信息响应dto, 信息都是*过可食部系数的
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/27 10:19 上午
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
FoodNutrientInfoCountVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 食物id 唯一
*/
private
String
foodId
;
/**
* 食物名称
*/
private
String
foodName
;
/**
* 食物图片
*/
@JsonSerialize
(
using
=
QiniuKeyToUrlJsonSerialize
.
class
)
private
String
foodImg
;
/**
* 提供的总能量 kcal
*/
private
BigDecimal
totalEnergy
;
/**
* 食物总含量 碳水化合物含量 大卡
*/
private
BigDecimal
carbohydrate
;
/**
* 食物总含量 蛋白质含量 大卡
*/
private
BigDecimal
protein
;
/**
* 食物总含量 脂肪含量 大卡
*/
private
BigDecimal
fat
;
/**
* 食物总含量 碳水化合物含量 g
*/
private
BigDecimal
carbohydrateGram
;
/**
* 食物总含量 蛋白质含量 g
*/
private
BigDecimal
proteinGram
;
/**
* 食物总含量 脂肪含量 g
*/
private
BigDecimal
fatGram
;
/**
* 主要组成食材
*/
private
List
<
FoodConstituteInfo
>
majorMaterials
;
/**
* 次要组成材料
*/
private
List
<
FoodConstituteInfo
>
minorMaterials
;
/**
* 烹饪步骤
*/
private
List
<
CookingStep
>
cookingSteps
;
/**
* 维生素信息
*/
private
Vitamin
vitaminInfo
;
/***
* 矿物质信息
*/
private
Mineral
mineralInfo
;
/**
* 氨基酸信息
*/
private
AminoAcid
aminoAcidInfo
;
/**
* 脂肪酸信息
*/
private
FattyAcid
fattyAcidInfo
;
/**
* 植物化学物信息
*/
private
Phytochemical
phytochemicalInfo
;
/**
* 食物基本组成信息
*/
private
FoodBasicCompositionInfo
foodBasicCompositionInfo
;
/**
* 膳食结构信息
*/
private
FoodMatchDietaryPattern
dietaryPattern
;
/**
* 根据可食部系数处理数据
*
* @param edibleRatio 可食部系数
* @param gram 克数
*/
public
void
execDataByEdibleRatio
(
BigDecimal
edibleRatio
,
BigDecimal
gram
)
{
//region 三大产能从g转化为大卡算上重量以及可食部并填补
BigDecimal
carbohydrateGram
=
this
.
getCarbohydrateGram
();
BigDecimal
proteinGram
=
this
.
getProteinGram
();
BigDecimal
fatGram
=
this
.
getFatGram
();
BigDecimal
carbohydrate
=
carbohydrateGram
.
multiply
(
BigDecimal
.
valueOf
(
4
)).
multiply
(
edibleRatio
).
multiply
(
gram
);
BigDecimal
protein
=
proteinGram
.
multiply
(
BigDecimal
.
valueOf
(
4
)).
multiply
(
edibleRatio
).
multiply
(
gram
);
BigDecimal
fat
=
fatGram
.
multiply
(
BigDecimal
.
valueOf
(
9
)).
multiply
(
edibleRatio
).
multiply
(
gram
);
this
.
setCarbohydrate
(
carbohydrate
);
this
.
setProtein
(
protein
);
this
.
setFat
(
fat
);
//endregion
//region 认为三大产能相加就是总能量
this
.
setTotalEnergy
(
NumberUtil
.
add
(
this
.
getCarbohydrate
(),
this
.
getProtein
(),
this
.
getFat
()));
//endregion
//region 处理维生素信息 算上重量和可食部
Vitamin
vitaminInfo
=
this
.
getVitaminInfo
();
if
(
vitaminInfo
!=
null
)
{
vitaminInfo
.
setVitaminA
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminA
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB1
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB1
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB2
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB2
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB3
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB3
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB5
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB5
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB6
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB6
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB9
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB9
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminB12
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminB12
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminC
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminC
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminD
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminD
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminE
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminE
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminH
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminH
(),
edibleRatio
,
gram
));
vitaminInfo
.
setVitaminK
(
NumberUtil
.
mul
(
vitaminInfo
.
getVitaminK
(),
edibleRatio
,
gram
));
vitaminInfo
.
setCholine
(
NumberUtil
.
mul
(
vitaminInfo
.
getCholine
(),
edibleRatio
,
gram
));
}
//endregion
//region 处理矿物质信息 算上重量和可食部
Mineral
mineralInfo
=
this
.
getMineralInfo
();
if
(
mineralInfo
!=
null
)
{
mineralInfo
.
setCalcium
(
NumberUtil
.
mul
(
mineralInfo
.
getCalcium
(),
edibleRatio
,
gram
));
mineralInfo
.
setPhosphorus
(
NumberUtil
.
mul
(
mineralInfo
.
getPhosphorus
(),
edibleRatio
,
gram
));
mineralInfo
.
setPotassium
(
NumberUtil
.
mul
(
mineralInfo
.
getPotassium
(),
edibleRatio
,
gram
));
mineralInfo
.
setSodium
(
NumberUtil
.
mul
(
mineralInfo
.
getSodium
(),
edibleRatio
,
gram
));
mineralInfo
.
setMagnesium
(
NumberUtil
.
mul
(
mineralInfo
.
getMagnesium
(),
edibleRatio
,
gram
));
mineralInfo
.
setCopper
(
NumberUtil
.
mul
(
mineralInfo
.
getCopper
(),
edibleRatio
,
gram
));
mineralInfo
.
setIron
(
NumberUtil
.
mul
(
mineralInfo
.
getIron
(),
edibleRatio
,
gram
));
mineralInfo
.
setZinc
(
NumberUtil
.
mul
(
mineralInfo
.
getZinc
(),
edibleRatio
,
gram
));
mineralInfo
.
setManganese
(
NumberUtil
.
mul
(
mineralInfo
.
getManganese
(),
edibleRatio
,
gram
));
mineralInfo
.
setIodine
(
NumberUtil
.
mul
(
mineralInfo
.
getIodine
(),
edibleRatio
,
gram
));
mineralInfo
.
setChromium
(
NumberUtil
.
mul
(
mineralInfo
.
getChromium
(),
edibleRatio
,
gram
));
mineralInfo
.
setFluorine
(
NumberUtil
.
mul
(
mineralInfo
.
getFluorine
(),
edibleRatio
,
gram
));
mineralInfo
.
setSelenium
(
NumberUtil
.
mul
(
mineralInfo
.
getSelenium
(),
edibleRatio
,
gram
));
}
//endregion
//region 氨基酸信息 算上重量和可食部
AminoAcid
aminoAcidInfo
=
this
.
getAminoAcidInfo
();
if
(
aminoAcidInfo
!=
null
)
{
aminoAcidInfo
.
setIsoleucine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getIsoleucine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setLeucine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getLeucine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setLysine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getLysine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setMethionine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getMethionine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setCysteine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getCysteine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setPhenylalanine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getPhenylalanine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setTyrosine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getTyrosine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setThreonine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getThreonine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setTryptophan
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getTryptophan
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setValine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getValine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setArginine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getArginine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setHistidine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getHistidine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setAlanine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getAlanine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setAsparticAcid
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getAsparticAcid
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setGlutamicAcid
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getGlutamicAcid
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setGlycine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getGlycine
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setProline
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getProline
(),
edibleRatio
,
gram
));
aminoAcidInfo
.
setSerine
(
NumberUtil
.
mul
(
aminoAcidInfo
.
getSerine
(),
edibleRatio
,
gram
));
}
//endregion
//region 脂肪酸信息 算上重量和可食部
FattyAcid
fattyAcidInfo
=
this
.
getFattyAcidInfo
();
if
(
fattyAcidInfo
!=
null
)
{
fattyAcidInfo
.
setTotalFattyAcid
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getTotalFattyAcid
(),
edibleRatio
,
gram
));
fattyAcidInfo
.
setSaturatedFattyAcid
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getSaturatedFattyAcid
(),
edibleRatio
,
gram
));
fattyAcidInfo
.
setMonounsaturatedFattyAcid
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getMonounsaturatedFattyAcid
(),
edibleRatio
,
gram
));
fattyAcidInfo
.
setPolyunsaturatedFattyAcid
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getPolyunsaturatedFattyAcid
(),
edibleRatio
,
gram
));
fattyAcidInfo
.
setSfaPercent
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getSfaPercent
(),
edibleRatio
,
gram
));
fattyAcidInfo
.
setMfaPercent
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getMfaPercent
(),
edibleRatio
,
gram
));
fattyAcidInfo
.
setPfaPercent
(
NumberUtil
.
mul
(
fattyAcidInfo
.
getPfaPercent
(),
edibleRatio
,
gram
));
}
//endregion
//region 植物化学物信息 算上重量和可食部
Phytochemical
phytochemicalInfo
=
this
.
getPhytochemicalInfo
();
if
(
phytochemicalInfo
!=
null
)
{
phytochemicalInfo
.
setPhytosterol
(
NumberUtil
.
mul
(
phytochemicalInfo
.
getPhytosterol
(),
edibleRatio
,
gram
));
phytochemicalInfo
.
setCarotene
(
NumberUtil
.
mul
(
phytochemicalInfo
.
getCarotene
(),
edibleRatio
,
gram
));
phytochemicalInfo
.
setLuteinZeaxanthin
(
NumberUtil
.
mul
(
phytochemicalInfo
.
getLuteinZeaxanthin
(),
edibleRatio
,
gram
));
Flavonoid
flavonoid
=
phytochemicalInfo
.
getFlavonoid
();
if
(
flavonoid
!=
null
)
{
flavonoid
.
setQuercetin
(
NumberUtil
.
mul
(
flavonoid
.
getQuercetin
(),
edibleRatio
,
gram
));
flavonoid
.
setMyricetin
(
NumberUtil
.
mul
(
flavonoid
.
getMyricetin
(),
edibleRatio
,
gram
));
flavonoid
.
setLuteolin
(
NumberUtil
.
mul
(
flavonoid
.
getLuteolin
(),
edibleRatio
,
gram
));
flavonoid
.
setKaemPferol
(
NumberUtil
.
mul
(
flavonoid
.
getKaemPferol
(),
edibleRatio
,
gram
));
flavonoid
.
setApigenin
(
NumberUtil
.
mul
(
flavonoid
.
getApigenin
(),
edibleRatio
,
gram
));
}
Isoflavone
isoflavone
=
phytochemicalInfo
.
getIsoflavone
();
if
(
isoflavone
!=
null
)
{
isoflavone
.
setDaidzein
(
NumberUtil
.
mul
(
isoflavone
.
getDaidzein
(),
edibleRatio
,
gram
));
isoflavone
.
setGlycitein
(
NumberUtil
.
mul
(
isoflavone
.
getGlycitein
(),
edibleRatio
,
gram
));
isoflavone
.
setGenistein
(
NumberUtil
.
mul
(
isoflavone
.
getGenistein
(),
edibleRatio
,
gram
));
}
Anthocyanidin
anthocyanidin
=
phytochemicalInfo
.
getAnthocyanidin
();
if
(
anthocyanidin
!=
null
)
{
anthocyanidin
.
setDelphinidin
(
NumberUtil
.
mul
(
anthocyanidin
.
getDelphinidin
(),
edibleRatio
,
gram
));
anthocyanidin
.
setCyamidin
(
NumberUtil
.
mul
(
anthocyanidin
.
getCyamidin
(),
edibleRatio
,
gram
));
anthocyanidin
.
setPeonidin
(
NumberUtil
.
mul
(
anthocyanidin
.
getPeonidin
(),
edibleRatio
,
gram
));
}
Resveratrol
resveratrol
=
phytochemicalInfo
.
getResveratrol
();
if
(
resveratrol
!=
null
)
{
resveratrol
.
setResveratrol
(
NumberUtil
.
mul
(
resveratrol
.
getResveratrol
(),
edibleRatio
,
gram
));
resveratrol
.
setPolydatin
(
NumberUtil
.
mul
(
resveratrol
.
getPolydatin
(),
edibleRatio
,
gram
));
}
}
//endregion
//region 处理食物基本信息 算上重量和可食部
FoodBasicCompositionInfo
foodBasicCompositionInfo
=
this
.
getFoodBasicCompositionInfo
();
if
(
foodBasicCompositionInfo
!=
null
)
{
foodBasicCompositionInfo
.
setEnergy
(
this
.
getTotalEnergy
().
intValue
());
foodBasicCompositionInfo
.
setProtein
(
this
.
getProteinGram
());
foodBasicCompositionInfo
.
setFat
(
this
.
getFatGram
());
foodBasicCompositionInfo
.
setCarbohydrate
(
this
.
getCarbohydrateGram
());
foodBasicCompositionInfo
.
setWater
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getWater
(),
edibleRatio
,
gram
));
foodBasicCompositionInfo
.
setInsolubleFiber
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getInsolubleFiber
(),
edibleRatio
,
gram
));
foodBasicCompositionInfo
.
setSolubilityFiber
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getSolubilityFiber
(),
edibleRatio
,
gram
));
foodBasicCompositionInfo
.
setDietaryFiber
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getDietaryFiber
(),
edibleRatio
,
gram
));
foodBasicCompositionInfo
.
setCholesterol
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getCholesterol
(),
edibleRatio
,
gram
));
foodBasicCompositionInfo
.
setPurine
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getPurine
(),
edibleRatio
,
gram
));
foodBasicCompositionInfo
.
setAsh
(
NumberUtil
.
mul
(
foodBasicCompositionInfo
.
getAsh
(),
edibleRatio
,
gram
));
}
//endregion
//region 膳食结构
FoodMatchDietaryPattern
dietaryPattern
=
this
.
getDietaryPattern
();
if
(
dietaryPattern
!=
null
)
{
dietaryPattern
.
setCereal
(
NumberUtil
.
mul
(
dietaryPattern
.
getCereal
(),
edibleRatio
,
gram
));
dietaryPattern
.
setAllCereal
(
NumberUtil
.
mul
(
dietaryPattern
.
getAllCereal
(),
edibleRatio
,
gram
));
dietaryPattern
.
setPotato
(
NumberUtil
.
mul
(
dietaryPattern
.
getPotato
(),
edibleRatio
,
gram
));
dietaryPattern
.
setVegetable
(
NumberUtil
.
mul
(
dietaryPattern
.
getVegetable
(),
edibleRatio
,
gram
));
dietaryPattern
.
setFruits
(
NumberUtil
.
mul
(
dietaryPattern
.
getFruits
(),
edibleRatio
,
gram
));
dietaryPattern
.
setMeat
(
NumberUtil
.
mul
(
dietaryPattern
.
getMeat
(),
edibleRatio
,
gram
));
dietaryPattern
.
setEgg
(
NumberUtil
.
mul
(
dietaryPattern
.
getEgg
(),
edibleRatio
,
gram
));
dietaryPattern
.
setSeafood
(
NumberUtil
.
mul
(
dietaryPattern
.
getSeafood
(),
edibleRatio
,
gram
));
dietaryPattern
.
setMilk
(
NumberUtil
.
mul
(
dietaryPattern
.
getMilk
(),
edibleRatio
,
gram
));
dietaryPattern
.
setSoya
(
NumberUtil
.
mul
(
dietaryPattern
.
getSoya
(),
edibleRatio
,
gram
));
dietaryPattern
.
setNut
(
NumberUtil
.
mul
(
dietaryPattern
.
getNut
(),
edibleRatio
,
gram
));
dietaryPattern
.
setOil
(
NumberUtil
.
mul
(
dietaryPattern
.
getOil
(),
edibleRatio
,
gram
));
}
//endregion
}
/**
* 食物基本组成信息
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
static
class
FoodBasicCompositionInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 热量
*/
private
Integer
energy
;
/**
* 蛋白质
*/
private
BigDecimal
protein
;
/**
* 脂肪
*/
private
BigDecimal
fat
;
/**
* 碳水化合物
*/
private
BigDecimal
carbohydrate
;
/**
* 水分
*/
private
BigDecimal
water
;
/**
* 不溶性纤维
*/
private
BigDecimal
insolubleFiber
;
/**
* 可溶性纤维
*/
private
BigDecimal
solubilityFiber
;
/**
* 膳食纤维
*/
private
BigDecimal
dietaryFiber
;
/**
* 胆固醇
*/
private
BigDecimal
cholesterol
;
/**
* 嘌呤
*/
private
BigDecimal
purine
;
/**
* GI 值 不计算可食部
*/
private
BigDecimal
gi
;
/**
* 灰分
*/
private
BigDecimal
ash
;
/**
* 可食部
*/
private
Integer
edible
;
/**
* 处理数据 加上克数换算和可食部系数
*
* @param gram 克数
* @param edibleRatio 可食部系数
*/
public
void
execData
(
BigDecimal
gram
,
BigDecimal
edibleRatio
)
{
BigDecimal
energy
=
BigDecimal
.
valueOf
(
this
.
getEnergy
());
this
.
setEnergy
(
NumberUtil
.
mul
(
energy
,
BigDecimal
.
valueOf
(
0.01
),
gram
,
edibleRatio
).
setScale
(
0
,
BigDecimal
.
ROUND_UP
).
intValue
());
this
.
setProtein
(
NumberUtil
.
mul
(
this
.
getProtein
(),
BigDecimal
.
valueOf
(
0.01
),
gram
,
edibleRatio
));
this
.
setFat
(
NumberUtil
.
mul
(
this
.
getFat
(),
BigDecimal
.
valueOf
(
0.01
),
gram
,
edibleRatio
));
this
.
setCarbohydrate
(
NumberUtil
.
mul
(
this
.
getCarbohydrate
(),
BigDecimal
.
valueOf
(
0.01
),
gram
,
edibleRatio
));
this
.
setWater
(
NumberUtil
.
mul
(
this
.
getWater
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
this
.
setInsolubleFiber
(
NumberUtil
.
mul
(
this
.
getInsolubleFiber
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
this
.
setSolubilityFiber
(
NumberUtil
.
mul
(
this
.
getSolubilityFiber
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
this
.
setDietaryFiber
(
NumberUtil
.
mul
(
this
.
getDietaryFiber
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
this
.
setCholesterol
(
NumberUtil
.
mul
(
this
.
getCholesterol
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
this
.
setPurine
(
NumberUtil
.
mul
(
this
.
getPurine
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
//modify by yangsongbo GI值不需要按照质量进行换算
// this.setGi(NumberUtil.mul(this.getGi(), gram, BigDecimal.valueOf(0.01)));
this
.
setAsh
(
NumberUtil
.
mul
(
this
.
getAsh
(),
gram
,
edibleRatio
,
BigDecimal
.
valueOf
(
0.01
)));
}
}
/**
* 食物组成信息
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
static
class
FoodConstituteInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 食材id
*/
private
String
foodId
;
/**
* 食材名称
*/
private
String
foodName
;
/**
* 食物图片地址
*/
@JsonSerialize
(
using
=
QiniuKeyToUrlJsonSerialize
.
class
)
private
String
foodImg
;
/**
* 质量
*/
private
BigDecimal
gram
;
/**
* 单位:g/ml
*/
private
String
unit
;
}
/**
* 维生素信息
*/
@Data
public
static
class
Vitamin
implements
Serializable
{
/**
* 维生素A
*/
private
BigDecimal
vitaminA
;
/**
* 维生素B1
*/
private
BigDecimal
vitaminB1
;
/**
* 维生素B2
*/
private
BigDecimal
vitaminB2
;
/**
* 维生素B3
*/
private
BigDecimal
vitaminB3
;
/**
* 维生素B5
*/
private
BigDecimal
vitaminB5
;
/**
* 维生素B6
*/
private
BigDecimal
vitaminB6
;
/**
* 维生素B9
*/
private
BigDecimal
vitaminB9
;
/**
* 维生素B12
*/
private
BigDecimal
vitaminB12
;
/**
* 维生素C
*/
private
BigDecimal
vitaminC
;
/**
* 维生素D
*/
private
BigDecimal
vitaminD
;
/**
* 维生素E
*/
private
BigDecimal
vitaminE
;
/**
* 维生素H
*/
private
BigDecimal
vitaminH
;
/**
* 维生素K
*/
private
BigDecimal
vitaminK
;
/**
* 胆碱
*/
private
BigDecimal
choline
;
/**
* 处理数据 加上克数换算和可食部系数
*
* @param gram 克数
* @param edibleRatio 可食部系数
*/
public
void
execData
(
BigDecimal
gram
,
BigDecimal
edibleRatio
)
{
this
.
setVitaminA
(
this
.
getVitaminA
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB1
(
this
.
getVitaminB1
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB2
(
this
.
getVitaminB2
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB3
(
this
.
getVitaminB3
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB5
(
this
.
getVitaminB5
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB6
(
this
.
getVitaminB6
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB9
(
this
.
getVitaminB9
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminB12
(
this
.
getVitaminB12
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminC
(
this
.
getVitaminC
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminD
(
this
.
getVitaminD
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminE
(
this
.
getVitaminE
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminH
(
this
.
getVitaminH
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setVitaminK
(
this
.
getVitaminK
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
this
.
setCholine
(
this
.
getCholine
().
multiply
(
BigDecimal
.
valueOf
(
0.01
)).
multiply
(
gram
).
multiply
(
edibleRatio
));
}
}
/**
* 烹饪步骤
*/
@Data
public
static
class
CookingStep
implements
Serializable
{
/**
* 标题
*/
private
String
title
;
/**
* 内容
*/
private
String
content
;
/**
* 图片key
*/
private
String
imageKey
;
@Transient
@JsonSerialize
(
using
=
QiniuKeyToUrlJsonSerialize
.
class
)
private
String
imageKeyUrl
;
public
String
getImageKeyUrl
()
{
return
this
.
imageKey
;
}
}
/**
* 矿物质信息
*/
@Data
public
static
class
Mineral
implements
Serializable
{
/**
* 钙
*/
private
BigDecimal
calcium
;
/**
* 磷
*/
private
BigDecimal
phosphorus
;
/**
* 钾
*/
private
BigDecimal
potassium
;
/**
* 钠
*/
private
BigDecimal
sodium
;
/**
* 镁
*/
private
BigDecimal
magnesium
;
/**
* 铜
*/
private
BigDecimal
copper
;
/**
* 铁
*/
private
BigDecimal
iron
;
/**
* 锌
*/
private
BigDecimal
zinc
;
/**
* 锰
*/
private
BigDecimal
manganese
;
/**
* 碘
*/
private
BigDecimal
iodine
;
/**
* 铬
*/
private
BigDecimal
chromium
;
/**
* 氟(生物素、维生素B7)
*/
private
BigDecimal
fluorine
;
/**
* 硒
*/
private
BigDecimal
selenium
;
/**
* 处理数据 加上克数换算和可食部系数
*
* @param gram 克数
* @param edibleRatio 可食部系数
*/
public
void
execData
(
BigDecimal
gram
,
BigDecimal
edibleRatio
)
{
this
.
setCalcium
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getCalcium
(),
gram
,
edibleRatio
));
this
.
setPhosphorus
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getPhosphorus
(),
gram
,
edibleRatio
));
this
.
setPotassium
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getPotassium
(),
gram
,
edibleRatio
));
this
.
setSodium
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getSodium
(),
gram
,
edibleRatio
));
this
.
setMagnesium
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getMagnesium
(),
gram
,
edibleRatio
));
this
.
setCopper
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getCopper
(),
gram
,
edibleRatio
));
this
.
setIron
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getIron
(),
gram
,
edibleRatio
));
this
.
setZinc
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getZinc
(),
gram
,
edibleRatio
));
this
.
setManganese
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getManganese
(),
gram
,
edibleRatio
));
this
.
setIodine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getIodine
(),
gram
,
edibleRatio
));
this
.
setChromium
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getChromium
(),
gram
,
edibleRatio
));
this
.
setFluorine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getFluorine
(),
gram
,
edibleRatio
));
this
.
setSelenium
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getSelenium
(),
gram
,
edibleRatio
));
}
}
/**
* 氨基酸信息
*/
@Data
public
static
class
AminoAcid
implements
Serializable
{
/**
* 异亮氨酸
*/
private
BigDecimal
isoleucine
;
/**
* 亮氨酸
*/
private
BigDecimal
leucine
;
/**
* 赖氨酸
*/
private
BigDecimal
lysine
;
/**
* 蛋氨酸
*/
private
BigDecimal
methionine
;
/**
* 胱氨酸
*/
private
BigDecimal
cysteine
;
/**
* 苯丙氨酸
*/
private
BigDecimal
phenylalanine
;
/**
* 酪氨酸
*/
private
BigDecimal
tyrosine
;
/**
* 苏氨酸
*/
private
BigDecimal
threonine
;
/**
* 色氨酸
*/
private
BigDecimal
tryptophan
;
/**
* 缬氨酸
*/
private
BigDecimal
valine
;
/**
* 精氨酸
*/
private
BigDecimal
arginine
;
/**
* 组氨酸
*/
private
BigDecimal
histidine
;
/**
* 丙氨酸
*/
private
BigDecimal
alanine
;
/**
* 天冬氨酸
*/
private
BigDecimal
asparticAcid
;
/**
* 谷氨酸
*/
private
BigDecimal
glutamicAcid
;
/**
* 甘氨酸
*/
private
BigDecimal
glycine
;
/**
* 脯氨酸
*/
private
BigDecimal
proline
;
/**
* 丝氨酸
*/
private
BigDecimal
serine
;
/**
* 处理数据 加上克数换算和可食部系数
*
* @param gram 克数
* @param edibleRatio 可食部系数
*/
public
void
execData
(
BigDecimal
gram
,
BigDecimal
edibleRatio
)
{
this
.
setIsoleucine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getIsoleucine
(),
gram
,
edibleRatio
));
this
.
setLeucine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getLeucine
(),
gram
,
edibleRatio
));
this
.
setLysine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getLysine
(),
gram
,
edibleRatio
));
this
.
setMethionine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getMethionine
(),
gram
,
edibleRatio
));
this
.
setCysteine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getCysteine
(),
gram
,
edibleRatio
));
this
.
setPhenylalanine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getPhenylalanine
(),
gram
,
edibleRatio
));
this
.
setTyrosine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getTyrosine
(),
gram
,
edibleRatio
));
this
.
setThreonine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getThreonine
(),
gram
,
edibleRatio
));
this
.
setTryptophan
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getTryptophan
(),
gram
,
edibleRatio
));
this
.
setValine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getValine
(),
gram
,
edibleRatio
));
this
.
setArginine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getArginine
(),
gram
,
edibleRatio
));
this
.
setHistidine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getHistidine
(),
gram
,
edibleRatio
));
this
.
setAlanine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getAlanine
(),
gram
,
edibleRatio
));
this
.
setAsparticAcid
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getAsparticAcid
(),
gram
,
edibleRatio
));
this
.
setGlutamicAcid
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getGlutamicAcid
(),
gram
,
edibleRatio
));
this
.
setGlycine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getGlycine
(),
gram
,
edibleRatio
));
this
.
setProline
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getProline
(),
gram
,
edibleRatio
));
this
.
setSerine
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getSerine
(),
gram
,
edibleRatio
));
}
}
/**
* 脂肪酸信息
*/
@Data
public
static
class
FattyAcid
implements
Serializable
{
/**
* 总脂肪酸
*/
private
BigDecimal
totalFattyAcid
;
/**
* 饱和脂肪酸
*/
private
BigDecimal
saturatedFattyAcid
;
/**
* 单不饱和脂肪酸
*/
private
BigDecimal
monounsaturatedFattyAcid
;
/**
* 多不饱和脂肪酸
*/
private
BigDecimal
polyunsaturatedFattyAcid
;
/**
* 饱和脂肪酸/总脂肪酸
*/
private
BigDecimal
sfaPercent
;
/**
* 单不饱和脂肪酸/总脂肪酸
*/
private
BigDecimal
mfaPercent
;
/**
* 多不饱和脂肪酸/总脂肪酸
*/
private
BigDecimal
pfaPercent
;
/**
* 处理数据 加上克数换算和可食部系数
*
* @param gram 克数
* @param edibleRatio 可食部系数
*/
public
void
execData
(
BigDecimal
gram
,
BigDecimal
edibleRatio
)
{
this
.
setTotalFattyAcid
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getTotalFattyAcid
(),
gram
,
edibleRatio
));
this
.
setSaturatedFattyAcid
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getSaturatedFattyAcid
(),
gram
,
edibleRatio
));
this
.
setMonounsaturatedFattyAcid
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getMonounsaturatedFattyAcid
(),
gram
,
edibleRatio
));
this
.
setPolyunsaturatedFattyAcid
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getPolyunsaturatedFattyAcid
(),
gram
,
edibleRatio
));
//modify by yangsongbo 百分比不需要按照质量进行换算
// this.setSfaPercent(NumberUtil.mul(BigDecimal.valueOf(0.01),this.getSfaPercent(),gram,edibleRatio));
// this.setMfaPercent(NumberUtil.mul(BigDecimal.valueOf(0.01),this.getMfaPercent(),gram,edibleRatio));
// this.setPfaPercent(NumberUtil.mul(BigDecimal.valueOf(0.01),this.getPfaPercent(),gram,edibleRatio));
}
}
/**
* 植物化学信息
*/
@Data
public
static
class
Phytochemical
implements
Serializable
{
/**
* 植物淄醇
*/
private
BigDecimal
phytosterol
;
/**
* 胡萝卜素
*/
private
BigDecimal
carotene
;
/**
* 叶黄素和玉米黄素
*/
private
BigDecimal
luteinZeaxanthin
;
/**
* 类黄酮
*/
private
Flavonoid
flavonoid
;
/**
* 大豆异黄酮
*/
private
Isoflavone
isoflavone
;
/**
* 花青素
*/
private
Anthocyanidin
anthocyanidin
;
/**
* 白藜芦醇
*/
private
Resveratrol
resveratrol
;
/**
* 处理数据 加上克数换算和可食部系数
*
* @param gram 克数
* @param edibleRatio 可食部系数
*/
public
void
execData
(
BigDecimal
gram
,
BigDecimal
edibleRatio
)
{
this
.
setPhytosterol
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getPhytosterol
(),
gram
,
edibleRatio
));
this
.
setCarotene
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getCarotene
(),
gram
,
edibleRatio
));
this
.
setLuteinZeaxanthin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
this
.
getLuteinZeaxanthin
(),
gram
,
edibleRatio
));
Flavonoid
flavonoid
=
this
.
getFlavonoid
();
flavonoid
.
setQuercetin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
flavonoid
.
getQuercetin
(),
gram
,
edibleRatio
));
flavonoid
.
setMyricetin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
flavonoid
.
getMyricetin
(),
gram
,
edibleRatio
));
flavonoid
.
setLuteolin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
flavonoid
.
getLuteolin
(),
gram
,
edibleRatio
));
flavonoid
.
setKaemPferol
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
flavonoid
.
getKaemPferol
(),
gram
,
edibleRatio
));
flavonoid
.
setApigenin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
flavonoid
.
getApigenin
(),
gram
,
edibleRatio
));
Isoflavone
isoflavone
=
this
.
getIsoflavone
();
isoflavone
.
setDaidzein
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
isoflavone
.
getDaidzein
(),
gram
,
edibleRatio
));
isoflavone
.
setGlycitein
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
isoflavone
.
getGlycitein
(),
gram
,
edibleRatio
));
isoflavone
.
setGenistein
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
isoflavone
.
getGenistein
(),
gram
,
edibleRatio
));
Anthocyanidin
anthocyanidin
=
this
.
getAnthocyanidin
();
anthocyanidin
.
setDelphinidin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
anthocyanidin
.
getDelphinidin
(),
gram
,
edibleRatio
));
anthocyanidin
.
setCyamidin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
anthocyanidin
.
getCyamidin
(),
gram
,
edibleRatio
));
anthocyanidin
.
setPeonidin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
anthocyanidin
.
getPeonidin
(),
gram
,
edibleRatio
));
Resveratrol
resveratrol
=
this
.
getResveratrol
();
resveratrol
.
setResveratrol
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
resveratrol
.
getResveratrol
(),
gram
,
edibleRatio
));
resveratrol
.
setPolydatin
(
NumberUtil
.
mul
(
BigDecimal
.
valueOf
(
0.01
),
resveratrol
.
getPolydatin
(),
gram
,
edibleRatio
));
}
public
Flavonoid
getFlavonoid
()
{
if
(
this
.
flavonoid
==
null
)
{
return
new
Flavonoid
();
}
return
this
.
flavonoid
;
}
public
Isoflavone
getIsoflavone
()
{
if
(
this
.
isoflavone
==
null
)
{
return
new
Isoflavone
();
}
return
this
.
isoflavone
;
}
public
Anthocyanidin
getAnthocyanidin
()
{
if
(
this
.
anthocyanidin
==
null
)
{
return
new
Anthocyanidin
();
}
return
this
.
anthocyanidin
;
}
public
Resveratrol
getResveratrol
()
{
if
(
this
.
resveratrol
==
null
)
{
return
new
Resveratrol
();
}
return
this
.
resveratrol
;
}
}
/**
* 类黄酮信息
*/
@Data
public
static
class
Flavonoid
implements
Serializable
{
/**
* 槲皮素
*/
private
BigDecimal
quercetin
;
/**
* 杨梅黄酮
*/
private
BigDecimal
myricetin
;
/**
* 玉米黄酮
*/
private
BigDecimal
luteolin
;
/**
* 坎二菲醇
*/
private
BigDecimal
kaemPferol
;
/**
* 芹菜配基
*/
private
BigDecimal
apigenin
;
}
/**
* 大豆异黄酮信息
*/
@Data
public
static
class
Isoflavone
implements
Serializable
{
/**
* 黄豆苷元
*/
private
BigDecimal
daidzein
;
/**
* 黄豆黄素
*/
private
BigDecimal
glycitein
;
/**
* 染料木黄酮
*/
private
BigDecimal
genistein
;
}
/**
* 花青素信息
*/
@Data
public
static
class
Anthocyanidin
implements
Serializable
{
/**
* 飞燕草素
*/
private
BigDecimal
delphinidin
;
/**
* 矢车菊素
*/
private
BigDecimal
cyamidin
;
/**
* 芍药素
*/
private
BigDecimal
peonidin
;
}
/**
* 白藜芦醇
*/
@Data
public
static
class
Resveratrol
implements
Serializable
{
/**
* 白藜芦醇
*/
private
BigDecimal
resveratrol
;
/**
* 白藜芦醇苷
*/
private
BigDecimal
polydatin
;
}
}
src/main/java/com/june/entitytodbdoc/Starter.java
View file @
26b592c4
...
@@ -27,6 +27,7 @@ public class Starter {
...
@@ -27,6 +27,7 @@ public class Starter {
.
parallelStream
().
map
(
GetClassCommentUtils:
:
execute
)
.
parallelStream
().
map
(
GetClassCommentUtils:
:
execute
)
.
filter
(
Optional:
:
isPresent
)
.
filter
(
Optional:
:
isPresent
)
.
map
(
Optional:
:
get
)
.
map
(
Optional:
:
get
)
.
distinct
()
.
sorted
(
Comparator
.
comparing
(
DocumentInfoDTO:
:
getDocumentName
))
.
sorted
(
Comparator
.
comparing
(
DocumentInfoDTO:
:
getDocumentName
))
.
flatMap
(
dto
->
MarkdownUtils
.
getOneDocumentContent
(
dto
).
stream
())
.
flatMap
(
dto
->
MarkdownUtils
.
getOneDocumentContent
(
dto
).
stream
())
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
...
src/main/java/com/june/entitytodbdoc/dto/DocumentInfoDTO.java
View file @
26b592c4
...
@@ -90,5 +90,24 @@ public class DocumentInfoDTO {
...
@@ -90,5 +90,24 @@ public class DocumentInfoDTO {
this
.
describe
=
describe
;
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