提交 3d00d75e authored 作者: 窦斌's avatar 窦斌
......@@ -47,85 +47,23 @@ class StatementsListController extends Controller
* @param Request $request [description]
* @return [type] [description]
*/
public function handle_ive(Request $request) {
public function businessFirm(Request $request) {
// 验证数据
$error_message = $this->dataValidator->handle_iveValidator($request->all());
$error_message = $this->dataValidator->businessFirmValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$data = $request->all();
$data['ip'] = $request->ip();
$return_data = AftersaleOrderService::handle_ive($data);
$return_data = StatementsListService::businessFirm($data);
return response()->json($return_data);
}
/**
* 日常反馈
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param Request $request [description]
* @return [type] [description]
*/
public function dailyFeedback(Request $request) {
// 验证数据
$error_message = $this->dataValidator->dailyFeedbackValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$data = $request->all();
$data['ip'] = $request->ip();
$return_data = AftersaleOrderService::dailyFeedback($data);
return response()->json($return_data);
}
/**
* 申请完成
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param Request $request [description]
* @return [type] [description]
*/
public function quality (Request $request) {
// 验证数据
$error_message = $this->dataValidator->dailyFeedbackValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$data = $request->all();
$data['ip'] = $request->ip();
$return_data = AftersaleOrderService::quality($data);
return response()->json($return_data);
}
/**
* 上传图片
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param Request $request [description]
*/
public function upload(Request $request)
{
$session = $request['session'];
// if (empty($request['file'])) {
// return response()->json(['ErrorCode' => 2, 'ErrorMessage' => '请上传文件', 'Data' => []]);
// }
$request['path'] = './afterSale/'.date('Ym');
$return_data = DealPicService::upload($request);
if ($return_data['code'] == 200) {
return response()->json(['ErrorCode' => 1, 'ErrorMessage' => '上传成功', 'Data' => $return_data['data']]);
} else {
return response()->json(['ErrorCode' => 2, 'ErrorMessage' => $return_data['msg'], 'Data' => '']);
}
}
/**
* 详情
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @date 2024-09-13
* @param Request $request [description]
* @return [type] [description]
*/
......@@ -137,7 +75,7 @@ class StatementsListController extends Controller
}
$data = $request->all();
$data['ip'] = $request->ip();
$return_data = AftersaleOrderService::info($data);
$return_data = StatementsListService::info($data);
return response()->json($return_data);
}
}
......@@ -24,9 +24,9 @@ class TipsController extends BaseController
* @date 2021/9/10
*/
public function index(Request $request){
if($admin_pt_id = $request->get('session_token')['admin_groupnew'] == 2){
if($request->get('session_token')['admin_groupnew'] == 2 || $request->get('session_token')['admin_groupnew'] == 3){
$orderList = OrderList::where('stauas',20)->where('ser_id',$request->get('session_token')['id'])->get();
if(!empty($orderList)) {
if(count($orderList)>0) {
$list[0]['msg'] = "您有新工单未领取";
$list[0]['count'] = count($orderList);
$list[0]['orderList'] = $orderList;
......
......@@ -100,8 +100,18 @@ class PayController extends BaseController
if ($v['reo_type'] == 1){
$list[$k]['reo_type_name'] = "充值";
if ($v['reo_pay_way'] == 1){
$list[$k]['reo_pay_way_name'] = "微信";
}elseif($v['reo_pay_way'] == 2){
$list[$k]['reo_pay_way_name'] = "支付宝";
}elseif($v['reo_pay_way'] == 3){
$list[$k]['reo_pay_way_name'] = "线下打款";
} else {
$list[$k]['reo_pay_way_name'] = "--";
}
}elseif($v['reo_type'] == 2){
$list[$k]['reo_type_name'] = "扣费";
$list[$k]['reo_pay_way_name'] = "派单扣费";
} else {
$list[$k]['reo_type_name'] = "--";
}
......@@ -120,15 +130,7 @@ class PayController extends BaseController
$list[$k]['reo_client_type_name'] = "其他";
}
if ($v['reo_pay_way'] == 1){
$list[$k]['reo_pay_way_name'] = "微信";
}elseif($v['reo_pay_way'] == 2){
$list[$k]['reo_pay_way_name'] = "支付宝";
}elseif($v['reo_pay_way'] == 3){
$list[$k]['reo_pay_way_name'] = "线下打款";
} else {
$list[$k]['reo_pay_way_name'] = "--";
}
if ($v['reo_pay_time'] == '0000-00-00 00:00:00') {
$list[$k]['reo_pay_time'] = "--";
}
......
......@@ -40,44 +40,17 @@ class StatementsListValidator extends FormRequest
}
// 详情验证器
public function handle_iveValidator($data)
public function businessFirmValidator($data)
{
// 自定义错误消息
$messages = [
'id.required' => '请选择售后单id',
'id.integer' => '参数错误',
'quality_content.required' => '请输入处理内容',
'quality_content.max' => '参数错误',
'appoint_time.required' => '请选择预约时间',
];
// 数据验证
$validator = Validator::make($data, [
'id' => 'required|integer|min:1',
'quality_content' => 'required|string|max:50',
'appoint_time' => 'required',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 日常反馈验证器
public function dailyFeedbackValidator($data)
{
// 自定义错误消息
$messages = [
'id.required' => '请选择售后单id',
'id.integer' => '参数错误',
'remark.required' => '请输入反馈内容',
'id.integer' => '参数错误'
];
// 数据验证
$validator = Validator::make($data, [
'id' => 'required|integer|min:1',
'remark' => 'required',
'id' => 'required|integer|min:1'
], $messages);
// 判断数据验证是否成功
......
......@@ -50,7 +50,7 @@ class StatementsListService extends Model
->where('s.ser_id', $session['admin_id'])
->where('list_service_type', 40)
->whereIn('sett_status', [1,60,63])
->select('s.id','s.sys_num', 's.create_time', 'all_price', 'list_id', 'om.goods_name', 'om.goods_num')
->select('s.id','s.sys_num', 's.create_time', 'all_price', 'list_id', 'om.goods_name', 'om.goods_num', 'o.id as wor_id', 'o.stauas as wor_state')
->paginate($show_count);
$page['count'] = 0;
$page['page'] = 0;
......@@ -60,6 +60,25 @@ class StatementsListService extends Model
$data['page'] = $page;
$list_items = $list_data->items();
foreach ($list_items as $key => $value) {
switch ($value['wor_state']) {
case '10':
$list_items[$key]['wor_state'] = 1;
break;
case '10':
$list_items[$key]['wor_state'] = 1;
break;
case '10':
$list_items[$key]['wor_state'] = 1;
break;
case '10':
$list_items[$key]['wor_state'] = 1;
break;
case '10':
$list_items[$key]['wor_state'] = 1;
break;
}
}
if ($list_items) {
$list_items = CommonService::dataToArray($list_items);
$page['count'] = $list_data->total(); //总数据个数
......@@ -74,7 +93,7 @@ class StatementsListService extends Model
->leftJoin('company as c', 'c.com_id', '=', 'sl.company_id')
->where('stl_serid', $session['admin_id'])
// ->where('stl_type', '!=', 4)
->select('stl_wat', 'stl_type', 'com_name', 'stl_startime', 'stl_endtime', 'stl_money')
->select('stl_wat', 'stl_type', 'com_name', 'stl_startime', 'stl_endtime', 'stl_money', 'stl_id')
->orderByRaw("stl_type asc,stl_endtime desc")
->paginate($show_count);
$page['count'] = 0;
......@@ -90,7 +109,9 @@ class StatementsListService extends Model
$getStauasName = self::getStauasName();
foreach ($list_items as $key => $value) {
$list_items[$key]['stl_type_name'] = $getStauasName[$value['stl_type']]['name'];
$list_items[$key]['pic_data'] = DB::table('pictures')
->where('sett_wat_num', $value['stl_wat'])
->get();
$list_items[$key]['button'] = [];
$list_items[$key]['button'] = [['action'=>'info','name'=>'查看详情']];
if(in_array($value['stl_type'],[1])){
......@@ -134,1099 +155,45 @@ class StatementsListService extends Model
* @return \Illuminate\Http\JsonResponse
* |---------------------------------------------------------------------------------
*/
public static function handle_ive ($request)
public static function businessFirm ($request)
{
DB::beginTransaction();
$session = $request['session'];
$find_data = DB::table('order_after')
$find_data = DB::table('statements_list')
->where('id', $request['id'])
->first();
$order_num = $find_data['order_num'];
$status = $find_data['status'];
if ($status !=1){
return ['ErrorCode' => 2, 'ErrorMessage' => '售后状态不正确', 'Data' => ''];
if ($find_data['stl_type'] !=1){
return ['ErrorCode' => 2, 'ErrorMessage' => '账单状态不正确', 'Data' => ''];
}
$feek_time = date('Y-m-d',strtotime("+1day")).' 17:30:00'; //明天下午5:30时间
$info['feek_time'] = $feek_time;
$info['status'] = 10; //改为处理中
$info['day_time'] = $request['appoint_time'];
$res = OrderAfter::where('id',$request['id'])->update($info);
if ($res){
$rest = CommonService::accMe($find_data['sys_num'],'售后列表',$request['quality_content'],$find_data['sys_num'],2,2,$session['install_name'],$session['install_id']);
if ($rest){
CommonService::inserting_log('售后列表',$find_data['sys_num'],'售后处理','售后列表',$session,$request['ip']);//日志
//修改领取人
$get_id = OrderAfter::where('id',$request['id'])->value('get_id');
if(!$get_id){
OrderAfter::where('id',$request['id'])->update(['get_id'=>$session['id'],'get_time'=>date("Y-m-d H:i:s")]);
}
DB::commit();
return ['ErrorCode' => 1, 'ErrorMessage' => '操作成功', 'Data' => []];
}else{
DB::rollback();//回滚
return ['ErrorCode' => ErrorInc::MYSQL_FAILED, 'ErrorMessage' => '操作失败', 'Data' => []];
}
}else{
DB::rollback();//回滚
return ['ErrorCode' => ErrorInc::MYSQL_FAILED, 'ErrorMessage' => '操作失败', 'Data' => []];
}
}
/**
* 日常反馈
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param [type] $data [description]
* @return [type] [description]
*/
public static function dailyFeedback($request) {
$session = $request['session'];
$find_data = DB::table('order_after')
$info['stl_type'] = 2;//改为处理中
$res = DB::table('statements_list')
->where('id', $request['id'])
->first();
DB::beginTransaction();
$rest = CommonService::accMe($find_data['sys_num'],'售后列表',$request['remark'],$find_data['sys_num'],2,2,$session['install_name'],$session['install_id']);
if ($rest){
CommonService::inserting_log('售后列表',$find_data['sys_num'],'日常反馈','售后列表',$session,$request['ip']);//日志
DB::commit();
return ['ErrorCode' => 1, 'ErrorMessage' => '操作成功', 'Data' => []];
}else{
DB::rollback();//回滚
return ['ErrorCode' => ErrorInc::MYSQL_FAILED, 'ErrorMessage' => '操作失败', 'Data' => []];
}
}
/**
* 详情
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param [type] $data [description]
* @return [type] [description]
*/
public static function info($data) {
$session = $data['session'];
$find_data = DB::table('order_after')
->where('id', $data['id'])
->select('id', 'after_num', 'shr_id', 'shr_name', 'shr_phone', 'shr_address', 'shr_sheng', 'shr_shi','shr_xian', 'good_names', 'create_time', 'deal_sertime', 'finish_time', 'status', 'sys_num', 'day_time', 'serial_number')
->first();
$remark = CommonService::orderRemarks($find_data['sys_num'],'',2,$session['install_id']);
$image = DB::table('feedsales')
->where('gl_id', $find_data['id'])
->where('sys_num', $find_data['sys_num'])
->get();
if(in_array($find_data['status'],[1])){
$find_data['button'] = [['action'=>'handle_ive','name'=>'立即处理']];
}
if(in_array($find_data['status'],[10])){
$find_data['button'] = [['action'=>'quality','name'=>'申请完成'],['action'=>'dailyFeedback','name'=>'日常反馈']];
}
$return_data['data'] = $find_data;
$return_data['remark'] = $remark ? $remark : [];
$return_data['image'] = $image;
return ['ErrorCode' => 1, 'ErrorMessage' => '操作成功', 'Data' => $return_data];
}
/**
* 申请完成
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param [type] $data [description]
* @return [type] [description]
*/
public static function quality($data) {
$session = $data('session');
$find_data = OrderAfter::where('id',$data['id'])->first();
$serial_number = $find_data['serial_number'];
if($find_data['status']==1 || $find_data['status']==10 || $find_data['status']==15){
}else{
return ['ErrorCode' => 2, 'ErrorMessage' => '售后状态错误', 'Data' => []];
}
Db::beginTransaction();
$rest = CommonService::accMe($find_data['sys_num'],"售后订单","【售后】申请完成,".$data['quality_content'],$serial_number,'2',$session['admin_groupnew'],$session['admin_acc'],$session['id']);
if($rest){
if ($data['file'] && $data['file'] != []){
$company_name = Admin::where('id',$find_data['deal_serid'])->value("company_name");
$inst = InstallPerson::where('admin_id',$find_data['deal_serid'])->first();//安装人员
$sql = 'INSERT INTO gone_feedsales (`type`,`gl_id`,`install_name`,`install_phone`,`install_time`,`admin_id`,`company_name`,`feedback_status`,`sys_num`,`is_type`,`feedback_pic`) VALUES';
$num = 0;
foreach($data['file'] as $key=>$val){
$num = $num + 1;
$sql .= "('".$num."','".$data['id']."','".$inst['install_name']."','".$inst['install_phone']."','".date("Y-m-d H:i:s")."','".$find_data['deal_serid']."','".$company_name."','2','".$find_data['after_num']."','2','".$val."'),";
}
$sql = substr($sql,0,strlen($sql) - 1);
DB::insert($sql);
}
$get['deal_time'] = date("Y-m-d H:i:s");
$get['status'] = '30';
$get['trigyn'] = '1';
if($Olaf['get_id'] < 1){
$get['get_id'] = $session['id'];
$get['get_time'] = date("Y-m-d H:i:s");
}
$result = OrderAfter::where('id',$Input['id'])->update($get);
if($result){
$after_num = OrderAfter::where('id',$Input['id'])->select('after_num','p_id')->first();
$get['after_num'] = $after_num['after_num'];
DB::commit();
$this->operatingTime($Input['sys_num'],'申请质保完成时间',date("Y-m-d H:i:s"),$Olaf['order_num'],$session['admin_acc']);//订单操作时间
$this->insertingLog("申请质保完成,",$Input['sys_num'],"订单(".$serial_number.")","派工单列表",$request->ip(),$session['admin_acc']);//日志
return $this->success('操作成功');exit;
}else{
DB::rollBack();
return $this->error('操作失败', ErrorInc::MYSQL_FAILED);exit; }
}else{
DB::rollBack();
return $this->error('添加备注失败', ErrorInc::MYSQL_FAILED);exit;
}
}
/**|---------------------------------------------------------------------------------
* @name 获取接单技师
* @param int $request 请求参数
* @param int $old_install_id 老技师id
* @retrun \Illuminate\Http\JsonResponse
* @author dou 2024/9/10 16:36
* |---------------------------------------------------------------------------------
*/
public static function getPerson ( $request , $old_install_id = 0 ){
$session = $request['session'];
$order_list = OrderList::where('id',$request['id'])->select('ser_id','customer_id')->first();
if($order_list){
$dress = User::where('id',$order_list['customer_id'])->select('shr_sheng','shr_shi','shr_xian','shr_adress')->first();
$end = CommonService::jingwei($dress['shr_sheng'], $dress['shr_sheng'].$dress['shr_shi'].$dress['shr_xian'].$dress['shr_adress']);
if(empty($old_install_id)) {
$list = InstallPerson::where('install_is_type',1)
->where('delet_y',1)
->where('admin_id',$session['admin_id'])
->select('id','install_name','longitude','latitude','install_province','install_city','install_cuntry','install_address')
->get();
}else{
$list = InstallPerson::where('install_is_type',1)
->where('delet_y',1)
->where('admin_id',$session['admin_id'])
->where('id','!=',$old_install_id)
->select('id','install_name','longitude','latitude','install_province','install_city','install_cuntry','install_address')
->get();
}
if($list){
$list = CommonService::dataToArray($list);
foreach( $list as $kri => $vri ){
if($vri['longitude'] && $vri['latitude']){
$start = $vri['longitude'].','.$vri['latitude'];
}else{
$start = CommonService::jingwei($vri['install_province'],$vri['install_province'].$vri['install_city'].$vri['install_cuntry'].$vri['install_address']);
}
if($vri['install_address']=='' || $start ==''){
$list[$kri]['juli'] = '';
$list[$kri]['jl'] = 100000;
$lists[] = $list[$kri];
unset($list[$kri]);continue;
}else{
$jingwei[] = $start;
}
}
if(!empty($jingwei) && !empty($end)){
$jingwei = implode('|', $jingwei);
$res = CommonService::juli($jingwei,$end,2);
}else{
$res = [];
}
$num_ = 0;
foreach ($list as $k => $v) {
if (!isset($res[$num_])) {
$list[$k]['juli'] = '';
$list[$k]['jl'] = 100000;
} else {
$list[$k]['juli'] = round($res[$num_]['distance']/1000,2) . '公里';
$list[$k]['jl'] = round($res[$num_]['distance']/1000,2);
}
$num_++;
}
if(!empty($lists) && !empty($list)) {
$list = array_merge($list, $lists);
}elseif (!empty($lists)){
$list = $lists;
}
$list = CommonService::resetListKey($list);
foreach($list as $k => $v){
$num[]=$v['jl'];
if($v['jl'] == 100000){
unset($list[$k]['jl']);
}
}
array_multisort($num, SORT_NUMERIC ,SORT_ASC, $list);
return ['ErrorCode' => 1, 'ErrorMessage' => '暂无数据', 'Data' => $list];
}else{
return ['ErrorCode' => 1, 'ErrorMessage' => '无可派单技师', 'Data' => $list];
}
}else{
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未获取订单信息', 'Data' => ''];
}
}
// 接单
public static function receiving($request,$ip)
{
$session = $request['session'];
// 查询服务单表信息
$orderListArr = OrderList::where('id',$request['id'])
->where('is_delete', 1)
->first();
if(empty($orderListArr)){
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到订单', 'Data' => []];
}
$orderListArr = CommonService::dataToArray($orderListArr);
// 判断是否派单是否锁定
if(!in_array($orderListArr['stauas'], [10,20])){
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单不是待接单状态!', 'Data' => []];
}
if ($orderListArr['locklist_type'] != 1) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单已锁定,无法接单!', 'Data' => []];
}
$MsgArr = OrderMsg::where('id',$orderListArr['order_goods_id'])
->select("goods_id","goods_name","goods_brand","goods_price")
->first();
$goods_name = $MsgArr['goods_name'];
$goods_id = $MsgArr['goods_id'];
$goods_brands = $MsgArr['goods_brand'];
$goods_name=trim($goods_name,',');
$goods_id=trim($goods_id,',');
$instArr = InstallPerson::where('id',$request['receive_install_id'])
->select("install_name","install_phone","plate_num")
->first();
if(!$instArr){
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '技师不存在!', 'Data' => []];
}
$supply_price = GhPrice::where('goods_id',$MsgArr['goods_id'])
->where('ser_id',$orderListArr['ser_id'])
->orderBy('id','Desc')
->value('supply_price');
if(!$supply_price){
$supply_price = GhPrice::where('goods_id',$MsgArr['goods_id'])
->where('ser_id',0)
->orderBy('id','Desc')
->value('supply_price');
if(!$supply_price){
$supply_price='0.00';
}
}
//end Dong
$arr['sys_num']=$orderListArr['sys_num']; //系统单号
$arr['order_num']=$orderListArr['order_num']; //平台单号
$arr['serial_number']=$request['id']; //关联的order_list_id
$arr['msg_id']=$orderListArr['order_goods_id']; //关联msg_id
$arr['p_id']=$orderListArr['p_id']; //平台id
$arr['list_id']=$orderListArr['serial_number']; //派工单编号
$arr['ser_id']=$orderListArr['ser_id']; //服务中心id
$arr['type']=2; //出售方式
// 上门安装
$arr['installperson']=$request['receive_install_id']; // 安装人id
$arr['intall_person']=$instArr['install_name'];// 安装人名称
$arr['intall_phone']=$instArr['install_phone'];// 安装人电话
$is_bool="到店安装";
$info['installation']=2;//安装分类(上门安装)
// 供货价
$arr['order_price']=$supply_price; //供货价
// 总金额
$all_price=$supply_price; //Dong
$arr['all_price']=$all_price;
// 结算状态
$arr['sett_status']=1;
// 工单状态
$arr['list_service_type']=30;
// 客户id
$arr['customer_id']=$orderListArr['customer_id'];
$arr['category']=$orderListArr['category'];
$arr['sel_type']=$orderListArr['orli_type'];
$arr['pay_types']=$orderListArr['pay_typel'];//支付方式
$arr['goods_brand']=$goods_brands;
// 锁定状态
$submit_stauas = SubmitPlease::where('submit_sys_num',$orderListArr['sys_num'])->where('msg_id',$orderListArr['order_goods_id'])->orderBy('id','DESC')->value('submit_stauas');
if($submit_stauas==1){
$arr['locked']=2;
}
/**追 溯**/
$times=date('Y-m-d H:i:s');
$sometime=substr(date('Y-m-d H:i:s',strtotime("$times-2 month")),0,10);//入仓时间
$info['goods_name']=$goods_name;//产品名称
$info['manufacturer']=GoodsBrand::where("brand_name",$MsgArr['goods_brand'])
->where('company_id',$orderListArr['company_id'])
->value('brand_remark');//生产厂家
$info['transport']=$sometime;//入仓时间
$info['order_time']=substr($times,0,10);//下单时间
$info['install_one']=$instArr['install_name'];//安装人
$info['replacing_time']=substr(date('Y-m-d H:i:s',strtotime('+2 year')),0,10);//建议更换时间
/**派工单**/
$post['stauas']=30;//派工单状态
$post['install_id']=$_POST['id'];//安装人id
$post['intall_person']=$instArr['install_name'];//安装人姓名
$post['intall_phone']=$instArr['install_phone'];//安装人电话
$post['goods_brand']=$goods_brands;
$post['goods_type']=3; //接单直接到安装中,略过检验 Dong
$post['get_time']=date("Y-m-d H:i:s");
/**订 单**/
$get['order_status']=30;//订单状态
$get['intall_person']=$instArr['install_name'];//安装人姓名
$get['intall_phone']=$instArr['install_phone'];//安装人电话
$returncount = OrderList::where('sys_num',$orderListArr['sys_num'])
->where('stauas',20)
->count();
DB::beginTransaction(); //开启事务
if($returncount==1){
$restOrderList = OrderList::where('id',$request['id'])->update($post);
$restOrder = Orders::where('sys_num',$orderListArr['sys_num'])->update($get);
if($restOrderList && $restOrder){
$restult=1;
}else{
$restult=0;
}
}else{
$restOrderList = OrderList::where('id',$request['id'])->update($post);
if($restOrderList){
$restult=1;
}else{
$restult=0;
}
}
$arr['company_id']=$orderListArr['company_id'];
$arr['agency_id']=$orderListArr['agency_id'];
$dou=SettlementList::insertGetId($arr);
if($restult==1 && $dou){
DB::commit();
Management::where('trace_code',$orderListArr['serial_number'])->update($info);
if($dou){
self::calculates($dou,$orderListArr,$supply_price,$supply_price,$session);//计算奖惩金额以及评分
}
$weixin['ser_id'] = $_POST['id'];
$weixin['order_num'] = $orderListArr['order_num']; //平台单号
$weixin['goods_name'] = '安装服务';//$v['goods_name'];
$weixin['serial_number'] = $orderListArr['serial_number'];
$weixin['install_type'] = 2;
CommonService::requestPost('http://zptzchat.bluearp.com/m/index.php/BindingAccount/push_order', $weixin);
//begin Dong
$company_name = Admin::where('id',$orderListArr['ser_id'])->select("admin_acc","company_name","reward")->first();//服务中心名称
$douId = SettlementList::where('list_id',$orderListArr['serial_number'])->value('id');
$res = SettlementMoney::where('sem_slid',$douId)->where('sem_type',17)->first();
if(!$res){
$payout_time = OrderTime::where("serial_number",$orderListArr['serial_number'])->where("is_type",'接单时间')->orderBy("id",'DESC')->value('create_time');//获取奖罚起始时间
$money_type = SetmoneyType::where("sety_id",'17')->pluck('sety_price','sety_id');
$zero1=time();//strtotime (date("Y-m-d H:i:s")); //当前时间 ,注意H 是24小时 h是12小时
$zero2=strtotime ($payout_time); //过年时间,不能写2014-1-21 24:00:00 这样不对
$guonian=($zero1-$zero2)/60; //60s*60min*24h
if($guonian<=17 && $company_name['reward']){
$money['sem_slid']=$douId;
$money['sem_synum']=$orderListArr['sys_num'];
$money['sem_creacter']=$company_name['admin_acc'];
$money['sem_price']=$money_type[17];
$money['sem_type']=17;
SettlementMoney::insert($money);
$all_price['all_price'] = SettlementMoney::where('sem_slid',$douId)->sum('sem_price');
SettlementList::where("id",$douId)->update($all_price);
}
}
//end Dong
$content = "订单".$is_bool."(".$orderListArr['serial_number'].")";
self::operating_time($orderListArr['serial_number'],'接单时间',date("Y-m-d H-i-s"),$orderListArr['order_num'],$session);//订单操作时间
self::add_thistory($orderListArr['serial_number'],'tih_acceptime',date("Y-m-d H:i:s"),$orderListArr['ser_id'],2,$session);//添加历史时间
CommonService::inserting_log('接单1,',$orderListArr['sys_num'],$content,'派工单',$session,$ip);//日志
return ['ErrorCode' => 1, 'ErrorMessage' => '操作成功', 'Data' => []];
}else{
DB::rollback();//回滚
return ['ErrorCode' => ErrorInc::MYSQL_FAILED, 'ErrorMessage' => '操作失败', 'Data' => []];
}
}
// 拒单
public static function refuse($request,$ip)
{
$session = $request['session'];
$orderListArr = OrderList::where('id',$request['id'])->select("order_num","sys_num","stauas","ser_id","p_id","ol_dispamount","serial_number")->first();
$returncount = OrderList::where('sys_num',$orderListArr['sys_num'])->select("serial_number")->get();
$returncount = CommonService::dataToArray($returncount);
$serial_number = array_unique(array_column($returncount, 'serial_number')); //派工单号
if($orderListArr['stauas']<>10 && $orderListArr['stauas']<>20 && $orderListArr['stauas']<>30){
// 拒单失败!该单状态不正确!
return ['ErrorCode' => ErrorInc::MYSQL_STEP_FAILED, 'ErrorMessage' => '订单状态错误请刷新后操作:检索码01', 'Data' => []];
}else{
if($orderListArr['stauas']!=$_POST['stauas']){
return ['ErrorCode' => ErrorInc::MYSQL_STEP_FAILED, 'ErrorMessage' => '订单状态错误请刷新后操作:检索码02', 'Data' => []];
}
}
if(count($returncount) > 1 && $request['refuseType'] == 1){
// 该订单有多款商品,该工单不可拒单
return ['ErrorCode' => 201, 'ErrorMessage' => '订单包含多个商品是否全部拒单', 'Data' => []];
}
DB::beginTransaction(); //开启事务
$rest = CommonService::accMe($orderListArr['sys_num'], '派工单列表web', "拒单,".$_POST['note_content'], implode(',', $serial_number), 2, 2, $session['install_name'], $session['install_id']);
$resultOrderList = OrderList::where("sys_num",$orderListArr['sys_num'])->delete();
if($orderListArr['stauas']==30){
$settListArr = SettlementList::where("sys_num",$orderListArr['sys_num'])->where("sett_status",'>',1)->first();
if(!empty($settListArr)){
// 该单已审核
return ['ErrorCode' => ErrorInc::MYSQL_STEP_FAILED, 'ErrorMessage' => '存在结算工单不可拒单', 'Data' => []];
}
$resultsettList = SettlementList::where("sys_num",$orderListArr['sys_num'])->delete();
}else{
$resultsettList = true;
}
$data['ser_id']=0;
$data['order_status']=10;
$resultOrder = Orders::where("sys_num",$orderListArr['sys_num'])->update($data);
if($resultOrderList && $rest && $resultsettList && $resultOrder){
->update($info);
if ($res){
DB::commit();
OrderTime::whereIn('serial_number',$serial_number)->delete();//删除工单操作时间
SettlementMoney::where('sem_synum',$orderListArr['sys_num'])->delete();//金额信息接单后生成
// M("settlement_count")->where("`cou_synum`='".$_POST['sys_num']."'")->delete();//评分信息接单后生成
DB::table('order_score')->whereIn("orsc_sernum",$serial_number)->delete();//评分信息接单后生成
Management::whereIn('trace_code',$serial_number)->delete();
CommonService::inserting_log('拒单,',$orderListArr['sys_num'],'订单('.$orderListArr['order_num'].')','派工单web',$session,$ip);//日志
self::operating_time($orderListArr['serial_number'],'拒单时间',date("Y-m-d H:i:s"),$orderListArr['order_num'],$session);//订单操作时间
OrderRejected::insert(['or_order_num'=>$orderListArr['order_num'],'or_ser_id'=>$orderListArr['ser_id'],'or_creact_time'=>date("Y-m-d H:i:s"),'or_centent'=>'门店自主拒单']);
return ['ErrorCode' => 1, 'ErrorMessage' => '操作成功', 'Data' => []];
return ['ErrorCode' => 1, 'ErrorMessage' => '确认成功', 'Data' => []];
}else{
DB::rollback();//回滚
return ['ErrorCode' => ErrorInc::MYSQL_FAILED, 'ErrorMessage' => '操作失败', 'Data' => []];
}
}
/**|---------------------------------------------------------------------------------
* @name 预约安装
* @param int id 订单单号
* @param string day_time 预约是啊金
* @retrun \Illuminate\Http\JsonResponse /multitype:array
* @author dou 2024/9/11 0:36
* |---------------------------------------------------------------------------------
*/
public static function contact ( $request , $ip){
public static function info($request) {
$session = $request['session'];
$orderListArr = OrderTime::where("id",$request['id'])->select("order_num","sys_num","stauas","ser_id","p_id","customer_id","serial_number","ol_dispamount")->first();
if($orderListArr['stauas'] <> 30){
// 拒单失败!该单状态不正确!
return ['ErrorCode' => ErrorInc::MYSQL_STEP_FAILED, 'ErrorMessage' => '订单状态错误请刷新后操作:检索码01', 'Data' => []];
}
$data['day_time']=$request['delay_time'];
$res = Orders::where("sys_num",$orderListArr['sys_num'])->update($data);
$ress = OrderList::where("id",$request['id'])->update($data);
if($res && $ress){
self::operating_time($orderListArr['serial_number'],'安装预约时间',date("Y-m-d H-i-s"),$orderListArr['order_num'],$session);//订单操作时间
self::updateLineSrate($request['coordinate'], 2, $orderListArr['serial_number'], $orderListArr['sys_num'], $orderListArr['order_num']);
return ['ErrorCode' => 1, 'ErrorMessage' => '操作成功', 'Data' => []];
}else{
return ['ErrorCode' => ErrorInc::MYSQL_FAILED, 'ErrorMessage' => '操作失败', 'Data' => []];
}
}
// 检验
public static function inspect($request)
{
// 查询工单表信息
$find_design_order = DB::table('orders')->where('id', $request['id'])
->where('is_delete', 1)
->select('id', 'sys_num', 'order_num', 'order_status', 'lock_type','orders_sertatus', 'ser_id', 'p_id')
->first();
// 判断是否已派单
if (empty($find_design_order)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到订单', 'Data' => []];
}
$find_design_order = objectToArray($find_design_order);
if ($find_design_order['orders_sertatus'] != 2) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单不是待检验,无法检验!', 'Data' => []];
}
if ($find_design_order['lock_type'] != 1) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单已锁定,无法检验!', 'Data' => []];
}
$user_info = CommonService::webgetUserInfo($request['api_token']);
DB::beginTransaction();
$find_orli_data = DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('order_num', $find_design_order['order_num'])
->where('is_delete', 1)
->select('id', 'serial_number', 'stauas')
->get()->toArray();
if (empty($find_orli_data)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到服务工单', 'Data' => []];
}
$find_orli_data = objectToArray($find_orli_data);
// 批量添加时间节点
foreach ($find_orli_data as $key => $val) {
timeLog($val['serial_number'], $find_design_order['order_num'], $user_info->install_name, "检验时间", date('Y-m-d H:i:s'));
}
// 更改工单信息
$service_data=[];
$service_data['stauas'] = 3; //工单状态:1未接单2已接单3安装中
$service_data['service_state'] = 4; //技师服务状态:0未派单1未接单2已接单(未检验)3已拒单4已检验5安装中6完成待审核
$deor_res = DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('order_num', $find_design_order['order_num'])
->where('is_delete', 1)
->update($service_data);
$order_res=DB::table('orders')
->where('id', $request['id'])
->update(['orders_sertatus'=>4]);
if ($deor_res && $order_res) {
DB::commit();
sertimeLog($find_design_order['sys_num'], $find_design_order['order_num'], $user_info->install_name, "检验时间", date('Y-m-d H:i:s'),$find_design_order['ser_id']);
return ['ErrorCode' => 1, 'ErrorMessage' => '检验成功', 'Data' => []];
} else {
DB::rollback();
return ['ErrorCode' => 500, 'ErrorMessage' => '失败', 'Data' => []];
}
}
// 开始安装
public static function startInstall($request)
{
// 查询工单表信息
$find_design_order = DB::table('orders')->where('id', $request['id'])
->where('is_delete', 1)
->select('id', 'sys_num', 'order_num', 'order_status', 'lock_type','orders_sertatus', 'ser_id', 'p_id')
->first();
// 判断是否已派单
if (empty($find_design_order)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到订单', 'Data' => []];
}
$find_design_order = objectToArray($find_design_order);
if ($find_design_order['orders_sertatus'] != 4) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单未检验!', 'Data' => []];
}
if ($find_design_order['lock_type'] != 1) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单已锁定,无法拒单!', 'Data' => []];
}
$user_info = CommonService::webgetUserInfo($request['api_token']);
DB::beginTransaction();
$find_orli_data = DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('order_num', $find_design_order['order_num'])
->where('is_delete', 1)
->select('id', 'serial_number', 'stauas')
->get()->toArray();
if (empty($find_orli_data)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到服务工单', 'Data' => []];
}
$find_orli_data = objectToArray($find_orli_data);
// 批量添加时间节点
foreach ($find_orli_data as $key => $val) {
timeLog($val['serial_number'], $find_design_order['order_num'], $user_info->install_name, "开始安装", date('Y-m-d H:i:s'));
}
// 更改工单信息
$service_data=[];
$service_data['stauas'] = 3; //工单状态:1未接单2已接单3安装中
$service_data['service_state'] = 5; //技师服务状态:0未派单1未接单2已接单3已拒单4已检验5安装中6已安装完成
$deor_res = DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('order_num', $find_design_order['order_num'])
->where('is_delete', 1)
->update($service_data);
$order_res=DB::table('orders')
->where('id', $request['id'])
->update(['orders_sertatus'=>5]);
if ($deor_res && $order_res) {
DB::commit();
// czrzLog("拒单,", $find_design_order['serial_number'], "移动端技师拒单", "订单系统", request::ip(), $user_info->install_name);
sertimeLog($find_design_order['sys_num'], $find_design_order['order_num'], $user_info->install_name, "开始安装", date('Y-m-d H:i:s'),$find_design_order['ser_id']);
return ['ErrorCode' => 1, 'ErrorMessage' => '已开始施工', 'Data' => []];
} else {
DB::rollback();
return ['ErrorCode' => 500, 'ErrorMessage' => '开始施工失败', 'Data' => []];
}
}
// 申请完成
public static function installFeedback($request)
{
// 查询工单表信息
$find_design_order = DB::table('orders')->where('id', $request['id'])
->where('is_delete', 1)
->select('id', 'sys_num', 'order_num', 'order_status', 'lock_type','orders_sertatus', 'ser_id', 'p_id')
->first();
// 判断是否已派单
if (empty($find_design_order)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到订单', 'Data' => []];
}
$find_design_order = objectToArray($find_design_order);
if ($find_design_order['orders_sertatus'] != 5) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前工单未安装!', 'Data' => []];
}
if ($find_design_order['lock_type'] != 1) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前工单已锁定,无法拒单!', 'Data' => []];
}
$user_info = CommonService::webgetUserInfo($request['api_token']);
// 获取所有的工单数据
$order_list = DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('is_delete', 1)
->select('id', 'serial_number', 'service_state','orli_reject')
->get();
if (empty($order_list)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到服务工单', 'Data' => []];
}
$order_list = objectToArray($order_list);
// 顺便判断一下工单状态
foreach ($order_list as $key => $val) {
if ($val['service_state'] != 5 && $val['service_state'] != 6) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前工单不是施工反馈状态!', 'Data' => []];
}
}
DB::beginTransaction();
// 更改工单信息
$service_data=[];
$service_data['stauas'] = 4; //工单状态:1未接单2已接单3安装中4待完成5已完成6已拒单7已撤销
$service_data['service_state'] = 6; //技师服务状态:0未派单1未接单2已接单3已拒单4已检验5安装中6已安装完成
$service_data['update_time'] = date('Y-m-d H:i:s');
$service_data['orli_reject'] = 1;
// 更改服务工单结算表
$seli_edit_data=[];
$seli_edit_data['list_service_type'] = $service_data['stauas']; //派工单状态:1未接单2已接单【废弃】3安装中4完成待审核5已完成6已拒单7已撤销8延期审图9延期结算
$seli_edit_data['update_time'] = date('Y-m-d H:i:s'); //更新时间
$is_edit=0;
$is_over=0;
$deor_res=true;
foreach ($order_list as $key => $val) {
if($val['service_state']==6 && $val['orli_reject']==1){
$is_edit++;
continue;
}
// 部分完成则判断是否有上传图片
if($request['type']==1){
// 判断是否有图片反馈
$feed_res=Db::table('feedback')
->where('gl_id',$val['id'])
->where('is_delete', 1)
->select("id")
->get()->toArray();
if(empty($feed_res)){
$is_over++;
continue;
}
}
$is_edit++;
// 更改工单信息
$orli_res = DB::table('order_list')
->where('id', $val['id'])
->update($service_data);
if(!$orli_res){
$deor_res=$orli_res;
}
$seli_edit_res = DB::table('settlement_list')
->where('serial_number', $val['serial_number'])
->where('list_id', $val['id'])
->update($seli_edit_data);
timeLog($val['serial_number'], $find_design_order['order_num'], $user_info->install_name, "反馈时间", date('Y-m-d H:i:s'));
}
$order_data=[];
$order_data['order_status'] = 8;
$order_data['update_time'] = date('Y-m-d H:i:s');
$order_data['orders_sertatus']=5;
if($is_over==0){
$order_data['orders_sertatus']=6;
}
// 更改订单信息
$ord_res = DB::table('orders')
->where('id', $find_design_order['id'])
->update($order_data);
if ($deor_res && $ord_res) {
DB::commit();
$str=$order_data['orders_sertatus']==5?'部分反馈':'反馈时间';
sertimeLog($find_design_order['sys_num'], $find_design_order['order_num'], $user_info->install_name, $str, date('Y-m-d H:i:s'),$find_design_order['ser_id']);
return ['ErrorCode' => 1, 'ErrorMessage' => '施工申请完成', 'Data' => []];
} else {
DB::rollback();
return ['ErrorCode' => 500, 'ErrorMessage' => '申请完成失败', 'Data' => []];
}
}
// 施工图片反馈
public static function imageFeedback($request){
// 查询工单表信息
$find_design_order = DB::table('order_list')
->where('id', $request['id'])
->where('is_delete', 1)
->select('id', 'serial_number', 'sys_num', 'order_num', 'ord_id', 'service_state', 'lock_state', 'ser_id', 'p_id')
->first();
// 判断是否已派单
if (empty($find_design_order)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到订单', 'Data' => []];
}
$find_design_order = objectToArray($find_design_order);
if ($find_design_order['service_state'] != 5) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前工单状态错误!', 'Data' => []];
}
$find_inpe_data = DB::table('install_person')
->where('admin_id', $request['admin_id'])
->where('delet_y', 1)
->select('install_name', 'install_phone')
->first();
$find_inpe_data = objectToArray($find_inpe_data);
// 查询成员账号信息表
$find_adm_data = DB::table('admin')
->where('id', $request['admin_id'])
->select('admin_acc', 'company_name')
->first();
$find_adm_data = objectToArray($find_adm_data);
$image_url=$request['image_url'];
$image_id=$request['image_id'];
$image_type=$request['image_type'];
if($image_url =='undefined'){
return ['ErrorCode' => 500, 'ErrorMessage' => $image_type.'上传失败请重新上传', 'Data' => []];
}
DB::beginTransaction();
$edit_res=true;
// 不是0 则为编辑
if($image_id != 0){
$image_data=Db::table('feedback')
->where('gl_id',$request['id'])
->where('is_delete', 1)
->where('id',$image_id)
->select('feedback_pic')
->first();
if(!empty($image_data)){
$image_path=$image_data->feedback_pic;
// http://3m127.bluearp.com/storage/app/public/image/2022/11/15/166848425637152.jpg
// http://3m127.bluearp.com/storage/image/2022/11/15/166848420917354.jpg
// url 路径里 app/public 被忽略了;
// $image_path=str_replace('storage/image','storage/app/public/image',$image_path);
// $image_path=substr($image_path,strpos($image_path,'storage/app'));
$image_path=substr($image_path,strpos($image_path,'storage'));
// dd(11);
if(file_exists($image_path)){
unlink($image_path);
}
Db::table('feedback')
->where('gl_id',$request['id'])
->where('is_delete', 1)
->where('id',$image_id)
->delete();
}
}
$add_feed=[];
$add_feed['type'] = 1; //图片类型
$add_feed['gl_id'] = $request['id']; //反馈关联id
$add_feed['install_name'] = $find_inpe_data['install_name']; //安装人员姓名
$add_feed['install_phone'] = $find_inpe_data['install_phone']; //安装电话
$add_feed['install_remark'] = ''; //安装备注
$add_feed['install_time'] = date('Y-m-d H:i:s'); //安装时间
$add_feed['admin_id'] = $request['admin_id']; //所属服务中心id
$add_feed['company_name'] = $find_adm_data['company_name']; //服务中心名称
$add_feed['feedback_status'] = 2; //是否安装
$add_feed['feedback_pic'] = $image_url; //凭证图片
$add_feed['sys_num'] = 'rwfk' . $request['id']; //所属服务中心id
$add_feed['is_type'] = 2; //1微信2第三方
$add_feed['type_name'] = $image_type; //类型名称
$add_feed_id = DB::table('feedback')->insertGetId($add_feed);
if ($add_feed_id && $edit_res) {
DB::commit();
return ['ErrorCode' => 1, 'ErrorMessage' => '图片回传成功', 'Data' => ['feed_id'=>$add_feed_id]];
} else {
DB::rollback();
return ['ErrorCode' => 500, 'ErrorMessage' => $add_feed_id.'图片回传失败'.$edit_res, 'Data' => []];
}
}
// 施工时 车牌车架号反馈
public static function LicenseFeedback($request){
// 查询工单表信息
$find_design_order = DB::table('orders')->where('id', $request['id'])
->where('is_delete', 1)
->select('id', 'sys_num', 'order_num', 'order_status', 'lock_type','orders_sertatus', 'ser_id', 'p_id')
$data = DB::table('statements_list')
->where('stl_id', $request['id'])
->select('stl_money', 'stl_wat')
->first();
// 判断是否已派单
if (empty($find_design_order)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到订单', 'Data' => []];
}
$find_design_order = objectToArray($find_design_order);
if ($find_design_order['orders_sertatus'] != 5) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单状态错误!', 'Data' => []];
}
if ($find_design_order['lock_type'] != 1) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '当前服务单已锁定,无法反馈!', 'Data' => []];
}
$license_plate=$request['license_plate'];
if($license_plate != ''){
$repeat_res = DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('is_delete', 1)
->where('id','<>',$request['gd_id'])
->where('license_plate',$license_plate)
->select('id')
->get()
->toArray();
if(!empty($repeat_res)){
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '车牌/车架号填写重复', 'Data' => []];
}
}
$res=DB::table('order_list')
->where('sys_num', $find_design_order['sys_num'])
->where('is_delete', 1)
->where('id',$request['gd_id'])
->update(['license_plate'=>(string)$license_plate,'update_time'=>date('Y-m-d H:i:s')]);
if($res){
return ['ErrorCode' => 1, 'ErrorMessage' => '回传车架号成功', 'Data' => []];
}else{
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => '保存车架号失败', 'Data' => []];
}
}
// 获取工单反馈信息
public static function getFeedback($request)
{
// 查询服务单表信息
$orders_data = DB::table('orders')
->where('id', $request['id'])
->where('is_delete', 1)
->select('id','sys_num')
->first();
if (empty($orders_data)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到服务单', 'Data' => []];
}
// 获取所有的工单数据
$order_list = DB::table('order_list')
->where('sys_num', $orders_data->sys_num)
->where('is_delete', 1)
->select('id','serial_number',"sys_num", 'license_plate','service_state','orli_reject')
->orderBy('service_state')
->get();
if (empty($order_list)) {
return ['ErrorCode' => ErrorInc::DATA_EMPTY, 'ErrorMessage' => '未查询到工单', 'Data' => []];
}
$order_list = objectToArray($order_list);
$no_pic=[];
$no_pic['gl_id'] = 0;
$no_pic['feedback_pic'] = config('apisystem.HTTP_URL') . 'image/icon/webapp_no_pictures.png';
$no_pic['type_name'] = '暂无图片';
foreach ($order_list as $key => $val) {
// 查询反馈信息
$list_data = DB::table('feedback')
->where('gl_id',$val['id'])
->where('is_delete', 1)
->select("id",'gl_id', 'feedback_pic', 'type_name')
->orderBy('type_name','asc')
->get()->toArray();
if (empty($list_data)) {
$list_data = [$no_pic];
}
$order_list[$key]['list_data']=$list_data;
}
return ['ErrorCode' => 1, 'ErrorMessage' => '获取信息成功', 'Data' => $order_list];
}
// 获取技师
public static function getInstallPerson($request)
{
// 查询工单表信息
$find_inpe_data = InstallPerson::where('delet_y', 1)
->where('admin_id', $request['admin_id'])
->where('install_is_type', 1) //状态:1启用2停用
->where(function ($query) use ($request) {
if (!empty($request['install_name'])) {
$query->where('check_code', 'like', '%' . $request['install_name'] . '%')
->orWhere('install_name', 'like', '%' . $request['install_name'] . '%');
}
})
->select('id', 'check_code', 'install_name')
->get()->toArray();
return ['ErrorCode' => 1, 'ErrorMessage' => '获取成功', 'Data' => $find_inpe_data];
}
// 获取标签
public static function getLabel($request)
{
// 查询工单表信息
$find_sety_data = DB::table('setmoney_type')
->where('lt_parent_id', 694)
->where('lt_statues', 1)
->where(function ($query) use ($request) {
if (!empty($request['sety_name'])) {
$query->where('sety_name', 'like', '%' . $request['sety_name'] . '%');
}
})
->select('sety_id', 'sety_name')
->get()->toArray();
return ['ErrorCode' => 1, 'ErrorMessage' => '获取成功', 'Data' => $find_sety_data];
}
// 获取操作记录
public static function operatingRecord($request)
{
// 查询操作表信息
$find_data = DB::table('orderserver_time')
->where('serial_number', $request['serial_number'])
->where('ser_id', $request['admin_id'])
->select('create_time', 'is_type')
->orderby('id', 'desc')
->get()->toArray();
return ['ErrorCode' => 1, 'ErrorMessage' => '获取成功', 'Data' => $find_data];
}
// 订单操作时间
public static function operating_time($num,$type,$time,$order_num,$session){
$data['serial_number']=$num;
$data['create_name']=$session['install_name'];
$data['is_type']=$type;
$data['create_time']=$time;
$data['order_num']=$order_num;
$result = OrderTime::insert($data);
if($result){
return 1;
}else{
return 2;
}
}
//添加时间戳
public static function add_thistory ($number,$timetype,$time,$ser_id,$type,$session){
if($type==1){
$poss[$timetype]=strtotime($time);
$poss['tih_serid']=$ser_id;
$poss['tih_number']=$number;
$poss['company_type']=$session['install_name'];
DB::table('time_history')->insert($poss);
}else{
$poss[$timetype]=strtotime($time);
DB::table('time_history')->where("tih_number",$number)->update($poss);
}
}
/**|---------------------------------------------------------------------------------
* @name 同步施工节点
* @param string $coordinate 坐标
* @param string $line_state 节点状态
* @param string $line_serm 工单号
* @param string $line_sysnum 系统单号
* @param string $line_number 单号
* @retrun \Illuminate\Http\JsonResponse /multitype:array
* @author dou 2024/9/11 0:45
* |---------------------------------------------------------------------------------
*/
public static function updateLineSrate ( $coordinate , $line_state , $line_serm , $line_sysnum , $line_number ){
$install_line = InstallLine::where("line_serm",$line_serm)->first();
switch ( $line_state ){
case 2:
$line['line_contact'] = $coordinate;
$line['line_contact_time'] = date("Y-m-d H:i:s");
break;
case 3:
$line['line_start'] = $coordinate;
$line['line_start_time'] = date("Y-m-d H:i:s");
break;
case 4:
$line['line_arrive'] = $coordinate;
$line['line_arrive_time'] = date("Y-m-d H:i:s");
break;
case 5:
$line['line_task'] = $coordinate;
$line['line_task_time'] = date("Y-m-d H:i:s");
break;
case 6:
$line['line_end'] = $coordinate;
$line['line_end_time'] = date("Y-m-d H:i:s");
break;
default:
return false;
break;
}
$line['line_lasttime'] = date("Y-m-d H:i:s");
$line['line_state'] = $line_state;
if(empty($install_line)){
$line['line_serm'] = $line_serm;
$line['line_sysnum'] = $line_sysnum;
$line['line_number'] = $line_number;
$line['line_serm'] = $line_serm;
$res = InstallLine::insert($line);
}else{
$line_states = $line_state-1;
if($line_states < $install_line['line_state']){
return false;
}else{
$res = InstallLine::where("line_serm",$line_serm)->update($line);
}
}
return $res;
}
#计算奖惩金额以及评分
public static function calculates($dou,$orderListArr,$supply_price,$manhourfee,$session){
#商品供货金额
$money['sem_slid'] = $dou;
$money['sem_synum'] = $orderListArr['sys_num'];
$money['sem_price'] = $manhourfee;
$money['sem_creacter'] = $session['install_name'];
$money['sem_type'] = 1;
$money['add_time'] = date("Y-m-d H:i:s");
SettlementMoney::insert($money);
// #开始计算奖惩金额以及评分
// $payout_time = OrderTime::where('serial_number',$orderListArr['serial_number'])
// ->where('is_type','起始时间')
// ->orderBy('id','DESC')
// ->value('create_time');//获取奖罚起始时间
// $zero1 = time();
// $zero2 = strtotime($payout_time);
// $guonian = ($zero1-$zero2)/60;
// #计算评分
// if($guonian<=5){
// $score['orsc_grade'] = 5;
// }if($guonian>5 && $guonian<=10){
// $score['orsc_grade'] = 2;
// }if($guonian>10){
// $score['orsc_grade'] = 1;
// }
// $score['orsc_sernum'] = $orderListArr['serial_number'];
// $score['orsc_slid'] = $dou;
// $score['orsc_creacter'] = $session['install_name'];
// $score['orsc_type'] = 1;
// DB::table("order_score")->insert($score);
// //默认生成平台评分十分
// $scoreq['orsc_grade'] = 5;
// $scoreq['orsc_sernum'] = $orderListArr['serial_number'];
// $scoreq['orsc_slid'] = $dou;
// $scoreq['orsc_creacter'] = $session['install_name'];
// $scoreq['orsc_type']=2;
// DB::table("order_score")->insert($score);
$info_data = DB::table('settlement_list as s')
->leftJoin('order_list as o', 'o.serial_number', '=', 's.list_id')
->leftJoin('order_msg as om', 'om.id', '=', 'o.order_goods_id')
->where('s.ser_id', $session['admin_id'])
->where('wat_num', $data['stl_wat'])
->select('s.id','s.sys_num', 's.create_time', 'all_price', 'list_id', 'om.goods_name', 'om.goods_num')
->get();
$data['info_data'] = $info_data;
return ['ErrorCode' => 1, 'ErrorMessage' => '成功', 'Data' => $data];
}
}
......@@ -66,7 +66,7 @@ class OrderDeductionFeeService extends Service
$add_dfee['reo_pay_time'] = date('Y-m-d H:i:s');
$add_dfee['reo_pay_way'] = 1;
$add_dfee['reo_type'] = 2;
$add_dfee['reo_client_type'] = 2;
$add_dfee['reo_client_type'] = $find_company_info['com_type'];
$update['adre_banlance'] = $find_balance['adre_banlance'] + $data['reo_price'];
if (($update['adre_banlance'] + $find_balance['adre_credit_limit']) <= 0) {
return ['code'=>500, 'msg'=>'余额不足,请充值'];
......
......@@ -979,7 +979,6 @@ class OrderService extends Service
DB::beginTransaction();
$shr_code = UserService::getUserBy('id', $orderinfo['new_customer_id'],['shr_code','is_jdservice']);
if($shr_code['shr_code'] == ''){
// DB::beginTransaction();
$appoint_code = OrderService::creactCode($orderinfo['p_id']);
if($appoint_code){
$user['shr_code'] = $appoint_code;
......@@ -992,13 +991,11 @@ class OrderService extends Service
DB::rollback();
return ['Data' => '', 'ErrorMessage' => '生成客户识别码失败,请重试!', 'ErrorCode' => ErrorInc::MYSQL_FAILED];
}
// DB::commit();
}
if ($orderinfo['order_status'] > 10) {
DB::rollback();
return ['Data' => '', 'ErrorMessage' => '派单失败,该订单状态不正确,请刷新核实!', 'ErrorCode' => ErrorInc::REQUEST_FORBIDDEN];
} else {
$sub_types = PlatformService::getFieldsById($orderinfo['p_id'],['bus_type','pcl_id']);
$pcl_id = $sub_types['pcl_id'];
$sub_type = $sub_types['bus_type'];
......@@ -1032,7 +1029,6 @@ class OrderService extends Service
}
}
}
// DB::commit();
}else{
return ['Data' => '', 'ErrorMessage' => '下属商品数据异常', 'ErrorCode' => ErrorInc::INVALID_PARAM];
}
......@@ -1080,10 +1076,6 @@ class OrderService extends Service
$pt_instData[]=$pt_install;
DB::table('pt_installog')->insert($pt_instData);
// if($pt_data['pt_warnamount'] >= ($pt_data['pt_prepamount']-$pt_data['pt_dispamount']) && $pt_data['pt_warnuserid']){
// //
// $this->addNotice_Message(3,1,1,2,[$pt_data['pt_warnuserid']],'预充值金额不足',"平台:".$pt_data['pt_name'].",预充值金额已低于上次充值的30%的份额了。请前往平台管理进行充值操作");
// }
}else{
$pt_res = true;
}
......@@ -1155,15 +1147,12 @@ class OrderService extends Service
/***订单操作时间***/
$BaseController->operatingTime($number, '下单时间', $orderinfo['create_time'], $orderinfo['order_num'], $session['admin_acc']);//订单操作时间
$BaseController->operatingTime($number, '派单时间', date("Y-m-d H:i:s"), $orderinfo['order_num'], $session['admin_acc']);//订单操作时间
// $BaseController->operatingTime($number, '起始时间', $payout_time, $orderinfo['order_num'], $session['admin_acc']);//订单操作时间
$BaseController->addThistory($number, 'tih_crecttime', $payout_time, $input['ser_id'], 1);//添加历史时间
/***************半径推送******************************/
// $store=SyncStores::where("ser_id",$input['ser_id'])->where("type",2)->value('id');
$store = CommonService::getSyncStores($input['ser_id'], $orderinfo['category']);
if(!empty($store)){
$pt_id_arr = PlatformService::getPtIdByPtType();
// $supply_price = DB::table('gh_price')->where(['goods_id'=>$v['goods_id'],'ser_id'=>'0'])->orderBy('id',"DESC")->value('supply_price');
if(in_array($orderinfo['p_id'], $pt_id_arr)){
$supply_price = GhXPrice::whereRaw("`goods_id`='" . $v['goods_id'] . "' and `ser_id`=0")->orderBy('id', 'DESC')->value('supply_price');
}else {
......@@ -1233,24 +1222,13 @@ class OrderService extends Service
$arr['company_id'] = $orderinfo['company_id'];
$returnMan = Management::insert($arr);
if ($returnOrderList) {
// if(!empty($serid)){
// $weixin['ser_id'] = $serid;
// }else{
$weixin['ser_id'] = $input['ser_id'];
// }
$weixin['ser_id'] = $input['ser_id'];
$weixin['order_num'] = $orderinfo['order_num'];
$weixin['goods_name'] = '安装服务';//$v['goods_name'];
$weixin['serial_number'] = $number;
$weixin['dress'] = $shr_phone['shr_sheng'].$shr_phone['shr_shi'].$shr_phone['shr_xian'].$shr_phone['shr_adress'];
CommonService::requestPost('http://zptzchat.bluearp.com/m/index.php/BindingAccount/push_order', $weixin);
/* if($v['category']==3) {
$smart_store = $input['smart_store']??1;
if($input['ser_id']<>'2006' && $input['ser_id']<>'2446' && $input['ser_id']<>'2445' && $input['ser_id']<>'3618' && $input['ser_id']<>'2697' && $input['ser_id']<>'4012' && $input['ser_id']<>'7098' && $input['ser_id']<>'7099' && $input['ser_id']<>'7655' && $smart_store !=2) {
self::server_order($orderinfo['p_id'], $input['sys_num'], $orderinfo['new_customer_id'], $v['id'], $input['ser_id'], $orderinfo['order_num'], $session);
}
}*/
/*--------------------------添加订单执行统计记录开始------------------------------------*/
$relation['sys_num'] = $input['sys_num'];//系统单号
......@@ -1273,7 +1251,6 @@ class OrderService extends Service
/*--------------------------添加订单执行统计记录结束------------------------------------*/
/*--------------------------添加工单回访记录开始------------------------------------*/
// $visit_sys = OrderVisit::where('ov_sys', $input['sys_num'])->value("ov_id");
$visit_data['ov_serial'] = $number;
$visit_data['ov_sys'] = $input['sys_num'];
$visit_data['ov_order'] = $orderinfo['order_num'];
......@@ -1305,9 +1282,13 @@ class OrderService extends Service
// 扣费
$post_data['adm_id'] = $orderinfo['admin_id'];
$post_data['company_id'] = $orderinfo['company_id'];
$post_data['order_number'] = $orderinfo['sys_num'];
$post_data['order_number'] = $input['sys_num'];
$post_data['reo_price'] = -0.5;
$reduce_price = OrderDeductionFeeService::deductFee($post_data);
if ($reduce_price['code'] == 500) {
DB::rollback();
return ['Data' => '', 'ErrorMessage' =>$reduce_price['msg'], 'ErrorCode' => 2];
}
if ($returnOrder && $returnOrderList && $returnMan && $pt_res) {
DB::commit();
......
......@@ -1472,5 +1472,7 @@ Route::namespace('Api')->group(function () {
// 账单列表
Route::post('w1/statement/index','MobileWeb\StatementsListController@index');//列表页
Route::post('w1/statement/info','MobileWeb\StatementsListController@info');//列表页
Route::post('w1/statement/businessFirm','MobileWeb\StatementsListController@businessFirm');//商家确认
});
});
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论