食谱计划页面、逻辑优化
This commit is contained in:
parent
072b0a1f36
commit
5588aa2e4c
@ -7,18 +7,13 @@ import com.stdiet.common.utils.StringUtils;
|
||||
import com.stdiet.custom.domain.SysPhysicalSigns;
|
||||
|
||||
import com.stdiet.common.utils.bean.ObjectUtils;
|
||||
import com.stdiet.custom.domain.SysRecipesPlan;
|
||||
import com.stdiet.custom.dto.request.CustomerInvestigateRequest;
|
||||
import com.stdiet.custom.dto.response.CustomerListResponse;
|
||||
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.stdiet.common.annotation.Log;
|
||||
import com.stdiet.common.core.controller.BaseController;
|
||||
import com.stdiet.common.core.domain.AjaxResult;
|
||||
@ -146,4 +141,19 @@ public class SysCustomerController extends BaseController
|
||||
{
|
||||
return toAjax(sysCustomerService.delCustomerAndSignById(ids));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据手机号查看用户体征
|
||||
*/
|
||||
@GetMapping("/getCustomerAndSignByPhone")
|
||||
@PreAuthorize("@ss.hasPermi('custom:customer:query')")
|
||||
public AjaxResult getCustomerAndSignByPhone(@RequestParam("phone")String phone)
|
||||
{
|
||||
SysCustomer sysCustomer = null;
|
||||
if(StringUtils.isNotEmpty(phone)){
|
||||
sysCustomer = sysCustomerService.selectSysCustomerAndSignByPhone(phone);
|
||||
}
|
||||
return AjaxResult.success(sysCustomer);
|
||||
}
|
||||
}
|
@ -137,6 +137,45 @@ public class SysOrderController extends OrderBaseController {
|
||||
return AjaxResult.success(sysOrderService.selectSysOrderById(orderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取销售订单详细信息(列出所有营养师、助理等名称)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('custom:order:query')")
|
||||
@GetMapping(value = "/getInfoDetail")
|
||||
public AjaxResult getInfoDetail(@RequestParam("orderId") Long orderId) {
|
||||
SysOrder order = sysOrderService.selectSysOrderById(orderId);
|
||||
if(order != null){
|
||||
List<SysUser> userList = userService.selectAllUser();
|
||||
for(SysUser user : userList){
|
||||
if (user.getUserId().equals(order.getPreSaleId())) {
|
||||
order.setPreSale(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getAfterSaleId())) {
|
||||
order.setAfterSale(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getNutritionistId())) {
|
||||
order.setNutritionist(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getNutriAssisId())) {
|
||||
order.setNutriAssis(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getOperatorId())) {
|
||||
order.setOperator(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getPlannerId())) {
|
||||
order.setPlanner(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getPlannerAssisId())) {
|
||||
order.setPlannerAssis(user.getNickName());
|
||||
}
|
||||
if (user.getUserId().equals(order.getOperatorAssisId())) {
|
||||
order.setOperatorAssis(user.getNickName());
|
||||
}
|
||||
}
|
||||
}
|
||||
return AjaxResult.success(order);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增销售订单
|
||||
*/
|
||||
|
@ -3,14 +3,7 @@ package com.stdiet.web.controller.custom;
|
||||
import java.util.List;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.stdiet.common.annotation.Log;
|
||||
import com.stdiet.common.core.controller.BaseController;
|
||||
import com.stdiet.common.core.domain.AjaxResult;
|
||||
@ -41,10 +34,31 @@ public class SysRecipesPlanController extends BaseController
|
||||
public TableDataInfo list(SysRecipesPlan sysRecipesPlan)
|
||||
{
|
||||
startPage();
|
||||
List<SysRecipesPlan> list = sysRecipesPlanService.selectSysRecipesPlanList(sysRecipesPlan);
|
||||
List<SysRecipesPlan> list = sysRecipesPlanService.selectPlanListByCondition(sysRecipesPlan);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取食谱计划详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('recipes:recipesPlan:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return AjaxResult.success(sysRecipesPlanService.selectSysRecipesPlanById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改食谱计划
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('recipes:recipesPlan:edit')")
|
||||
@Log(title = "食谱计划", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody SysRecipesPlan sysRecipesPlan)
|
||||
{
|
||||
return toAjax(sysRecipesPlanService.updateSysRecipesPlan(sysRecipesPlan));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出食谱计划列表
|
||||
*/
|
||||
@ -53,7 +67,7 @@ public class SysRecipesPlanController extends BaseController
|
||||
@GetMapping("/export")
|
||||
public AjaxResult export(SysRecipesPlan sysRecipesPlan)
|
||||
{
|
||||
List<SysRecipesPlan> list = sysRecipesPlanService.selectSysRecipesPlanList(sysRecipesPlan);
|
||||
List<SysRecipesPlan> list = sysRecipesPlanService.selectPlanListByCondition(sysRecipesPlan);
|
||||
ExcelUtil<SysRecipesPlan> util = new ExcelUtil<SysRecipesPlan>(SysRecipesPlan.class);
|
||||
return util.exportExcel(list, "recipesPlan");
|
||||
}
|
||||
|
@ -21,9 +21,16 @@ public class SysRecipesPlan extends BaseEntity
|
||||
private Long id;
|
||||
|
||||
/** 订单ID */
|
||||
@Excel(name = "订单ID")
|
||||
//@Excel(name = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
//非持久化字段,客户姓名
|
||||
@Excel(name = "客户姓名")
|
||||
private String customer;
|
||||
|
||||
//非持久化字段,客户手机号
|
||||
private String phone;
|
||||
|
||||
/** 食谱开始日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "食谱开始日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@ -34,12 +41,34 @@ public class SysRecipesPlan extends BaseEntity
|
||||
@Excel(name = "食谱结束日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endDate;
|
||||
|
||||
//非持久化字段,服务开始时间
|
||||
//@Excel(name = "服务开始时间", dateFormat = "yyyy-MM-dd")
|
||||
private Date orderStartDate;
|
||||
|
||||
//非持久化字段,服务结束时间
|
||||
//@Excel(name = "服务结束时间", dateFormat = "yyyy-MM-dd")
|
||||
private Date orderEndDate;
|
||||
|
||||
//非持久化字段,营养师ID
|
||||
private Long nutritionistId;
|
||||
|
||||
//非持久化字段,营养师姓名
|
||||
@Excel(name = "营养师")
|
||||
private String nutritionist;
|
||||
|
||||
//非持久化字段,营养师助理ID
|
||||
private Long nutritionistAssisId;
|
||||
|
||||
//非持久化字段,营养师助理姓名
|
||||
@Excel(name = "营养师助理")
|
||||
private String nutritionistAssis;
|
||||
|
||||
/** 食谱ID */
|
||||
@Excel(name = "食谱ID")
|
||||
//@Excel(name = "食谱ID")
|
||||
private Long recipesId;
|
||||
|
||||
/** 食谱是否发送,0未发送 1已发送 */
|
||||
@Excel(name = "食谱是否发送,0未发送 1已发送")
|
||||
@Excel(name = "食谱是否发送", readConverterExp="0=未发送,1=已发送")
|
||||
private Integer sendFlag;
|
||||
|
||||
/** 食谱发送时间 */
|
||||
@ -123,6 +152,70 @@ public class SysRecipesPlan extends BaseEntity
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public String getCustomer() {
|
||||
return customer;
|
||||
}
|
||||
|
||||
public void setCustomer(String customer) {
|
||||
this.customer = customer;
|
||||
}
|
||||
|
||||
public Long getNutritionistId() {
|
||||
return nutritionistId;
|
||||
}
|
||||
|
||||
public void setNutritionistId(Long nutritionistId) {
|
||||
this.nutritionistId = nutritionistId;
|
||||
}
|
||||
|
||||
public String getNutritionist() {
|
||||
return nutritionist;
|
||||
}
|
||||
|
||||
public void setNutritionist(String nutritionist) {
|
||||
this.nutritionist = nutritionist;
|
||||
}
|
||||
|
||||
public Long getNutritionistAssisId() {
|
||||
return nutritionistAssisId;
|
||||
}
|
||||
|
||||
public void setNutritionistAssisId(Long nutritionistAssisId) {
|
||||
this.nutritionistAssisId = nutritionistAssisId;
|
||||
}
|
||||
|
||||
public String getNutritionistAssis() {
|
||||
return nutritionistAssis;
|
||||
}
|
||||
|
||||
public void setNutritionistAssis(String nutritionistAssis) {
|
||||
this.nutritionistAssis = nutritionistAssis;
|
||||
}
|
||||
|
||||
public Date getOrderStartDate() {
|
||||
return orderStartDate;
|
||||
}
|
||||
|
||||
public void setOrderStartDate(Date orderStartDate) {
|
||||
this.orderStartDate = orderStartDate;
|
||||
}
|
||||
|
||||
public Date getOrderEndDate() {
|
||||
return orderEndDate;
|
||||
}
|
||||
|
||||
public void setOrderEndDate(Date orderEndDate) {
|
||||
this.orderEndDate = orderEndDate;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
|
@ -70,4 +70,11 @@ public interface SysCustomerMapper
|
||||
|
||||
//查询客户基础信息以及体征信息
|
||||
List<SysCustomer> selectSysCustomerAndSignList(SysCustomer sysCustomer);
|
||||
|
||||
/**
|
||||
* 根据手机号查询客户以及体征
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
SysCustomer selectSysCustomerAndSignByPhone(String phone);
|
||||
}
|
@ -66,4 +66,11 @@ public interface SysOrderPauseMapper
|
||||
* @return
|
||||
*/
|
||||
int getCountByOrderIdAndPauseDate(SysOrderPause sysOrderPause);
|
||||
|
||||
/**
|
||||
* 根据订单ID删除暂停记录
|
||||
* @param orderIds
|
||||
* @return
|
||||
*/
|
||||
int deletePauseByOrderId(Long[] orderIds);
|
||||
}
|
@ -68,8 +68,15 @@ public interface SysRecipesPlanMapper
|
||||
|
||||
/**
|
||||
* 根据订单ID删除对应食谱计划
|
||||
* @param orderId
|
||||
* @param orderIds
|
||||
* @return
|
||||
*/
|
||||
int delRecipesPlanByOrderId(Long orderId);
|
||||
int delRecipesPlanByOrderId(Long[] orderIds);
|
||||
|
||||
/**
|
||||
* 多条件查询食谱计划列表
|
||||
* @param sysRecipesPlan
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan);
|
||||
}
|
@ -93,4 +93,11 @@ public interface ISysCustomerService
|
||||
SysCustomer getCustomerAndSignById(Long id);
|
||||
|
||||
int delCustomerAndSignById(Long[] ids);
|
||||
|
||||
/**
|
||||
* 根据手机号查询客户以及体征
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
SysCustomer selectSysCustomerAndSignByPhone(String phone);
|
||||
}
|
@ -65,4 +65,11 @@ public interface ISysOrderPauseService
|
||||
* @return
|
||||
*/
|
||||
int getCountByOrderIdAndPauseDate(SysOrderPause sysOrderPause);
|
||||
|
||||
/**
|
||||
* 根据订单ID删除暂停记录
|
||||
* @param orderIds
|
||||
* @return
|
||||
*/
|
||||
int deletePauseByOrderId(Long[] orderIds);
|
||||
}
|
@ -69,9 +69,10 @@ public interface ISysOrderService
|
||||
public BigDecimal selectAllOrderAmount(SysOrder sysOrder);
|
||||
|
||||
/**
|
||||
* 根据订单ID更新该订单的服务到期时间
|
||||
* @param orderId
|
||||
* 根据订单ID更新该订单的服务到期时间,异步更新食谱计划
|
||||
* @param orderId 订单ID
|
||||
* @param updatePlan 是否更新食谱
|
||||
* @return
|
||||
*/
|
||||
int updateOrderServerEndDate(Long orderId);
|
||||
int updateOrderServerEndDate(Long orderId, boolean updatePlan);
|
||||
}
|
@ -61,10 +61,23 @@ public interface ISysRecipesPlanService
|
||||
public int deleteSysRecipesPlanById(Long id);
|
||||
|
||||
/**
|
||||
* 根据订单ID生成对应的食谱计划
|
||||
*
|
||||
* 订单发生更新时(开始时间、服务时长、赠送时长),重新生成食谱计划
|
||||
* @param orderId 订单ID
|
||||
* @return 结果
|
||||
*/
|
||||
public void autoGenerateRecipesPlanByOrderId(Long orderId);
|
||||
public void regenerateRecipesPlan(Long orderId);
|
||||
|
||||
/**
|
||||
* 根据订单ID删除所有食谱安排计划
|
||||
* @param orderIds 订单ID
|
||||
* @return
|
||||
*/
|
||||
int delRecipesPlanByOrderId(Long[] orderIds);
|
||||
|
||||
/**
|
||||
* 多条件查询食谱计划列表
|
||||
* @param sysRecipesPlan
|
||||
* @return
|
||||
*/
|
||||
List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan);
|
||||
}
|
@ -178,4 +178,14 @@ public class SysCustomerServiceImpl implements ISysCustomerService
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据手机号查询客户以及体征
|
||||
* @param phone
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public SysCustomer selectSysCustomerAndSignByPhone(String phone){
|
||||
return sysCustomerMapper.selectSysCustomerAndSignByPhone(phone);
|
||||
}
|
||||
}
|
@ -7,6 +7,7 @@ import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.custom.domain.SysOrder;
|
||||
import com.stdiet.custom.service.ISysCommissionDayService;
|
||||
import com.stdiet.custom.service.ISysOrderService;
|
||||
import com.stdiet.custom.service.ISysRecipesPlanService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.stdiet.custom.mapper.SysOrderPauseMapper;
|
||||
@ -27,9 +28,6 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService
|
||||
@Autowired
|
||||
private SysOrderPauseMapper sysOrderPauseMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysCommissionDayService sysCommissionDayService;
|
||||
|
||||
@Autowired
|
||||
private ISysOrderService sysOrderService;
|
||||
|
||||
@ -69,7 +67,7 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService
|
||||
sysOrderPause.setCreateTime(DateUtils.getNowDate());
|
||||
if(sysOrderPauseMapper.insertSysOrderPause(sysOrderPause) > 0){
|
||||
//修改订单服务到期时间
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId());
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId(), true);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -85,7 +83,7 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService
|
||||
{
|
||||
sysOrderPause.setUpdateTime(DateUtils.getNowDate());
|
||||
if(sysOrderPauseMapper.updateSysOrderPause(sysOrderPause) > 0){
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId());
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId(), true);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -101,7 +99,7 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService
|
||||
{
|
||||
SysOrderPause sysOrderPause = selectSysOrderPauseById(ids[0]);
|
||||
if(sysOrderPause != null && sysOrderPauseMapper.deleteSysOrderPauseByIds(ids) > 0){
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId());
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId(), true);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -117,7 +115,7 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService
|
||||
{
|
||||
SysOrderPause sysOrderPause = selectSysOrderPauseById(id);
|
||||
if(sysOrderPause != null && sysOrderPauseMapper.deleteSysOrderPauseById(id) > 0){
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId());
|
||||
return sysOrderService.updateOrderServerEndDate(sysOrderPause.getOrderId(), true);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -127,7 +125,18 @@ public class SysOrderPauseServiceImpl implements ISysOrderPauseService
|
||||
* @param sysOrderPause
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int getCountByOrderIdAndPauseDate(SysOrderPause sysOrderPause){
|
||||
return sysOrderPauseMapper.getCountByOrderIdAndPauseDate(sysOrderPause);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID删除暂停记录
|
||||
* @param orderIds
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int deletePauseByOrderId(Long[] orderIds){
|
||||
return sysOrderPauseMapper.deletePauseByOrderId(orderIds);
|
||||
}
|
||||
}
|
@ -1,16 +1,14 @@
|
||||
package com.stdiet.custom.service.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.stdiet.common.utils.DateUtils;
|
||||
import com.stdiet.custom.domain.SysOrderCommisionDayDetail;
|
||||
import com.stdiet.custom.domain.SysOrderPause;
|
||||
import com.stdiet.custom.service.ISysCommissionDayService;
|
||||
import com.stdiet.custom.service.ISysOrderPauseService;
|
||||
import com.stdiet.custom.service.ISysRecipesPlanService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.stdiet.custom.mapper.SysOrderMapper;
|
||||
@ -33,6 +31,12 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
@Autowired
|
||||
private ISysCommissionDayService sysCommissionDayService;
|
||||
|
||||
@Autowired
|
||||
private ISysRecipesPlanService sysRecipesPlanService;
|
||||
|
||||
@Autowired
|
||||
private ISysOrderPauseService sysOrderPauseService;
|
||||
|
||||
/**
|
||||
* 查询销售订单
|
||||
*
|
||||
@ -65,11 +69,16 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
public int insertSysOrder(SysOrder sysOrder) {
|
||||
Date orderTime = DateUtils.getNowDate();
|
||||
sysOrder.setCreateTime(orderTime);
|
||||
// sysOrder.setOrderTime(orderTime);
|
||||
//sysOrder.setOrderTime(orderTime);
|
||||
//计算服务到期时间
|
||||
setOrderServerEndDate(sysOrder);
|
||||
sysOrder.setOrderId(Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, orderTime)));
|
||||
return sysOrderMapper.insertSysOrder(sysOrder);
|
||||
int row = sysOrderMapper.insertSysOrder(sysOrder);
|
||||
if(row > 0){
|
||||
//异步生成食谱计划
|
||||
sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -80,10 +89,40 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
*/
|
||||
@Override
|
||||
public int updateSysOrder(SysOrder sysOrder) {
|
||||
sysOrder.setUpdateTime(DateUtils.getNowDate());
|
||||
//获取旧订单对象
|
||||
SysOrder oldSysOrder = sysOrderMapper.selectSysOrderById(sysOrder.getOrderId());
|
||||
//计算服务到期时间
|
||||
setOrderServerEndDate(sysOrder);
|
||||
return sysOrderMapper.updateSysOrder(sysOrder);
|
||||
sysOrder.setUpdateTime(DateUtils.getNowDate());
|
||||
//更新订单
|
||||
int row = sysOrderMapper.updateSysOrder(sysOrder);
|
||||
if(row > 0){
|
||||
//异步更新食谱计划
|
||||
if(isNeedRegenerateRecipesPlan(oldSysOrder, sysOrder)){
|
||||
sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
}
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否需要重新生成食谱计划
|
||||
* @param oldSysOrder
|
||||
* @param newSysOrder
|
||||
* @return
|
||||
*/
|
||||
private boolean isNeedRegenerateRecipesPlan(SysOrder oldSysOrder, SysOrder newSysOrder){
|
||||
if(oldSysOrder.getServeTimeId() != null && newSysOrder.getServeTimeId() != null && oldSysOrder.getServeTimeId().intValue() != newSysOrder.getServeTimeId().intValue()){
|
||||
return true;
|
||||
}
|
||||
if(newSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay() != null && oldSysOrder.getGiveServeDay().intValue() != newSysOrder.getGiveServeDay().intValue()){
|
||||
return true;
|
||||
}
|
||||
if(oldSysOrder.getStartTime() != null && newSysOrder.getStartTime() != null
|
||||
&& ChronoUnit.DAYS.between(DateUtils.dateToLocalDate(oldSysOrder.getStartTime()), DateUtils.dateToLocalDate(newSysOrder.getStartTime())) != 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -94,7 +133,11 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
*/
|
||||
@Override
|
||||
public int deleteSysOrderByIds(Long[] orderIds) {
|
||||
return sysOrderMapper.deleteSysOrderByIds(orderIds);
|
||||
int row = sysOrderMapper.deleteSysOrderByIds(orderIds);
|
||||
if(row > 0){
|
||||
deletePauseAndPlan(orderIds);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -105,7 +148,13 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
*/
|
||||
@Override
|
||||
public int deleteSysOrderById(Long orderId) {
|
||||
return sysOrderMapper.deleteSysOrderById(orderId);
|
||||
int row = sysOrderMapper.deleteSysOrderById(orderId);
|
||||
if(row > 0){
|
||||
Long[] orderIdArray = new Long[1];
|
||||
orderIdArray[0] = orderId;
|
||||
deletePauseAndPlan(orderIdArray);
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -119,21 +168,27 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID更新该订单的服务到期时间
|
||||
* @param orderId
|
||||
* 根据订单ID更新该订单的服务到期时间,异步更新食谱计划
|
||||
* @param orderId 订单ID
|
||||
* @param updatePlan 是否更新食谱
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int updateOrderServerEndDate(Long orderId){
|
||||
public int updateOrderServerEndDate(Long orderId, boolean updatePlan){
|
||||
int row = 0;
|
||||
//更新订单服务到期时间
|
||||
SysOrder sysOrder = selectSysOrderById(orderId);
|
||||
if(sysOrder != null){
|
||||
//设置服务到期时间
|
||||
setOrderServerEndDate(sysOrder);
|
||||
sysOrder.setUpdateTime(new Date());
|
||||
return updateSysOrder(sysOrder);
|
||||
row = updateSysOrder(sysOrder);
|
||||
if(row > 0){
|
||||
//异步更新食谱计划
|
||||
sysRecipesPlanService.regenerateRecipesPlan(sysOrder.getOrderId());
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -143,4 +198,15 @@ public class SysOrderServiceImpl implements ISysOrderService {
|
||||
private void setOrderServerEndDate(SysOrder sysOrder){
|
||||
sysOrder.setServerEndTime(DateUtils.localDateToDate(sysCommissionDayService.getServerEndDate(sysOrder)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除订单的同时删除暂停记录、食谱计划安排
|
||||
* @param orderIds 订单ID集合
|
||||
*/
|
||||
private void deletePauseAndPlan(Long[] orderIds){
|
||||
//删除暂停记录
|
||||
sysOrderPauseService.deletePauseByOrderId(orderIds);
|
||||
//删除食谱计划
|
||||
sysRecipesPlanService.delRecipesPlanByOrderId(orderIds);
|
||||
}
|
||||
}
|
@ -91,6 +91,8 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
public int updateSysRecipesPlan(SysRecipesPlan sysRecipesPlan)
|
||||
{
|
||||
sysRecipesPlan.setUpdateTime(DateUtils.getNowDate());
|
||||
//目前只能修改发送状态,所以修改时加上发送时间
|
||||
sysRecipesPlan.setSendTime(DateUtils.getNowDate());
|
||||
return sysRecipesPlanMapper.updateSysRecipesPlan(sysRecipesPlan);
|
||||
}
|
||||
|
||||
@ -119,40 +121,50 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID生成对应的食谱计划
|
||||
* 异步方法,根据订单ID生成对应的食谱计划,退款订单不生成食谱计划
|
||||
*
|
||||
* @param orderId 订单ID
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Async("generateRecipesPlan")
|
||||
public void autoGenerateRecipesPlanByOrderId(Long orderId){
|
||||
@Async
|
||||
public void regenerateRecipesPlan(Long orderId){
|
||||
if(orderId == null || orderId <= 0){
|
||||
return;
|
||||
}
|
||||
SysOrder sysOrder = sysOrderService.selectSysOrderById(orderId);
|
||||
//订单为空、金额小于0不进行食谱生成、更新
|
||||
if(sysOrder == null){
|
||||
return;
|
||||
}
|
||||
try{
|
||||
//获取redis中该订单对应的锁
|
||||
if(synchrolockUtil.lock(String.format(generateRecipesPlanLockKey, orderId))){
|
||||
SysRecipesPlan queryParam = new SysRecipesPlan();
|
||||
queryParam.setOrderId(orderId);
|
||||
List<SysRecipesPlan> oldRecipesPlanList = sysRecipesPlanMapper.selectSysRecipesPlanList(queryParam);
|
||||
//判断是否已存在食谱
|
||||
if(oldRecipesPlanList != null && oldRecipesPlanList.size() > 0){
|
||||
Long[] orderIdArray = new Long[1];
|
||||
orderIdArray[0] = orderId;
|
||||
//删除该订单对于食谱
|
||||
sysRecipesPlanMapper.delRecipesPlanByOrderId(orderId);
|
||||
//订单服务开始时间、结束时间不能为空
|
||||
if(sysOrder.getStartTime() != null && sysOrder.getServerEndTime() != null){
|
||||
delRecipesPlanByOrderId(orderIdArray);
|
||||
}
|
||||
//判断订单金额、开始时间、结束时间,为空则直接返回,不重新生成食谱计划
|
||||
if(sysOrder.getAmount().floatValue() <= 0 || sysOrder.getStartTime() == null || sysOrder.getServerEndTime() == null){
|
||||
return;
|
||||
}
|
||||
SysOrderPause pauseParam = new SysOrderPause();
|
||||
pauseParam.setOrderId(sysOrder.getOrderId());
|
||||
//暂停记录列表
|
||||
List<SysOrderPause> pauseList = sysOrderPauseService.selectSysOrderPauseList(pauseParam);
|
||||
List<SysRecipesPlan> planList = generatePlan(orderId, DateUtils.dateToLocalDate(sysOrder.getStartTime()), DateUtils.dateToLocalDate(sysOrder.getServerEndTime()), pauseList);
|
||||
List<SysRecipesPlan> planList = generatePlan(orderId, oldRecipesPlanList, DateUtils.dateToLocalDate(sysOrder.getStartTime()), DateUtils.dateToLocalDate(sysOrder.getServerEndTime()), pauseList);
|
||||
if(planList != null && planList.size() > 0){
|
||||
sysRecipesPlanMapper.insertBatch(planList);
|
||||
}
|
||||
for (SysRecipesPlan sysRecipesPlan : planList) {
|
||||
/*for (SysRecipesPlan sysRecipesPlan : planList) {
|
||||
getTestDate(sysRecipesPlan.getStartDate(), sysRecipesPlan.getEndDate());
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
@ -174,23 +186,21 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
/**
|
||||
* 根据订单ID、订单开始服务时间、结束时间、暂停列表生成食谱计划列表
|
||||
* @param orderId 订单ID
|
||||
* @param oldRecipesPlanList 旧的食谱计划
|
||||
* @param serverStartDate 服务开始时间
|
||||
* @param serverEndDate 服务结束时间
|
||||
* @param pauseList 暂停列表
|
||||
* @return
|
||||
*/
|
||||
public List<SysRecipesPlan> generatePlan(Long orderId, LocalDate serverStartDate, LocalDate serverEndDate, List<SysOrderPause> pauseList){
|
||||
public List<SysRecipesPlan> generatePlan(Long orderId, List<SysRecipesPlan> oldRecipesPlanList, LocalDate serverStartDate, LocalDate serverEndDate, List<SysOrderPause> pauseList){
|
||||
List<SysRecipesPlan> planList = new ArrayList<>();
|
||||
boolean breakFlag = false;
|
||||
LocalDate planStartDate = serverStartDate;
|
||||
LocalDate planEndDate = planStartDate.plusDays(6);
|
||||
while (true){
|
||||
|
||||
SysRecipesPlan sysRecipesPlan = new SysRecipesPlan();
|
||||
//判断是否大于服务到期时间
|
||||
if(ChronoUnit.DAYS.between(planEndDate, serverEndDate) > 0){
|
||||
|
||||
}else{
|
||||
if(ChronoUnit.DAYS.between(planEndDate, serverEndDate) <= 0){
|
||||
planEndDate = serverEndDate;
|
||||
breakFlag = true;
|
||||
}
|
||||
@ -200,6 +210,17 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
sysRecipesPlan.setStartDate(DateUtils.localDateToDate(planStartDate));
|
||||
sysRecipesPlan.setEndDate(DateUtils.localDateToDate(planEndDate));
|
||||
sysRecipesPlan.setOrderId(orderId);
|
||||
/*//当开始时间小于等于当前时间,默认为已发送,发送时间为前一天
|
||||
if(ChronoUnit.DAYS.between(planStartDate, LocalDate.now()) >= 0){
|
||||
sysRecipesPlan.setSendFlag(1);
|
||||
sysRecipesPlan.setSendTime(DateUtils.localDateToDate(LocalDate.now().minusDays(1)));
|
||||
}*/
|
||||
//将旧食谱计划中的发送状态、发送时间、食谱复制到新食谱计划中
|
||||
boolean existFlag =oldRecipesPlanList.size() >= planList.size()+1;
|
||||
sysRecipesPlan.setSendFlag(existFlag ? oldRecipesPlanList.get(planList.size()).getSendFlag() : 0);
|
||||
sysRecipesPlan.setSendTime(existFlag ? oldRecipesPlanList.get(planList.size()).getSendTime() : null);
|
||||
sysRecipesPlan.setRecipesId(existFlag ? oldRecipesPlanList.get(planList.size()).getRecipesId() : null);
|
||||
|
||||
planList.add(sysRecipesPlan);
|
||||
|
||||
planStartDate = planEndDate.plusDays(1);
|
||||
@ -240,4 +261,24 @@ public class SysRecipesPlanServiceImpl implements ISysRecipesPlanService
|
||||
}
|
||||
return pauseDay;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID删除所有食谱安排计划
|
||||
* @param orderIds 订单ID
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int delRecipesPlanByOrderId(Long[] orderIds){
|
||||
return sysRecipesPlanMapper.delRecipesPlanByOrderId(orderIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 多条件查询食谱计划列表
|
||||
* @param sysRecipesPlan
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SysRecipesPlan> selectPlanListByCondition(SysRecipesPlan sysRecipesPlan){
|
||||
return sysRecipesPlanMapper.selectPlanListByCondition(sysRecipesPlan);
|
||||
}
|
||||
}
|
@ -213,4 +213,9 @@
|
||||
select * from sys_physical_signs sps where FIND_IN_SET(id, #{physical_signs_id})
|
||||
</select>
|
||||
|
||||
<!-- 根据手机号查询体征 -->
|
||||
<select id="selectSysCustomerAndSignByPhone" parameterType="String" resultMap="SysCustomerSignResult">
|
||||
<include refid="selectSysCustomerAndSign"/> where sc.del_flag = 0 and sc.phone = #{phone} limit 1
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -112,4 +112,12 @@
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
<!-- 根据订单ID删除暂停记录 -->
|
||||
<update id="deletePauseByOrderId" parameterType="String">
|
||||
update sys_order_pause set del_flag = 1 where order_id in
|
||||
<foreach item="orderId" collection="array" open="(" separator="," close=")">
|
||||
#{orderId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
@ -17,6 +17,15 @@
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<!-- 非持久化字段 -->
|
||||
<result property="customer" column="customer" />
|
||||
<result property="phone" column="phone" />
|
||||
<result property="orderStartDate" column="order_start_date" />
|
||||
<result property="orderEndDate" column="order_end_date" />
|
||||
<result property="nutritionistId" column="nutritionist_id" />
|
||||
<result property="nutritionist" column="nutritionist" />
|
||||
<result property="nutritionistAssisId" column="nutritionist_assis_id" />
|
||||
<result property="nutritionistAssis" column="nutritionist_assis" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSysRecipesPlanVo">
|
||||
@ -87,11 +96,11 @@
|
||||
</update>
|
||||
|
||||
<delete id="deleteSysRecipesPlanById" parameterType="Long">
|
||||
update sys_recipes_plan set del_flag = 0 where id = #{id}
|
||||
update sys_recipes_plan set del_flag = 1 where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteSysRecipesPlanByIds" parameterType="String">
|
||||
update sys_recipes_plan set del_flag = 0 where id in
|
||||
update sys_recipes_plan set del_flag = 1 where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
@ -100,16 +109,34 @@
|
||||
<!-- 批量插入食谱计划 -->
|
||||
<insert id="insertBatch">
|
||||
INSERT INTO sys_recipes_plan
|
||||
(order_id, start_date, end_date)
|
||||
(order_id, start_date, end_date, send_flag, send_time, recipes_id)
|
||||
VALUES
|
||||
<foreach collection ="list" item="plan" separator =",">
|
||||
(#{plan.orderId}, #{plan.startDate}, #{plan.end_date})
|
||||
(#{plan.orderId}, #{plan.startDate}, #{plan.endDate}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId})
|
||||
</foreach >
|
||||
</insert>
|
||||
|
||||
<!-- 根据订单ID删除对应食谱计划 -->
|
||||
<update id="delRecipesPlanByOrderId" parameterType="Long">
|
||||
update sys_recipes_plan set del_flag = 0 and order_id = #{orderId}
|
||||
<update id="delRecipesPlanByOrderId" parameterType="String">
|
||||
update sys_recipes_plan set del_flag = 1 where order_id in
|
||||
<foreach item="orderId" collection="array" open="(" separator="," close=")">
|
||||
#{orderId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 食谱计划、订单表联查 -->
|
||||
<select id="selectPlanListByCondition" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult">
|
||||
SELECT srp.id,srp.order_id,sr.customer,sr.phone,su_nutritionist.nick_name nutritionist,su_nutritionist_assis.nick_name AS nutritionist_assis,sr.start_time,sr.server_end_time, srp.start_date,srp.end_date,srp.send_flag,srp.send_time
|
||||
FROM sys_recipes_plan srp
|
||||
LEFT JOIN sys_order sr ON sr.order_id = srp.order_id
|
||||
LEFT JOIN sys_user su_nutritionist ON su_nutritionist.user_id = sr.nutritionist_id AND su_nutritionist.del_flag = 0
|
||||
LEFT JOIN sys_user su_nutritionist_assis ON su_nutritionist_assis.user_id = sr.nutri_assis_id AND su_nutritionist_assis.del_flag = 0
|
||||
WHERE srp.del_flag = 0
|
||||
<if test="orderId != null">AND srp.order_id = #{orderId}</if>
|
||||
<if test="customer != null and customer != ''">AND sr.customer like concat('%',#{customer},'%')</if>
|
||||
<if test="nutritionistId != null">AND su_nutritionist.user_id = #{nutritionistId}</if>
|
||||
<if test="nutritionistAssisId != null">AND su_nutritionist_assis.user_id = #{nutritionistAssisId}</if>
|
||||
<if test="startDate != null and endDate != null ">AND srp.start_date BETWEEN date_format(#{startDate},'%y%m%d') AND date_format(#{endDate},'%y%m%d') </if>
|
||||
ORDER BY srp.order_id DESC,srp.id ASC
|
||||
</select>
|
||||
</mapper>
|
@ -51,3 +51,13 @@ export function exportCustomer(query) {
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询客户信息详细
|
||||
export function getCustomerAndSignByPhone(query) {
|
||||
return request({
|
||||
url: '/custom/customer/getCustomerAndSignByPhone',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -58,3 +58,12 @@ export function getOptions() {
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询销售订单详细
|
||||
export function getInfoDetail(query) {
|
||||
return request({
|
||||
url: '/custom/order/getInfoDetail',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
36
stdiet-ui/src/api/custom/recipesPlan.js
Normal file
36
stdiet-ui/src/api/custom/recipesPlan.js
Normal file
@ -0,0 +1,36 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询食谱计划列表
|
||||
export function listRecipesPlan(query) {
|
||||
return request({
|
||||
url: '/recipes/recipesPlan/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询食谱计划详细
|
||||
export function getRecipesPlan(id) {
|
||||
return request({
|
||||
url: '/recipes/recipesPlan/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改食谱计划
|
||||
export function updateRecipesPlan(data) {
|
||||
return request({
|
||||
url: '/recipes/recipesPlan',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 导出食谱计划
|
||||
export function exportRecipesPlan(query) {
|
||||
return request({
|
||||
url: '/recipes/recipesPlan/export',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
616
stdiet-ui/src/views/custom/recipesPlan/index.vue
Normal file
616
stdiet-ui/src/views/custom/recipesPlan/index.vue
Normal file
@ -0,0 +1,616 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" >
|
||||
<el-form-item label="客户姓名" prop="customer">
|
||||
<el-input
|
||||
v-model="queryParams.customer"
|
||||
placeholder="请输入客户姓名"
|
||||
clearable
|
||||
size="small"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="食谱开始日期范围" prop="planStartDateScope" label-width="150px">
|
||||
<el-date-picker
|
||||
v-model="planStartDateScope"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期">
|
||||
</el-date-picker>
|
||||
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
icon="el-icon-edit"
|
||||
size="mini"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['recipes:recipesPlan:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['recipes:recipesPlan:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="recipesPlanList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="客户姓名" align="center" prop="customer" />
|
||||
<el-table-column label="食谱日期范围" align="center" prop="scopeDate" width="200"/>
|
||||
<el-table-column label="营养师" align="center" prop="nutritionist" />
|
||||
<el-table-column label="营养师助理" align="center" prop="nutritionistAssis" />
|
||||
<el-table-column label="食谱是否发送" align="center" prop="sendFlag">
|
||||
<!--<template slot-scope="scope">
|
||||
<span>{{ scope.row.sendFlag == 1 ? "已发送" : "未发送"}}</span>
|
||||
</template>(.sendFlag == 1) ? 'success' : 'warning'-->
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
:type="getTagType(scope.row)"
|
||||
disable-transitions>
|
||||
{{scope.row.sendFlag == 1 ? "已发送" : "未发送"}}
|
||||
</el-tag>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="食谱发送时间" align="center" prop="sendTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['recipes:recipesPlan:edit']"
|
||||
>修改</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="allRecipesPlanQueryParam.orderId = scope.row.orderId; getAllPlanByOrderId()"
|
||||
>查看完整计划</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="getOrderDetail(scope.row)"
|
||||
v-hasPermi="['custom:order:query']"
|
||||
>查看订单</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="getCustomerSign(scope.row)"
|
||||
v-hasPermi="['custom:customer:query']"
|
||||
>查看体征</el-button>
|
||||
<!--<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['recipes:recipesPlan:remove']"
|
||||
>删除</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改食谱计划对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="食谱是否已发送" prop="sendFlag" label-width="120px">
|
||||
<el-select v-model="form.sendFlag" placeholder="请选择">
|
||||
<el-option label="否" :value="parseInt('0')" />
|
||||
<el-option label="是" :value="parseInt('1')" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 查看完整计划 -->
|
||||
<el-dialog title="食谱计划表" v-if="allRecipesPlanOpen" :visible.sync="allRecipesPlanOpen" width="800px" append-to-body>
|
||||
<el-table v-loading="loading" :data="allRecipesPlanList" width="700px">
|
||||
<el-table-column label="客户姓名" align="center" prop="customer" />
|
||||
<!--<el-table-column label="营养师名称" align="center" prop="nutritionist" />
|
||||
<el-table-column label="营养师助理名称" align="center" prop="nutritionistAssis" />-->
|
||||
|
||||
<el-table-column label="食谱时间范围" align="center" prop="scopeDate" width="200"/>
|
||||
<el-table-column label="食谱是否发送" align="center" prop="sendFlag">
|
||||
<!--<template slot-scope="scope">
|
||||
<span>{{ scope.row.sendFlag == 1 ? "已发送" : "未发送"}}</span>
|
||||
</template>(.sendFlag == 1) ? 'success' : 'warning'-->
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
:type="getTagType(scope.row)"
|
||||
disable-transitions>
|
||||
{{scope.row.sendFlag == 1 ? "已发送" : "未发送"}}
|
||||
</el-tag>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column label="食谱发送时间" align="center" prop="sendTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="allRecipesPlanTotal>0"
|
||||
:total="allRecipesPlanTotal"
|
||||
:page.sync="allRecipesPlanQueryParam.pageNum"
|
||||
:limit.sync="allRecipesPlanQueryParam.pageSize"
|
||||
@pagination="getAllPlanByOrderId"
|
||||
/>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="allRecipesPlanOpen = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
|
||||
<!-- 查看体征 -->
|
||||
<el-dialog title="客户体征" v-if="customerOpen" :visible.sync="customerOpen" width="1000px" append-to-body>
|
||||
<el-table v-loading="loading" :data="customerSign" width="900px">
|
||||
<el-table-column label="姓名" align="center" prop="name" />
|
||||
<!--<el-table-column label="手机号" align="center" prop="phone" width="120" fixed="left"/>-->
|
||||
<el-table-column label="性别" align="center" prop="sign.sex" >
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.sex == 0 ? `男` : '女'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="年龄(岁)" align="center" prop="sign.age" />
|
||||
<el-table-column label="身高(厘米)" align="center" prop="sign.tall" />
|
||||
<el-table-column label="体重(斤)" align="center" prop="sign.weight"/>
|
||||
<el-table-column label="北方、南方" align="center" prop="sign.position">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.position == 0 ? `南方` : '北方'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="病史" align="center" prop="sign.signList">
|
||||
<template slot-scope="scope">
|
||||
<span>{{getSignString(scope.row.sign.signList)}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table v-loading="loading" :data="customerSign" width="900px">
|
||||
<el-table-column label="忌口或过敏源" align="center" prop="sign.dishesIngredientId" width="120"></el-table-column>
|
||||
<el-table-column label="是否便秘" align="center" prop="sign.constipation">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.constipation == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否熬夜失眠" align="center" prop="sign.staylate">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.staylate == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否经常运动" align="center" prop="sign.motion">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.motion == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="饮食方式" align="center" prop="sign.makeFoodType" >
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.makeFoodType == 0 ? `自己做` : '外面吃'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="饮食备注" align="center" prop="sign.remarks"></el-table-column>
|
||||
<el-table-column label="饮食特点" align="center" prop="sign.makeFoodTaste">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.makeFoodTaste == 0 ? `清淡` : '重口味'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table v-loading="loading" :data="customerSign" width="900px">
|
||||
<el-table-column label="工作职业" align="center" prop="sign.vocation">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.vocation}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否上夜班" align="center" prop="sign.night">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.night == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="久坐多还是运动多" align="center" prop="sign.walk">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.walk == 0 ? `久坐多` : '走动多'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否浑身乏力" align="center" prop="sign.weakness">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.weakness == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否减脂反弹" align="center" prop="sign.rebound">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.rebound == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="意识到生活习惯是减脂关键" align="center" prop="sign.crux">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.crux == 0 ? `是` : '否'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="睡觉时间" align="center" prop="sign.sleepTime">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.sleepTime}}点
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table v-loading="loading" :data="customerSign" width="900px">
|
||||
<el-table-column label="起床时间" align="center" prop="sign.getupTime" >
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.getupTime}}点
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="方便沟通时间" align="center" prop="sign.connectTime">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.connectTime}}点
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="湿气数据" align="center" prop="sign.bloodData">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.bloodData}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="气血数据" align="center" prop="sign.moistureDate" >
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.sign.moistureDate}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="减脂经历" align="center" prop="sign.experience" ></el-table-column>
|
||||
<el-table-column label="减脂遇到的困难" align="center" prop="sign.difficulty" ></el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="sign.comments"></el-table-column>
|
||||
</el-table>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="customerOpen = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 查看订单 -->
|
||||
<el-dialog title="订单详情" v-if="orderDetailOpen" :visible.sync="orderDetailOpen" width="1000px" append-to-body>
|
||||
<el-table v-loading="loading" :data="orderDetailList" >
|
||||
<el-table-column label="订单状态" align="center" prop="orderId">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
:type="scope.row.reviewStatus === '2' ? 'success' : scope.row.status ==='0'? '': 'danger'"
|
||||
disable-transitions>
|
||||
{{scope.row.reviewStatus === '2' ? '已完成': scope.row.status ==='0'? '进行中': '已暂停'}}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核状态" align="center" prop="reviewStatus">
|
||||
<template slot-scope="scope">
|
||||
<el-tag
|
||||
:type="scope.row.reviewStatus === 'yes' ? 'success' : 'danger'"
|
||||
disable-transitions>
|
||||
{{scope.row.reviewStatus === 'yes' ? '已审核':'未审核'}}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="成交时间" align="center" prop="orderTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.orderTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="客户姓名" align="center" prop="customer"/>
|
||||
<el-table-column label="金额" align="center" prop="amount">
|
||||
<template slot-scope="scope">
|
||||
{{toThousands(scope.row.amount)}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="体重" align="center" prop="weight">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.weight ? `${scope.row.weight}斤` : ''}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-table v-loading="loading" :data="orderDetailList" >
|
||||
<el-table-column label="手机号" align="center" prop="phone"/>
|
||||
<el-table-column label="服务时长" align="center" prop="serveTime"/>
|
||||
<el-table-column label="赠送时长" align="center" prop="giveServeDay">
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.giveServeDay ? `${scope.row.giveServeDay}天` : '0天'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="调理项目" align="center" prop="conditioningProject"/>
|
||||
<el-table-column label="收款方式" align="center" prop="payType"/>
|
||||
<el-table-column label="售前" align="center" prop="preSale"/>
|
||||
</el-table>
|
||||
<el-table v-loading="loading" :data="orderDetailList" >
|
||||
<el-table-column label="售后" align="center" prop="afterSale"/>
|
||||
<el-table-column label="主营养师" align="center" prop="nutritionist"/>
|
||||
<el-table-column label="助理营养师" align="center" prop="nutriAssis" />
|
||||
<el-table-column label="账号" align="center" prop="account"/>
|
||||
<el-table-column label="策划" align="center" prop="planner"/>
|
||||
<el-table-column label="策划助理" align="center" prop="plannerAssis"/>
|
||||
</el-table>
|
||||
<el-table v-loading="loading" :data="orderDetailList" >
|
||||
<el-table-column label="运营" align="center" prop="operator"/>
|
||||
<el-table-column label="运营助理" align="center" prop="operatorAssis"/>
|
||||
<!--<el-table-column label="推荐人" align="center" prop="recommender"/>-->
|
||||
<el-table-column label="进粉时间" align="center" prop="becomeFanTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.becomeFanTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始时间" align="center" prop="startTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束时间" align="center" prop="serverEndTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.serverEndTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark"/>
|
||||
</el-table>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button @click="orderDetailOpen = false">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listRecipesPlan, getRecipesPlan, updateRecipesPlan,exportRecipesPlan } from "@/api/custom/recipesPlan";
|
||||
import { getCustomerAndSignByPhone } from "@/api/custom/customer";
|
||||
import {getInfoDetail} from "@/api/custom/order";
|
||||
import dayjs from 'dayjs';
|
||||
const nextDate = dayjs().add(1, 'day').format("YYYY-MM-DD");
|
||||
const weekDate = dayjs().add(6, 'day').format("YYYY-MM-DD");
|
||||
export default {
|
||||
name: "recipesPlan",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 食谱计划表格数据
|
||||
recipesPlanList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
customer: null,
|
||||
startDate: null,
|
||||
endDate: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
},
|
||||
//食谱开始时间范围
|
||||
planStartDateScope:[nextDate, nextDate],
|
||||
//用户体征数据
|
||||
customerSignList: [],
|
||||
//用户体征弹窗状态
|
||||
customerOpen: false,
|
||||
//订单对于所有计划安排数据
|
||||
allRecipesPlanList:[],
|
||||
//订单弹窗状态
|
||||
allRecipesPlanOpen: false,
|
||||
//订单弹窗中查询参数
|
||||
allRecipesPlanQueryParam: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
orderId: null
|
||||
},
|
||||
//订单弹窗中列表数据的总条数
|
||||
allRecipesPlanTotal: 0,
|
||||
//订单详情数据
|
||||
orderDetailList:[],
|
||||
//订单详情弹窗
|
||||
orderDetailOpen:false
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询食谱计划列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
if(this.planStartDateScope != null && this.planStartDateScope.length > 0){
|
||||
this.queryParams.startDate = dayjs(this.planStartDateScope[0]).format('YYYY-MM-DD');
|
||||
this.queryParams.endDate = dayjs(this.planStartDateScope[1]).format('YYYY-MM-DD');
|
||||
}else{
|
||||
this.queryParams.startDate = null;
|
||||
this.queryParams.endDate = null;
|
||||
}
|
||||
listRecipesPlan(this.queryParams).then(response => {
|
||||
this.recipesPlanList = response.rows;
|
||||
this.recipesPlanList.forEach(function(item, index){
|
||||
item.scopeDate = dayjs(item.startDate).format("YYYY-MM-DD")+" 到 "+dayjs(item.endDate).format("YYYY-MM-DD")
|
||||
});
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
/** 查询客户体征 */
|
||||
getCustomerSign(row) {
|
||||
this.customerSign = [];
|
||||
let message = "未找到该客户,请检查订单手机号与客户体征手机号是否一致";
|
||||
if(row.phone == null || row.phone == ""){
|
||||
this.alert(message);
|
||||
return;
|
||||
}
|
||||
getCustomerAndSignByPhone({"phone": row.phone}).then(response => {
|
||||
this.customerSign[0] = response.data;
|
||||
if(this.customerSign[0] == null){
|
||||
this.alert(message);
|
||||
}else{
|
||||
this.customerOpen = true;
|
||||
}
|
||||
});
|
||||
},
|
||||
getAllPlanByOrderId(){
|
||||
listRecipesPlan(this.allRecipesPlanQueryParam).then(response => {
|
||||
this.allRecipesPlanList = response.rows;
|
||||
this.allRecipesPlanList.forEach(function(item, index){
|
||||
item.scopeDate = dayjs(item.startDate).format("YYYY-MM-DD")+" 到 "+dayjs(item.endDate).format("YYYY-MM-DD")
|
||||
});
|
||||
this.allRecipesPlanOpen = true;
|
||||
this.allRecipesPlanTotal = response.total;
|
||||
});
|
||||
},
|
||||
getOrderDetail(row){
|
||||
this.orderDetailList = [];
|
||||
getInfoDetail({'orderId': row.orderId}).then(response => {
|
||||
this.orderDetailList[0] = response.data;
|
||||
this.orderDetailOpen = true;
|
||||
});
|
||||
},
|
||||
alert(value){
|
||||
this.$alert(value, '提示', {confirmButtonText: '确定'});
|
||||
},
|
||||
getSignString(signList){
|
||||
if(signList == null){
|
||||
return "";
|
||||
}
|
||||
let signStr = "";
|
||||
for(let i in signList){
|
||||
signStr += ","+signList[i].name;
|
||||
}
|
||||
return signList.length > 0 ? signStr.substring(1) : signStr;
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
orderId: null,
|
||||
startDate: null,
|
||||
endDate: null,
|
||||
recipesId: null,
|
||||
sendFlag: null,
|
||||
sendTime: null,
|
||||
createTime: null,
|
||||
createBy: null,
|
||||
updateTime: null,
|
||||
updateBy: null,
|
||||
delFlag: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.planStartDateScope = [nextDate,nextDate];
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getRecipesPlan(id).then(response => {
|
||||
this.form.id = response.data.id;
|
||||
this.form.sendFlag = response.data.sendFlag;
|
||||
this.open = true;
|
||||
this.title = "修改食谱计划";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateRecipesPlan(this.form).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
this.$confirm('是否确认导出所有食谱计划数据项?', "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(function() {
|
||||
return exportRecipesPlan(queryParams);
|
||||
}).then(response => {
|
||||
this.download(response.msg);
|
||||
}).catch(function() {});
|
||||
},
|
||||
getTagType(row){
|
||||
if(row.sendFlag == 1) {
|
||||
return "success";
|
||||
}
|
||||
if(dayjs(row.startDate+"").diff(dayjs(),'day') <= 1){
|
||||
return "danger";
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user