!352 解决食谱日期天数连续问题

Merge pull request !352 from 德仔/xzj
This commit is contained in:
德仔 2021-08-17 10:44:01 +00:00 committed by Gitee
commit 11d9b5ded1
8 changed files with 139 additions and 27 deletions

View File

@ -1,8 +1,13 @@
package com.stdiet.web.controller.custom;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.stdiet.common.utils.HealthyUtils;
import com.stdiet.common.utils.NumberUtils;
import com.stdiet.common.utils.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -62,11 +67,65 @@ public class SysPreSaleSurveyController extends BaseController
@GetMapping("/export")
public AjaxResult export(SysPreSaleSurvey sysPreSaleSurvey)
{
sysPreSaleSurvey.setQuestionType(1);
List<SysPreSaleSurvey> list = sysPreSaleSurveyService.selectSysPreSaleSurveyList(sysPreSaleSurvey);
if(list != null && list.size() > 0){
List<Map<String,Object>> signResult = sysPreSaleSurveyService.getDictLabelByIds("simple_sign_type", null);
List<Map<String,Object>> moistureResult = sysPreSaleSurveyService.getDictLabelByIds("moisture_data_extended", null);
List<Map<String,Object>> bloodResult = sysPreSaleSurveyService.getDictLabelByIds("blood_data_extended", null);
for (SysPreSaleSurvey survey : list) {
//计算标准体重
survey.setStandardWeight(HealthyUtils.calculateStandardWeightByBMI(survey.getTall(), survey.getAge(), survey.getSex()));
//计算超重
survey.setOverWeight(NumberUtils.getNumberByRoundHalfUp(survey.getWeight().doubleValue() - survey.getStandardWeight(),2).doubleValue());
//作息时间
if(StringUtils.isNotEmpty(survey.getTimeTable())){
String [] timeTableArray = survey.getTimeTable().split(",");
String timeTable = timeTableArray.length > 0 ? "睡觉:" + timeTableArray[0] : "";
timeTable += timeTableArray.length > 1 ? ",起床:" + timeTableArray[1] : "";
survey.setTimeTable(timeTable);
}
//隐藏手机号
if(StringUtils.isNotEmpty(survey.getPhone())){
survey.setPhone(StringUtils.hiddenPhoneNumber(survey.getPhone()));
}
//获取病史
if(StringUtils.isNotEmpty(survey.getPhysicalSignsId())){
List<String> result = getDictLabelByIds(signResult, survey.getPhysicalSignsId());
System.out.println(StringUtils.join(result, ";"));
survey.setPhysicalSigns(result.size() > 0 ? (StringUtils.join(result, ";") + ";" + survey.getOtherPhysicalSigns()) : survey.getOtherPhysicalSigns());
}else{
survey.setPhysicalSigns(survey.getOtherPhysicalSigns());
}
//获取湿气
if(StringUtils.isNotEmpty(survey.getMoistureData())){
List<String> result = getDictLabelByIds(moistureResult, survey.getMoistureData());
survey.setMoistureData(result.size() > 0 ? StringUtils.join(result, ";") : "");
}
//获取气血
if(StringUtils.isNotEmpty(survey.getBloodData())){
List<String> result = getDictLabelByIds(bloodResult, survey.getBloodData());
survey.setBloodData(result.size() > 0 ? StringUtils.join(result, ";") : "");
}
}
}
ExcelUtil<SysPreSaleSurvey> util = new ExcelUtil<SysPreSaleSurvey>(SysPreSaleSurvey.class);
return util.exportExcel(list, "preSaleSurvey");
}
public List<String> getDictLabelByIds(List<Map<String, Object>> dictResult, String dictValue){
List<String> result = new ArrayList<>();
if(dictResult != null && dictResult.size() > 0){
List<String> dictValueArray = Arrays.asList(dictValue.split(","));
for (Map<String, Object> map : dictResult) {
if(dictValueArray.contains(map.get("dictValue"))){
result.add(String.valueOf(map.get("dictLabel")));
}
}
}
return result;
}
/**
* 获取简易问卷调查详细信息
*/

View File

@ -1,10 +1,12 @@
package com.stdiet.custom.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.stdiet.common.annotation.Excel;
import com.stdiet.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 售前调查销售给客户发送简易信息调查链接对象 sys_pre_sale_survey
@ -21,39 +23,53 @@ public class SysPreSaleSurvey extends BaseEntity
private Long id;
/** 客户唯一标识 */
@Excel(name = "客户唯一标识")
//@Excel(name = "客户唯一标识")
private String customerKey;
/** 姓名 */
@Excel(name = "姓名")
private String name;
/** 身高,厘米 */
@Excel(name = "身高,厘米")
private Integer tall;
/** 体重 */
@Excel(name = "体重")
private BigDecimal weight;
/** 年龄 */
@Excel(name = "年龄")
private Integer age;
/** 0男 1女 */
@Excel(name = "0男 1")
@Excel(name = "性别", readConverterExp = "0=男,1=女")
private Integer sex;
/** 身高,厘米 */
@Excel(name = "身高(厘米)")
private Integer tall;
/** 体重 */
@Excel(name = "体重(斤)")
private BigDecimal weight;
/**
* 标准体重
*/
@Excel(name = "标准体重")
private Double standardWeight;
/**
* 标准体重
*/
@Excel(name = "超重")
private Double overWeight ;
/** 电话 */
@Excel(name = "电话")
private String phone;
/** 特殊体征ID */
@Excel(name = "特殊体征ID")
private String physicalSignsId;
/** 特殊体征ID */
@Excel(name = "特殊体征")
private String physicalSigns;
/** 其他体征 */
@Excel(name = "其他体征")
private String otherPhysicalSigns;
/** 作息时间 */
@ -61,34 +77,32 @@ public class SysPreSaleSurvey extends BaseEntity
private String timeTable;
/** 减脂或慢病调理经历 */
@Excel(name = "减脂或慢病调理经历")
@Excel(name = "调理经历")
private String experience;
/** 职业 */
@Excel(name = "职业")
private String occupation;
/** 气血数据 */
@Excel(name = "气血数据")
private String bloodData;
/** 湿气数据 */
@Excel(name = "湿气数据")
private String moistureData;
/** 气血数据 */
@Excel(name = "气血数据")
private String bloodData;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
@Excel(name = "创建时间",dateFormat="yyyy-MM-dd HH:mm")
private Date createTime;
/** 售前ID */
@Excel(name = "售前ID")
private Long preSaleId;
/** 问卷类型 0售前简易问卷 1简易评估问卷 */
@Excel(name = "问卷类型 0售前简易问卷 1简易评估问卷")
private Integer questionType;
/** 删除标识 0未删除 1已删除 */
private Integer delFlag;
/**
* 标准体重
*/
private Double standardWeight;
}

View File

@ -1,6 +1,8 @@
package com.stdiet.custom.mapper;
import java.util.List;
import java.util.Map;
import com.stdiet.custom.domain.SysPreSaleSurvey;
import org.apache.ibatis.annotations.Param;
@ -65,4 +67,12 @@ public interface SysPreSaleSurveyMapper
* @return
*/
public SysPreSaleSurvey getSysPreSaleSurveyByKey(@Param("customerKey")String customerKey);
/**
* 查询字典Label值
* @param dictType
* @param dictValue
* @return
*/
public List<Map<String,Object>> getDictLabelByIds(@Param("dictType")String dictType, @Param("dictValue")String dictValue);
}

View File

@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map;
import com.stdiet.custom.domain.SysPreSaleSurvey;
import org.apache.ibatis.annotations.Param;
/**
* 售前调查销售给客户发送简易信息调查链接Service接口
@ -66,4 +67,12 @@ public interface ISysPreSaleSurveyService
* @return
*/
public SysPreSaleSurvey getSysPreSaleSurveyByKey(String customerKey);
/**
* 查询字典Label值
* @param dictType
* @param dictValue
* @return
*/
public List<Map<String,Object>> getDictLabelByIds(String dictType, String dictValue);
}

View File

@ -7,6 +7,7 @@ import java.util.Map;
import com.stdiet.common.utils.DateUtils;
import com.stdiet.common.utils.HealthyUtils;
import com.stdiet.custom.utils.NutritionalUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.stdiet.custom.mapper.SysPreSaleSurveyMapper;
@ -107,4 +108,15 @@ public class SysPreSaleSurveyServiceImpl implements ISysPreSaleSurveyService
public SysPreSaleSurvey getSysPreSaleSurveyByKey(String customerKey){
return sysPreSaleSurveyMapper.getSysPreSaleSurveyByKey(customerKey);
}
/**
* 查询字典Label值
* @param dictType
* @param dictValue
* @return
*/
@Override
public List<Map<String,Object>> getDictLabelByIds(String dictType, String dictValue){
return sysPreSaleSurveyMapper.getDictLabelByIds(dictType, dictValue);
}
}

View File

@ -145,4 +145,12 @@
where del_flag = 0 and customer_key = #{customerKey} limit 1
</select>
<!-- 根据字典ID(可以使用隔开的多个ID)获取对应字典值 -->
<select id="getDictLabelByIds" parameterType="String" resultType="Map">
select dict_label as dictLabel,dict_value as dictValue from sys_dict_data where status = '0' and dict_type = #{dictType}
<if test="dictValue != null and dictValue != ''">
and FIND_IN_SET(dict_value, #{dictValue})
</if>
</select>
</mapper>

View File

@ -73,7 +73,7 @@
select srp.*
from sys_recipes_plan srp
left join sys_order so on so.order_id = srp.order_id and so.del_flag = 0
where srp.cus_id = #{customerId} and srp.del_flag = 0 and #{orderTime} > so.order_time order by srp.end_num_day DESC limit 1
where srp.cus_id = #{customerId} and srp.del_flag = 0 and #{orderTime} > so.order_time order by so.order_time DESC,srp.end_num_day DESC limit 1
</select>
<insert id="insertSysRecipesPlan" parameterType="SysRecipesPlan" useGeneratedKeys="true" keyProperty="id">

View File

@ -86,7 +86,7 @@
v-hasPermi="['custom:preSaleSurvey:remove']"
>删除</el-button>
</el-col>
<!--<el-col :span="1.5">
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
@ -94,7 +94,7 @@
@click="handleExport"
v-hasPermi="['custom:preSaleSurvey:export']"
>导出</el-button>
</el-col>-->
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>