!329 订单新增商务下单

Merge pull request !329 from 德仔/xzj
This commit is contained in:
德仔 2021-07-28 10:33:52 +00:00 committed by Gitee
commit 4d64e2465b
13 changed files with 165 additions and 25 deletions

View File

@ -171,6 +171,9 @@ public class SysOrderController extends OrderBaseController {
if (user.getUserId().equals(order.getPushPreSaleId())) {
order.setPushPreSale(user.getNickName());
}
if (user.getUserId().equals(order.getBusinessAffairId())) {
order.setBusinessAffair(user.getNickName());
}
}
order.setOrderTypeName(OrderUtils.getOrderTypeName(order));
}

View File

@ -188,6 +188,12 @@ public class SysOrder extends BaseEntity {
@Excel(name = "运营助理")
private String operatorAssis;
/** 商务ID */
private Long businessAffairId;
/** 商务*/
private String businessAffair;
/**
* 推荐人
*/

View File

@ -214,6 +214,20 @@ public class SysOrderServiceImpl implements ISysOrderService {
}
}
}
//商务订单
else if("4".equals(sysOrder.getOrderType())){
sysOrder.setNutritionistId((sysOrder.getNutritionistIdList() != null && sysOrder.getNutritionistIdList().length > 0) ? sysOrder.getNutritionistIdList()[0] : null);
sysOrder.setMainOrderId(0L);
sysOrder.setAfterSaleCommissOrder(0);
sysOrder.setPreSaleId(null);
sysOrder.setOnSaleId(null);
sysOrder.setPushPreSaleId(null);
sysOrder.setPlannerId(null);
sysOrder.setPlannerAssisId(null);
sysOrder.setOperatorId(null);
sysOrder.setOperatorAssisId(null);
row = sysOrderMapper.insertSysOrder(sysOrder);
}
return row;
}
@ -273,6 +287,15 @@ public class SysOrderServiceImpl implements ISysOrderService {
if("3".equals(sysOrder.getOrderType())){
sysOrder.setPreSaleId(null);
}
if("4".equals(sysOrder.getOrderType())){
sysOrder.setPreSaleId(null);
sysOrder.setOnSaleId(null);
sysOrder.setPushPreSaleId(null);
sysOrder.setPlannerId(null);
sysOrder.setPlannerAssisId(null);
sysOrder.setOperatorId(null);
sysOrder.setOperatorAssisId(null);
}
if(oldSysOrder.getStartTime() == null){//确保提成计算时间不为空
sysOrder.setCommissStartTime(sysOrder.getOrderTime());
}

View File

@ -4,7 +4,7 @@ import com.stdiet.custom.domain.SysOrder;
public class OrderUtils {
private static final String[] orderTypeArray = {"普通单","比例拆分单","体验单","售中单"};
private static final String[] orderTypeArray = {"普通单","比例拆分单","体验单","售中单","商务单"};
private static final String[] orderCountTypeArray = {"一开单","二开单","一开单(拆分)","二开单(拆分)"};

View File

@ -77,6 +77,14 @@
<property name="postId" value="16"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="business_affair_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>
<property name="beginTime" value="#{beginTime}"/>
<property name="endTime" value="#{endTime}"/>
<property name="postId" value="17"/>
</include>
UNION
<include refid="groupAmountVo">
<property name="column" value="after_sale_id"/>
<property name="reviewStatus" value="#{reviewStatus}"/>

View File

@ -41,6 +41,7 @@
<result property="serverEndTime" column="server_end_time"/>
<result property="becomeFanTime" column="become_fan_time"/>
<result property="businessAffairId" column="business_affair_id" />
<result property="pushPreSaleId" column="push_pre_sale_id" />
<result property="onSaleId" column="on_sale_id"/>
<result property="orderType" column="order_type"/>
@ -64,7 +65,7 @@
o.serve_time_id, o.pay_type_id, pay.dict_label as pay_type, o.pre_sale_id, o.create_by, o.create_time, o.after_sale_id, o.update_by, o.update_time,
o.nutritionist_id, o.remark, o.nutri_assis_id, o.account_id, acc.dict_label as account, o.planner_id, o.planner_assis_id, o.operator_id, o.operator_assis_id,
o.recommender, o.order_time,o.give_serve_day,o.conditioning_project_id,cp.dict_label as conditioning_project,o.server_end_time,
o.on_sale_id,o.order_type,o.order_count_type,o.order_money_type,o.main_order_id,o.after_sale_commiss_order,o.commiss_start_time, o.counted,o.push_pre_sale_id
o.on_sale_id,o.order_type,o.order_count_type,o.order_money_type,o.main_order_id,o.after_sale_commiss_order,o.commiss_start_time, o.counted,o.push_pre_sale_id,o.business_affair_id
from sys_order o
LEFT JOIN sys_customer sc ON sc.id = o.cus_id
LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_pay_type') AS pay ON pay.dict_value = o.pay_type_id
@ -127,6 +128,9 @@
<if test="onSaleId != null">
and o.on_sale_id = #{onSaleId}
</if>
<if test="businessAffairId != null">
and o.business_affair_id = #{businessAffairId}
</if>
<if test="afterSaleId != null ">and o.after_sale_id = #{afterSaleId}</if>
<if test="nutritionistId != null ">and o.nutritionist_id = #{nutritionistId}</if>
<if test="nutriAssisId != null ">and o.nutri_assis_id = #{nutriAssisId}</if>
@ -185,6 +189,9 @@
<if test="onSaleId != null">
and o.on_sale_id = #{onSaleId}
</if>
<if test="businessAffairId != null">
and o.business_affair_id = #{businessAffairId}
</if>
<if test="preSaleId != null ">and pre_sale_id = #{preSaleId}</if>
<if test="afterSaleId != null ">and after_sale_id = #{afterSaleId}</if>
<if test="nutritionistId != null ">and nutritionist_id = #{nutritionistId}</if>
@ -252,6 +259,7 @@
<if test="operatorId != null">operator_id,</if>
<if test="serveTimeId != null">serve_time_id,</if>
<if test="recommender != null">recommender,</if>
<if test="businessAffairId != null">business_affair_id,</if>
<if test="pushPreSaleId != null">push_pre_sale_id,</if>
<if test="amount != null">amount,</if>
<if test="orderTime != null">order_time,</if>
@ -296,6 +304,7 @@
<if test="operatorId != null">#{operatorId},</if>
<if test="serveTimeId != null">#{serveTimeId},</if>
<if test="recommender != null">#{recommender},</if>
<if test="businessAffairId != null">#{businessAffairId},</if>
<if test="pushPreSaleId != null">#{pushPreSaleId},</if>
<if test="amount != null">#{amount},</if>
<if test="orderTime != null">#{orderTime},</if>
@ -343,6 +352,7 @@
<if test="operatorId != null">operator_id = #{operatorId},</if>
<if test="serveTimeId != null">serve_time_id = #{serveTimeId},</if>
<if test="recommender != null">recommender = #{recommender},</if>
<if test="businessAffairId != null">business_affair_id = #{businessAffairId},</if>
<if test="pushPreSaleId != null">push_pre_sale_id = #{pushPreSaleId},</if>
<if test="amount != null">amount = #{amount},</if>
<if test="orderTime != null">order_time = #{orderTime},</if>
@ -415,6 +425,7 @@
<result property="serverEndTime" column="server_end_time"/>
<result property="becomeFanTime" column="become_fan_time"/>
<result property="businessAffairId" column="business_affair_id" />
<result property="pushPreSaleId" column="push_pre_sale_id" />
<result property="onSaleId" column="on_sale_id"/>
<result property="orderType" column="order_type"/>

View File

@ -111,7 +111,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="preSaleShow">
<el-col :span="8" v-show="preSaleShow && !businessAffairShow">
<el-form-item label="售前" prop="preSaleId" >
<el-select v-model="form.preSaleId" placeholder="请选择" filterable
clearable>
@ -124,6 +124,18 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="businessAffairShow">
<el-form-item label="商务" prop="businessAffairId" >
<el-select v-model="form.businessAffairId" placeholder="请选择" filterable clearable>
<el-option
v-for="dict in bdOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="pushPreSaleShow">
<el-form-item label="售前推送" prop="preSaleId" title="售前推送人就是该客户体验单的销售,只有售中一开单需要选择">
<el-select v-model="form.pushPreSaleId" placeholder="请选择" filterable
@ -204,7 +216,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" v-show="!businessAffairShow">
<el-form-item label="策划" prop="plannerId">
<el-select v-model="form.plannerId" placeholder="请选择" filterable
clearable>
@ -217,7 +229,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" v-show="!businessAffairShow">
<el-form-item label="策划助理" prop="plannerAssisId">
<el-select v-model="form.plannerAssisId" placeholder="请选择" filterable
clearable>
@ -230,7 +242,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" v-show="!businessAffairShow">
<el-form-item label="运营" prop="operatorId">
<el-select v-model="form.operatorId" placeholder="请选择" filterable
clearable>
@ -243,7 +255,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" v-show="!businessAffairShow">
<el-form-item label="运营助理" prop="operatorAssisId">
<el-select v-model="form.operatorAssisId" placeholder="请选择" filterable
clearable>
@ -481,6 +493,8 @@ export default {
pushPreSaleShow: false,
//
afterNutiShow: true,
//
businessAffairShow: false
};
},
created() {
@ -546,7 +560,9 @@ export default {
//
"operatorAssisIdOptions",
//
"pushPreSaleIdOptions"
"pushPreSaleIdOptions",
//
"bdOptions"
]),
},
methods: {
@ -662,6 +678,25 @@ export default {
return false;
}
}
}else if(this.form.orderTypeList[0] == 4){
//
if(this.form.businessAffairId == null || this.form.businessAffairId <= 0){
this.$message({
type: 'warning',
message: '商务不能为空',
center: true
});
return false;
}
//
if(this.form.nutritionistIdList == null || this.form.nutritionistIdList.length != 1 || this.form.nutritionistIdList[0] <= 0){
this.$message({
type: 'warning',
message: '营养师不能为空,普通单只能选择一个营养师',
center: true
});
return false;
}
}
return true;
},
@ -731,6 +766,7 @@ export default {
pauseTime: null,
payTypeId: defaultPayType ? parseInt(defaultPayType.dictValue) : null,
preSaleId: defaultPresale ? parseInt(defaultPresale.dictValue) : null,
businessAffairId: null,
pushPreSaleId: null,
recipesPlanContinue: 1,
createBy: null,
@ -815,7 +851,7 @@ export default {
// },
"form.orderTypeList": function (newVal, oldVal) {
//
if (newVal[1] == 1 || newVal[1] == 3) {
if ((newVal[1] == 1 || newVal[1] == 3) && newVal[0] != 4) {
this.form.secondAfterSaleFlag = 1;
this.secondAfterSaleFlagShow = true;
} else {
@ -867,6 +903,8 @@ export default {
this.onSaleShow = false;
}
}
//
this.businessAffairShow = newVal[0] == 4;
},
},
};

View File

@ -73,7 +73,7 @@ export default {
["订单类型","审核状态", "成交时间"],
["调理项目","姓名", "手机号"],
["金额","收款方式", "收款账号"],
["服务时长","赠送时长", "售前"],
["服务时长","赠送时长", "售前/商务"],
["售前推送","售中","售后"],
["营养师","助理营养师","策划"],
["策划助理","运营","运营助理"],
@ -112,6 +112,9 @@ export default {
getInfoDetail({ orderId }).then((response) => {
response.data.weight = response.data.weight != null ? response.data.weight + "斤" : "";
response.data.giveServeDay = response.data.giveServeDay != null ? response.data.giveServeDay + "天" : "";
if(response.data.orderType == 4){
response.data.preSale = response.data.businessAffair;
}
for (let i = 0; i < this.orderTitleData.length; i++) {
this.orderDetailList.push({
attr_name_one: this.orderTitleData[i][0],

View File

@ -90,7 +90,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="preSaleShow">
<el-col :span="8" v-show="preSaleShow && !businessAffairShow">
<el-form-item label="售前" prop="preSaleId">
<el-select v-model="form.preSaleId" placeholder="请选择">
<el-option
@ -102,7 +102,18 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="businessAffairShow">
<el-form-item label="商务" prop="businessAffairId" >
<el-select v-model="form.businessAffairId" placeholder="请选择" filterable clearable>
<el-option
v-for="dict in bdOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="pushPreSaleShow">
<el-form-item label="售前推送" prop="preSaleId">
<el-select v-model="form.pushPreSaleId" placeholder="请选择">
@ -163,7 +174,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="planOperatorShow">
<el-col :span="8" v-show="planOperatorShow && !businessAffairShow">
<el-form-item label="策划" prop="plannerId">
<el-select v-model="form.plannerId" placeholder="请选择">
<el-option
@ -175,7 +186,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="planOperatorShow">
<el-col :span="8" v-show="planOperatorShow && !businessAffairShow">
<el-form-item label="策划助理" prop="plannerAssisId">
<el-select v-model="form.plannerAssisId" placeholder="请选择">
<el-option
@ -187,7 +198,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="planOperatorShow">
<el-col :span="8" v-show="planOperatorShow && !businessAffairShow">
<el-form-item label="运营" prop="operatorId">
<el-select v-model="form.operatorId" placeholder="请选择">
<el-option
@ -199,7 +210,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" v-show="planOperatorShow">
<el-col :span="8" v-show="planOperatorShow && !businessAffairShow">
<el-form-item label="运营助理" prop="operatorAssisId">
<el-select v-model="form.operatorAssisId" placeholder="请选择">
<el-option
@ -415,6 +426,8 @@ export default {
afterSaleNutriAssShow: true,
//
planOperatorShow: true,
//
businessAffairShow: false
};
},
created() {
@ -466,7 +479,9 @@ export default {
//
"operatorAssisIdOptions",
//
"pushPreSaleIdOptions"
"pushPreSaleIdOptions",
//
"bdOptions"
]),
},
methods: {
@ -630,6 +645,9 @@ export default {
this.planOperatorShow = false;
}
//
this.businessAffairShow = this.form.orderType == "4";
//console.log(this.preSaleShow + " | " + this.pushPreSaleShow + " | " + this.onSaleShow + " | " + this.afterSaleNutriAssShow + "|" + this.planOperatorShow);
},
handleOnClosed() {

View File

@ -24,6 +24,7 @@ const getters = {
plannerAssisIdOptions: state => state.global.plannerAssisIdOptions,
operatorIdOptions: state => state.global.operatorIdOptions,
operatorAssisIdOptions: state => state.global.operatorAssisIdOptions,
pushPreSaleIdOptions: state => state.global.pushPreSaleIdOptions
pushPreSaleIdOptions: state => state.global.pushPreSaleIdOptions,
bdOptions: state => state.global.bdOptions
};
export default getters;

View File

@ -11,7 +11,8 @@ const oriState = {
operatorIdOptions: [],
operatorAssisIdOptions: [],
msgUnreadCount: 0,
pushPreSaleIdOptions:[]
pushPreSaleIdOptions:[],
bdOptions:[]
};
const mutations = {
@ -51,6 +52,7 @@ const actions = {
operatorIdOptions: options["operator"] || [],
operatorAssisIdOptions: options["operator_assis"] || [],
pushPreSaleIdOptions: options["push_pre_sale"] || [],
bdOptions: options["bd"] || [],
});
}
};

View File

@ -75,6 +75,11 @@ export const orderTypeArray = [
value: 3,
label: "售中单",
children: orderCountExtendedTypeArray
},
{
value: 4,
label: "商务单",
children: orderCountTypeArray
}
]

View File

@ -88,6 +88,24 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" v-if="!isPartner">
<el-form-item label="商务" prop="businessAffairId">
<el-select
v-model="queryParams.businessAffairId"
placeholder="请选择商务"
clearable
filterable
size="small"
>
<el-option
v-for="dict in bdOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="parseInt(dict.dictValue)"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" v-if="!isPartner">
<el-form-item label="售前推送" prop="pushPreSaleId">
<el-select
@ -272,8 +290,8 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" v-if="!isPartner">
<el-form-item label="订单金额" prop="amountFlag">
<el-col :span="33" >
<el-form-item label="订单金额" prop="amountFlag" v-if="!isPartner">
<el-select
v-model="queryParams.amountFlag"
clearable
@ -284,9 +302,7 @@
<el-option :key="2" label="退款订单" :value="1" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="26">
<el-form-item label="订单类型" prop="searchOrderTypeArray">
<el-form-item label="订单类型" prop="searchOrderTypeArray" v-if="!isPartner" style="margin-left:140px">
<el-cascader
placeholder="请选择订单类型"
v-model="searchOrderTypeArray"
@ -410,7 +426,7 @@
width="90"
/>
<el-table-column label="服务时长" align="center" prop="serveTime" />
<el-table-column label="销售/售中" align="center" prop="preSale" >
<el-table-column label="销售/商务/售中" align="center" prop="preSale" >
<template slot-scope="scope">
<div v-if="scope.row.orderType == 2">
<div>
@ -420,6 +436,9 @@
{{scope.row.onSaleId ? scope.row.onSale : "无" }}
</div>
</div>
<div v-else-if="scope.row.orderType == 4">
{{scope.row.businessAffairId ? scope.row.businessAffair : "无"}}
</div>
<div v-else>
{{scope.row.preSaleId ? scope.row.preSale : scope.row.onSale}}
</div>
@ -636,6 +655,7 @@ export default {
recommender: null,
reviewStatus: null,
serveTimeId: null,
businessAffairId: null
},
//
searchOrderTypeArray: null,
@ -673,6 +693,8 @@ export default {
"operatorAssisIdOptions",
//
"pushPreSaleIdOptions",
//
"bdOptions",
//
"userId",
//