Commit 56e21dd1 by Joneq

增加拣货操作

parent c1aae64c
No preview for this file type
......@@ -17,11 +17,12 @@ LARAVELS_LISTEN_PORT=40001
worker_num = 3
DB_CONNECTION=mysql
DB_HOST=192.168.1.235
DB_USERNAME=icDb29mLy2s
DB_PASSWORD=icDb29mLy2s
DB_HOST=192.168.2.232
DB_USERNAME=liexin_scm_wms
DB_PASSWORD=liexin_scm_wms#zsyM
DB_PORT=3306
DB_DATABASE=0
DB_DATABASE=liexin_scm_wms
DB_PREFIX=lie_
REDIS_HOST=192.168.1.235
REDIS_PASSWORD=icDb29mLy2s
......
......@@ -6,20 +6,24 @@ use Laravel\Lumen\Routing\Controller as BaseController;
class Controller extends BaseController
{
public function apiReturn($Errcode = 0, $level = 1 , $dataArr = '') {
static public $errCode = 0;
static public $level = 1;
public function apiReturn($dataArr = '') {
//生成错误码
$Errcode = $this->Errcode($Errcode , $level);
self::$errCode = $this->Errcode(self::$errCode , self::$level);
//获取错误描述
$ErrMsg = config('errmsg.cn.'.$Errcode);
$ErrMsg = config('errmsg.cn.'.self::$errCode);
//上报错误
$data=['errcode'=>$Errcode, 'errmsg'=>$ErrMsg];
$data=['errcode'=>self::$errCode, 'errmsg'=>$ErrMsg];
//非正常返回码,上报
if(($data['errcode'] < 10000 || $data['errcode'] >= 50000) && $data['errcode'] !==0 ){
try{
ErrorLog($Errcode,$ErrMsg);
ErrorLog(self::$errCode,$ErrMsg);
}catch (\Exception $e){
Log::info($e);
}
......
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:56
*/
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Model\Logic\OutStoreLogic;
class OutstoreController extends Controller
{
public function Entrance(Request $request, $id)
{
return $this->$id($request, $id);
}
//创建出库单
public function createOutStore($request)
{
$data = $request->all();
try{
$inserData = OutStoreLogic::handleInsertData($data);
$returnData = OutStoreLogic::insertData($inserData);
}catch (\Exception $exception){
self::$errCode = 101;
return $this->apiReturn($exception->getMessage());
}
return $this->apiReturn($returnData);
}
}
\ No newline at end of file
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:52
*/
namespace App\Http\Controllers;
use App\Http\Model\Logic\PickTaskLogic;
use Illuminate\Http\Request;
class PicktaskController extends Controller
{
public function Entrance(Request $request, $id)
{
return $this->$id($request, $id);
}
//创建拣货任务
public function createPickTask($requset)
{
$data = $requset->all();
try{
$inserData = PickTaskLogic::handleInsertData($data);
$returnData = PickTaskLogic::insertData($inserData);
}catch (\Exception $exception){
return $this->apiReturn($exception->getMessage());
}
return $this->apiReturn($returnData);
}
}
\ No newline at end of file
......@@ -2,12 +2,6 @@
namespace App\Http\Controllers;
use App\Model\SelfSampleClassModel;
use App\Model\SelfSampleModel;
use Common\Model\RedisModel;
use App\Model\SelfGoodsModel;
use App\Model\SkuModel;
use App\Model\SpuModel;
use Illuminate\Http\Request;
class ServicesController extends Controller
......
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:57
*/
namespace App\Http\Model\Logic;
use App\Http\Controllers\OutstoreController;
use App\Http\Model\OutStoreDetailModel;
use App\Http\Model\OutStoreModel;
use App\Http\Model\PickTaskDetailModel;
use App\Http\Model\PickTaskModel;
use Illuminate\Support\Facades\DB;
class OutStoreLogic
{
static public function handleInsertData($data)
{
unset($data['unique']);
//判断该入库单号是否拥有
if (!empty(OutStoreModel::where('warehousing_sn',$data['warehousing_sn'])->value('out_store_id'))){
throw new \Exception('该入库单号已经存在');
}
//判断入库详情是否为空
if(!isset($data['out_store_detail']) || empty($data['out_store_detail'])){
throw new \Exception('出库详情为空');
}
$data['out_store_sn'] = self::getOutStoreSn();
$data['add_time'] = time();
return $data;
}
//增加数据
static public function insertData($insertData)
{
DB::beginTransaction();
try{
//创建出库单已经出库任务
$detailDaata = $insertData['out_store_detail'];
unset($insertData['out_store_detail']);
//新增出库单
$outStoreId = OutStoreModel::insertGetId($insertData);
//新增出库任务
$pickTaskId = PickTaskModel::insertGetId([
'pick_task_sn'=>PickTaskLogic::getPickTaskSn(),'warehousing_sn'=>$insertData['warehousing_sn'],
'out_store_id'=>$outStoreId,'store_id'=>$insertData['store_id'],'add_time'=>$insertData['add_time']
]);
//新增出库单详情
foreach ($detailDaata as $value){
$outStoreDetailId = OutStoreDetailModel::insertGetId(array_merge($value,[
'out_store_id'=>$outStoreId,'add_time'=>$insertData['add_time']
]));
//不需要报关才生成任务
if (empty($value['is_apply_customs'])){
PickTaskDetailModel::insertGetId(PickTaskLogic::handleInsertData([
'out_store_id'=>$outStoreId,'out_store_detail_id'=>$outStoreDetailId,
'pick_task_id'=>$pickTaskId
]));
}
}
DB::commit();
}catch (\Exception $exception){
DB::rollBack();
throw new \Exception($exception->getMessage());
}
return [];
}
//获取出库仓号
static public function getOutStoreSn()
{
//CK+年后两位+月两位+日两位+10000
$beginTime = strtotime(date('Y-m-d'));
$endTime = $beginTime +86400;
$todayNum = $outStoreSn = OutStoreModel::where('add_time','>=',$beginTime)->where('add_time','<=',$endTime)->count('out_store_id');
if (empty($todayNum)){
$todayNum = 10000;
}else{
$todayNum += 100001;
}
return 'CK'.substr(date('Ymd'),2,6).$todayNum;
}
}
\ No newline at end of file
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:53
*/
namespace App\Http\Model\Logic;
use App\Http\Model\PickTaskDetailModel;
use App\Http\Model\PickTaskModel;
class PickTaskLogic
{
//拣货任务逻辑层
static public function handleInsertData($data)
{
//判断该拣货任务是否存在
if (!empty(PickTaskDetailModel::where('out_store_detail_id',$data['out_store_detail_id'])->value('pick_task_detail_id'))){
throw new \Exception('该出库商品拣货任务已经存在');
}
$data['add_time'] = time();
return $data;
}
//生成拣货任务
static public function insertData($insertData)
{
return PickTaskDetailModel::insertGetId($insertData);
}
//获取拣货任务号
static public function getPickTaskSn()
{
//JH+年后两位+月两位+日两位+10000
$beginTime = strtotime(date('Y-m-d'));
$endTime = $beginTime +86400;
$todayNum = $outStoreSn = PickTaskModel::where('add_time','>=',$beginTime)->where('add_time','<=',$endTime)->count('pick_task_id');
if (empty($todayNum)){
$todayNum = 10000;
}else{
$todayNum += 100001;
}
return 'JH'.substr(date('Ymd'),2,6).$todayNum;
}
}
\ No newline at end of file
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:49
*/
namespace App\Http\Model;
use Illuminate\Database\Eloquent\Model;
class OutStoreDetailModel extends Model
{
protected $connection = 'mysql';
protected $table = 'out_store_detail';
protected $primaryKey = 'out_store_detail_id';
public $timestamps = false;
}
\ No newline at end of file
......@@ -12,5 +12,8 @@ use Illuminate\Database\Eloquent\Model;
class OutStoreModel extends Model
{
protected $connection = 'mysql';
protected $table = 'out_store';
protected $primaryKey = 'out_store_id';
public $timestamps = false;
}
\ No newline at end of file
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:50
*/
namespace App\Http\Model;
use Illuminate\Database\Eloquent\Model;
class PickTaskDetailModel extends Model
{
protected $connection = 'mysql';
protected $table = 'pick_task_detail';
protected $primaryKey = 'pick_task_detail_id';
public $timestamps = false;
}
\ No newline at end of file
<?php
/**
* Created by 2020/4/23.
* User: Joneq
* Info: 2020/4/23
* Time: 上午10:50
*/
namespace App\Http\Model;
use Illuminate\Database\Eloquent\Model;
class PickTaskModel extends Model
{
protected $connection = 'mysql';
protected $table = 'pick_task';
protected $primaryKey = 'pick_task_id';
public $timestamps = false;
}
\ No newline at end of file
......@@ -16,7 +16,7 @@ $router->get('/', function () use ($router) {
return $router->app->version();
});
$router->post('/synchronization', 'ServicesController@synchronization');
$router->post('/pick_task/{key}', 'PicktaskController@Entrance');
$router->post('/out_store/{key}', 'OutstoreController@Entrance');
{"server":{"listen_ip":"0.0.0.0","listen_port":"40001","socket_type":1,"enable_coroutine_runtime":false,"server":"LaravelS","handle_static":false,"laravel_base_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service","inotify_reload":{"enable":false,"watch_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service","file_types":[".php"],"excluded_dirs":[],"log":true},"event_handlers":[],"websocket":{"enable":false},"sockets":[],"processes":[],"timer":{"enable":false,"jobs":[],"pid_file":"/usr/local/var/www/ichunt/scm_wms_outstore_service/storage/laravels-timer.pid","max_wait_time":5},"events":[],"swoole_tables":[],"register_providers":[],"cleaners":[],"swoole":{"daemonize":false,"dispatch_mode":2,"reactor_num":4,"worker_num":"3","task_ipc_mode":1,"task_max_request":8000,"task_tmpdir":"/tmp","max_request":8000,"open_tcp_nodelay":true,"pid_file":"/usr/local/var/www/ichunt/scm_wms_outstore_service/storage/laravels.pid","log_file":"/usr/local/var/www/ichunt/scm_wms_outstore_service/storage/logs/swoole-2020-04.log","log_level":4,"document_root":"/usr/local/var/www/ichunt/scm_wms_outstore_service/public","buffer_output_size":2097152,"socket_buffer_size":134217728,"package_max_length":4194304,"reload_async":true,"max_wait_time":60,"enable_reuse_port":true,"enable_coroutine":false,"http_compression":false},"enable_gzip":false,"process_prefix":"/usr/local/var/www/ichunt/scm_wms_outstore_service","ignore_check_pid":false},"laravel":{"root_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service","static_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service/public","cleaners":[],"register_providers":[],"is_lumen":true,"_SERVER":{"SHELL":"/bin/bash","TERM":"xterm-256color","HOMEBREW_BOTTLE_DOMAIN":"https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles","TMPDIR":"/var/folders/vd/95yw3kdx65n1qw9ggmkkkp7c0000gn/T/","Apple_PubSub_Socket_Render":"/private/tmp/com.apple.launchd.E3EMWMrcxK/Render","USER":"gongyang","SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.lp4cjQL8wH/Listeners","__CF_USER_TEXT_ENCODING":"0x1F5:0x19:0x34","PATH":"/usr/local/opt/mysql@5.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin","_":"/usr/bin/php","PWD":"/usr/local/var/www/ichunt/scm_wms_outstore_service","XPC_FLAGS":"0x0","XPC_SERVICE_NAME":"0","HOME":"/Users/gongyang","SHLVL":"2","LOGNAME":"gongyang","LC_CTYPE":"zh_CN.UTF-8","PHP_SELF":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","SCRIPT_NAME":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","SCRIPT_FILENAME":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","PATH_TRANSLATED":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","DOCUMENT_ROOT":"","REQUEST_TIME_FLOAT":1587606149.42932,"REQUEST_TIME":1587606149,"argv":["/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","laravels","config"],"argc":3,"APP_ENV":"local","APP_DEBUG":"true","APP_KEY":"","APP_TIMEZONE":"PRC","SYSTEM_CODE":"01","SYSTEM_NAME":"服务初始服务(开发环境)","LARAVELS_LISTEN_IP":"0.0.0.0","LARAVELS_LISTEN_PORT":"40001","worker_num":"3","DB_CONNECTION":"mysql","DB_HOST":"192.168.1.235","DB_USERNAME":"icDb29mLy2s","DB_PASSWORD":"icDb29mLy2s","DB_PORT":"3306","DB_DATABASE":"0","REDIS_HOST":"192.168.1.235","REDIS_PASSWORD":"icDb29mLy2s","REDIS_PORT":"6379","REDIS_READ_HOST":"192.168.1.237","REDIS_READ_PASSWORD":"icDb29mLy2s","REDIS_READ_PORT":"6379","CACHE_DRIVER":"file","QUEUE_DRIVER":"sync","SHELL_VERBOSITY":0},"_ENV":{"APP_ENV":"local","APP_DEBUG":"true","APP_KEY":"","APP_TIMEZONE":"PRC","SYSTEM_CODE":"01","SYSTEM_NAME":"服务初始服务(开发环境)","LARAVELS_LISTEN_IP":"0.0.0.0","LARAVELS_LISTEN_PORT":"40001","worker_num":"3","DB_CONNECTION":"mysql","DB_HOST":"192.168.1.235","DB_USERNAME":"icDb29mLy2s","DB_PASSWORD":"icDb29mLy2s","DB_PORT":"3306","DB_DATABASE":"0","REDIS_HOST":"192.168.1.235","REDIS_PASSWORD":"icDb29mLy2s","REDIS_PORT":"6379","REDIS_READ_HOST":"192.168.1.237","REDIS_READ_PASSWORD":"icDb29mLy2s","REDIS_READ_PORT":"6379","CACHE_DRIVER":"file","QUEUE_DRIVER":"sync","SHELL_VERBOSITY":0}}}
\ No newline at end of file
{"server":{"listen_ip":"0.0.0.0","listen_port":"40001","socket_type":1,"enable_coroutine_runtime":false,"server":"LaravelS","handle_static":false,"laravel_base_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service","inotify_reload":{"enable":false,"watch_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service","file_types":[".php"],"excluded_dirs":[],"log":true},"event_handlers":[],"websocket":{"enable":false},"sockets":[],"processes":[],"timer":{"enable":false,"jobs":[],"pid_file":"/usr/local/var/www/ichunt/scm_wms_outstore_service/storage/laravels-timer.pid","max_wait_time":5},"events":[],"swoole_tables":[],"register_providers":[],"cleaners":[],"swoole":{"daemonize":false,"dispatch_mode":2,"reactor_num":4,"worker_num":"3","task_ipc_mode":1,"task_max_request":8000,"task_tmpdir":"/tmp","max_request":8000,"open_tcp_nodelay":true,"pid_file":"/usr/local/var/www/ichunt/scm_wms_outstore_service/storage/laravels.pid","log_file":"/usr/local/var/www/ichunt/scm_wms_outstore_service/storage/logs/swoole-2020-04.log","log_level":4,"document_root":"/usr/local/var/www/ichunt/scm_wms_outstore_service/public","buffer_output_size":2097152,"socket_buffer_size":134217728,"package_max_length":4194304,"reload_async":true,"max_wait_time":60,"enable_reuse_port":true,"enable_coroutine":false,"http_compression":false},"enable_gzip":false,"process_prefix":"/usr/local/var/www/ichunt/scm_wms_outstore_service","ignore_check_pid":false},"laravel":{"root_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service","static_path":"/usr/local/var/www/ichunt/scm_wms_outstore_service/public","cleaners":[],"register_providers":[],"is_lumen":true,"_SERVER":{"SHELL":"/bin/bash","TERM":"xterm-256color","HOMEBREW_BOTTLE_DOMAIN":"https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles","TMPDIR":"/var/folders/vd/95yw3kdx65n1qw9ggmkkkp7c0000gn/T/","Apple_PubSub_Socket_Render":"/private/tmp/com.apple.launchd.LRm7gkkp1N/Render","USER":"gongyang","SSH_AUTH_SOCK":"/private/tmp/com.apple.launchd.DsiHWZisWS/Listeners","__CF_USER_TEXT_ENCODING":"0x1F5:0x19:0x34","PATH":"/usr/local/opt/mysql@5.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin","_":"/usr/bin/php","PWD":"/usr/local/var/www/ichunt/scm_wms_outstore_service","XPC_FLAGS":"0x0","XPC_SERVICE_NAME":"0","HOME":"/Users/gongyang","SHLVL":"2","LOGNAME":"gongyang","LC_CTYPE":"zh_CN.UTF-8","PHP_SELF":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","SCRIPT_NAME":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","SCRIPT_FILENAME":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","PATH_TRANSLATED":"/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","DOCUMENT_ROOT":"","REQUEST_TIME_FLOAT":1587635591.896035,"REQUEST_TIME":1587635591,"argv":["/usr/local/var/www/ichunt/scm_wms_outstore_service/artisan","laravels","config"],"argc":3,"APP_ENV":"local","APP_DEBUG":"true","APP_KEY":"","APP_TIMEZONE":"PRC","SYSTEM_CODE":"01","SYSTEM_NAME":"服务初始服务(开发环境)","LARAVELS_LISTEN_IP":"0.0.0.0","LARAVELS_LISTEN_PORT":"40001","worker_num":"3","DB_CONNECTION":"mysql","DB_HOST":"192.168.2.232","DB_USERNAME":"liexin_scm_wms","DB_PASSWORD":"liexin_scm_wms#zsyM","DB_PORT":"3306","DB_DATABASE":"liexin_scm_wms","DB_PREFIX":"lie_","REDIS_HOST":"192.168.1.235","REDIS_PASSWORD":"icDb29mLy2s","REDIS_PORT":"6379","REDIS_READ_HOST":"192.168.1.237","REDIS_READ_PASSWORD":"icDb29mLy2s","REDIS_READ_PORT":"6379","CACHE_DRIVER":"file","QUEUE_DRIVER":"sync","SHELL_VERBOSITY":0},"_ENV":{"APP_ENV":"local","APP_DEBUG":"true","APP_KEY":"","APP_TIMEZONE":"PRC","SYSTEM_CODE":"01","SYSTEM_NAME":"服务初始服务(开发环境)","LARAVELS_LISTEN_IP":"0.0.0.0","LARAVELS_LISTEN_PORT":"40001","worker_num":"3","DB_CONNECTION":"mysql","DB_HOST":"192.168.2.232","DB_USERNAME":"liexin_scm_wms","DB_PASSWORD":"liexin_scm_wms#zsyM","DB_PORT":"3306","DB_DATABASE":"liexin_scm_wms","DB_PREFIX":"lie_","REDIS_HOST":"192.168.1.235","REDIS_PASSWORD":"icDb29mLy2s","REDIS_PORT":"6379","REDIS_READ_HOST":"192.168.1.237","REDIS_READ_PASSWORD":"icDb29mLy2s","REDIS_READ_PORT":"6379","CACHE_DRIVER":"file","QUEUE_DRIVER":"sync","SHELL_VERBOSITY":0}}}
\ No newline at end of file
5022
\ No newline at end of file
......@@ -279,7 +279,7 @@ class ClassLoader
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
$this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
}
/**
......@@ -377,7 +377,7 @@ class ClassLoader
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
$search = $subPath.'\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment