Files
ctms-yii/ctms-api/controllers/OrdercheckController.php
T
2025-07-13 19:37:38 +08:00

303 lines
11 KiB
PHP
Executable File

<?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));
}
}