ctms/ctms-api/controllers/OrdercheckController.php
2025-04-10 23:19:13 +08:00

303 lines
11 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
# @Author: 嗨噜客(三亚) <fm453>
# @Date: 2022-04-24T20:28:47+08:00
# @Email: fm453@lukegzs.com
# @Last modified by: fm453
# @Last modified time: 2022-05-21T22:11:58+08:00
# @Copyright: www.hiluker.cn
namespace backend\controllers;
use Yii;
use yii\data\Pagination;
use addons\models\AcCar;
use addons\models\AcCarOwner;
use addons\models\AcCarBrand;
use addons\models\AcCarSeries;
use addons\models\AcStore;
use addons\models\AcEmployee;
use addons\models\AcOrder;
use addons\models\AcOrderPre;
use addons\models\AcOrderStatus;
use addons\models\AcTruck;
use addons\models\AcDriver;
use addons\models\AcPlat;
use common\models\CVcode;
use addons\models\AcContact;
use common\models\Member as User;
use addons\models\AcUserExt;
use common\models\Fans;
class OrdercheckController extends Common
{
public function beforeAction($action)
{
if (!$this->pid) {
$this->result('您正使用本系统内部接口,禁止非法链接使用!');
}
return parent::beforeAction($action);
}
public function actionIndex()
{
$apis = [
'basic'=>'基础验车', //启运网点
'online'=>'中转验车',
'arrive'=>'到站验车', //目的地网点
];
$this->result('您正使用CMTS系统运单验车管理接口', $apis, 200);
}
public function actionBasic()
{
$pid = $this->pid;
$status = Yii::$app->params['OrderStatus'];
$post = $this->postdata;
$id = isset($post['oid']) ? $post['oid'] : 0;
if ($id<=0) {
$this->result('查询参数错误!');
}
$AcOrder = new AcOrder();
$order = $AcOrder->findOne($id);
if (!$order) {
$this->result('该运单数据不存在!');
}
if (!isset($post['checks'])) {
$this->result('验车参数错误!');
}
$checks = $post['checks']; //需要更新的验车信息
//判断执行权限 S
if (!$this->user_info) {
$this->result('无有效用户登陆信息,无权操作!');
}
if (!$this->employee_id) {
$this->result('未表明员工工号身份!');
}
//判断执行权限 E
$hasChange = 0; //是否有需要更新的数据
$op = isset($post['op']) ? $post['op'] : '';
$isOss = true; //是否启用OSS服务
switch ($op) {
case 'data':
$hasChange = 1;
$checker = isset($checks['checker']) ? trim($checks['checker']) : '';
$order->checker = $checker ? $checker : $this->user_info->username;
$start_km = isset($checks['start_km']) ? (int) $checks['start_km'] : 0;
$order->start_km = $start_km;
$is_driving_lisence = isset($checks['is_driving_lisence']) ? (int)$checks['is_driving_lisence'] : 0;
$order->no_driving_lisence = $is_driving_lisence==1 ? 1 : 0;
$car_extra = isset($checks['car_extra']) ? trim($checks['car_extra']) : '';
$order->car_extra = $car_extra;
break;
case 'driving_lisence':
$k = 'driving_lisence';
if (isset($checks[$k]) && $checks[$k]) {
if (!$isOss) {
$file = Yii::getAlias('@upload-src').$checks[$k];
if (file_exists($file)) {
$hasChange = 1;
$order->$k = $checks[$k];
}
} else {
$hasChange = 1;
$order->$k = $checks[$k];
}
}
break;
case 'thumb_f':
$k = 'thumb_f';
if (isset($checks[$k]) && $checks[$k]) {
if (!$isOss) {
$file = Yii::getAlias('@upload-src').$checks[$k];
if (file_exists($file)) {
$hasChange = 1;
$order->$k = $checks[$k];
}
} else {
$hasChange = 1;
$order->$k = $checks[$k];
}
}
break;
case 'thumb_b':
$k = 'thumb_b';
if (isset($checks[$k]) && $checks[$k]) {
$file = Yii::getAlias('@upload-src').$checks[$k];
if (file_exists($file)) {
$hasChange = 1;
$order->$k = $checks[$k];
}
}
break;
case 'thumb_l':
$k = 'thumb_l';
if (isset($checks[$k]) && $checks[$k]) {
if (!$isOss) {
$file = Yii::getAlias('@upload-src').$checks[$k];
if (file_exists($file)) {
$hasChange = 1;
$order->$k = $checks[$k];
}
} else {
$hasChange = 1;
$order->$k = $checks[$k];
}
}
break;
case 'thumb_r':
$k = 'thumb_r';
if (isset($checks[$k]) && $checks[$k]) {
if (!$isOss) {
$file = Yii::getAlias('@upload-src').$checks[$k];
if (file_exists($file)) {
$hasChange = 1;
$order->$k = $checks[$k];
}
} else {
$hasChange = 1;
$order->$k = $checks[$k];
}
}
break;
case 'thumbs':
$k = 'thumbs';
if (isset($checks[$k]) && $checks[$k]) {
$hasChange = 1;
$thumbs = json_encode($checks[$k]);
$order->$k = $thumbs;
}
break;
case 'all':
$keys = ['driving_lisence','thumb_f','thumb_b','thumb_l','thumb_r'];
foreach ($keys as $k) {
if (isset($checks[$k]) && $checks[$k]) {
if (!$isOss) {
$file = Yii::getAlias('@upload-src').$checks[$k];
if (file_exists($file)) {
$hasChange = 1;
$order->$k = $checks[$k];
}
} else {
$hasChange = 1;
$order->$k = $checks[$k];
}
}
}
$k = 'thumbs';
if (isset($checks[$k]) && $checks[$k]) {
$hasChange = 1;
$thumbs = json_encode($checks[$k]);
$order->$k = $thumbs;
}
$checker = isset($checks['checker']) ? trim($checks['checker']) : '';
$order->checker = $checker ? $checker : $this->user_info->username;
$start_km = isset($checks['start_km']) ? (int) $checks['start_km'] : 0;
$order->start_km = $start_km;
$is_driving_lisence = isset($checks['is_driving_lisence']) ? (int)$checks['is_driving_lisence'] : 0;
$order->no_driving_lisence = $is_driving_lisence==1 ? 1 : 0;
$car_extra = isset($checks['car_extra']) ? trim($checks['car_extra']) : '';
$order->car_extra = $car_extra;
if ($hasChange) {
$order->is_checked = 1;
}
break;
}
if ($hasChange) {
$res = $order->save();
$this->result('操作完成!', null, 200);
} else {
$this->result('没有要更新的数据!', null, 200);
}
}
public function actionAjax()
{
$get = Yii::$app->request->get();
$post = Yii::$app->request->post();
$id = (int)$get['id'];
$data = $where = [];
$where['id'] = $id;
$data['update_at'] = time();
$model = new AcOrder();
$res = $model->findOne($id);
$return = [];
$return['timeout'] = 1; //几秒后自动跳转
$return['status'] = 0;
$return['ajax'] = 1;
if (!$res) {
$return['msg'] = '订单数据不存在';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
} else {
$order = $res;
if ($order->deleted>0) {
$return['msg'] = '订单已被删除了,无法操作';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
}
switch ($get['do']) {
case 'cancel':
if ($order->is_cwqr>0) {
$return['msg'] = '订单已入账,请先联系财务销账后再取消';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
if ($order->status_code>1) {
$return['msg'] = '订单已进入运输后流程,无法操作取消';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
if ($order->status_code==-1) {
$return['msg'] = '订单已经是被取消状态';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
$data['status_code'] = -1;
$model->id = $id;
$res = $model->updateAll($data, $where);
if ($res) {
$return['msg'] = '订单取消成功';
$return['errorcode'] = 200;
$return['data'] = ['css'=>'btn-info'];
} else {
$return['msg'] = '订单取消失败';
$return['errorcode'] = 0;
}
break;
case 'truckcar':
if ($order->status_code==-1) {
$return['msg'] = '订单已被取消,不能承运';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
if ($order->status_code!=1) {
$return['msg'] = '订单当前非初始状态(协议签订),不可作承运处理';
$return['errorcode'] = 404;
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
$data['status_code'] = 5;
$model->id = $id;
$res = $model->updateAll($data, $where);
if ($res) {
$return['msg'] = '订单已转为待承运状态';
$return['errorcode'] = 200;
$return['data'] = ['css'=>'default'];
} else {
$return['msg'] = '订单标记失败,请稍后再试';
$return['errorcode'] = 0;
}
break;
default:
break;
}
exit(json_encode($return, JSON_UNESCAPED_UNICODE));
}
}