|
|
@@ -4,8 +4,14 @@
|
|
|
namespace App\Services;
|
|
|
|
|
|
|
|
|
+use App\OracleBasSKU;
|
|
|
+use App\OracleDOCOrderDetail;
|
|
|
+use App\OracleDOCOrderHeader;
|
|
|
+use App\OracleDOCWaveDetails;
|
|
|
use App\OracleDOCWaveHeader;
|
|
|
+use App\Owner;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\Auth;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
use App\Traits\ServiceAppAop;
|
|
|
use Illuminate\Support\Facades\Http;
|
|
|
@@ -14,7 +20,9 @@ use Illuminate\Support\Facades\Http;
|
|
|
class WaveService
|
|
|
{
|
|
|
use ServiceAppAop;
|
|
|
- protected $modelClass=Wave::class;
|
|
|
+
|
|
|
+ protected $modelClass = Wave::class;
|
|
|
+
|
|
|
public function queryWave(Request $request)
|
|
|
{
|
|
|
$sql = $this->createSqlByCondition($request);
|
|
|
@@ -54,6 +62,7 @@ class WaveService
|
|
|
$sql .= " left join BAS_CODES codes on wave_header.WaveStatus = codes.CODE and codes.codeId = 'SO_STS'";
|
|
|
return $sql;
|
|
|
}
|
|
|
+
|
|
|
public function cancelPrint($ids)
|
|
|
{
|
|
|
$meg = ['success' => false, 'fail_info' => null];
|
|
|
@@ -99,7 +108,7 @@ class WaveService
|
|
|
$childSql .= " and addTime < '" . $end_time . " 23:59:59'";
|
|
|
}
|
|
|
if ($wave_num) {
|
|
|
- $childSql .= " and waveNo like '" .trim($wave_num). "'";
|
|
|
+ $childSql .= " and waveNo like '" . trim($wave_num) . "'";
|
|
|
}
|
|
|
if ($wave_status) {
|
|
|
$childSql .= " and waveStatus = " . $wave_status;
|
|
|
@@ -126,7 +135,8 @@ class WaveService
|
|
|
return ['page' => $page, 'paginate' => $paginate, 'start_time' => $start_time, 'end_time' => $end_time, 'wave_num' => $wave_num, 'wave_status' => $wave_status,];
|
|
|
}
|
|
|
|
|
|
- public function getSql(Request $request){
|
|
|
+ public function getSql(Request $request)
|
|
|
+ {
|
|
|
$childSql = "( select row_number() over (order by addTime desc ) nums,UdfPrintFlag2,WaveNo,WaveStatus,Descr,CarrierID,WaveDispatchID,addWho,addTime,WaveRule,UserDefine1,UserDefine2 from doc_wave_header where 1=1 ";
|
|
|
if ($request->input('start_time')) {
|
|
|
$childSql .= " and addTime > '" . $request->input('start_time') . " 00:00:00' ";
|
|
|
@@ -137,17 +147,17 @@ class WaveService
|
|
|
if ($request->input('wave_num')) {
|
|
|
$wave_num = $request->input('wave_num');
|
|
|
$wave_num = $this->getWaveNoString($wave_num);
|
|
|
- if(strpos($wave_num,',')){
|
|
|
- $childSql .= " and WaveNo in (" .$wave_num . ") ";
|
|
|
- }else{
|
|
|
- $childSql .= " and WaveNo like '" .$wave_num . "' ";
|
|
|
+ if (strpos($wave_num, ',')) {
|
|
|
+ $childSql .= " and WaveNo in (" . $wave_num . ") ";
|
|
|
+ } else {
|
|
|
+ $childSql .= " and WaveNo like '" . $wave_num . "' ";
|
|
|
}
|
|
|
}
|
|
|
if ($request->input('wave_status')) {
|
|
|
$childSql .= " and WaveStatus = '" . $request->input('wave_status') . "' ";
|
|
|
}
|
|
|
- $childSql.=' order by addTime';
|
|
|
- $childSql = $childSql . ") wave_header ";
|
|
|
+ $childSql .= ' order by addTime';
|
|
|
+ $childSql = $childSql . ") wave_header ";
|
|
|
$sql = ' select wave_header.WaveNo,' .
|
|
|
'wave_header.WaveStatus,' .
|
|
|
'codes.CODENAME_C,' .
|
|
|
@@ -159,7 +169,7 @@ class WaveService
|
|
|
'wave_header.UserDefine1,' .
|
|
|
'wave_header.UserDefine2,' .
|
|
|
'wave_header.WaveDispatchID,' .
|
|
|
- 'wave_header.UdfPrintFlag2 from ' ;
|
|
|
+ 'wave_header.UdfPrintFlag2 from ';
|
|
|
$sql .= $childSql;
|
|
|
$sql .= " left join BAS_CUSTOMER customer on customer.CustomerID = wave_header.CarrierID and customer.CUSTOMER_TYPE = 'CA'";
|
|
|
$sql .= " left join BAS_CODES codes on wave_header.WaveStatus = codes.CODE and codes.codeId = 'SO_STS'";
|
|
|
@@ -190,26 +200,28 @@ class WaveService
|
|
|
]];
|
|
|
return $arr;
|
|
|
}
|
|
|
- public function getWaveNoString($wave_num){
|
|
|
+
|
|
|
+ public function getWaveNoString($wave_num)
|
|
|
+ {
|
|
|
$sqlString = '';
|
|
|
- if(!$wave_num){
|
|
|
+ if (!$wave_num) {
|
|
|
return $sqlString;
|
|
|
}
|
|
|
- if(strpos($wave_num,"%")){
|
|
|
+ if (strpos($wave_num, "%")) {
|
|
|
return $wave_num;
|
|
|
}
|
|
|
- if(strpos($wave_num,",") ){
|
|
|
+ if (strpos($wave_num, ",")) {
|
|
|
|
|
|
- $arr = explode(',',$wave_num);
|
|
|
+ $arr = explode(',', $wave_num);
|
|
|
$let = count($arr);
|
|
|
- for($i=0;$i<$let;$i++){
|
|
|
- $arr[$i] = "'".$arr[$i]."'";
|
|
|
+ for ($i = 0; $i < $let; $i++) {
|
|
|
+ $arr[$i] = "'" . $arr[$i] . "'";
|
|
|
}
|
|
|
- $sqlString = implode(",",$arr);
|
|
|
+ $sqlString = implode(",", $arr);
|
|
|
return $sqlString;
|
|
|
}
|
|
|
- if($wave_num){
|
|
|
- $sqlString = "'".$wave_num."'";
|
|
|
+ if ($wave_num) {
|
|
|
+ $sqlString = "'" . $wave_num . "'";
|
|
|
}
|
|
|
return $sqlString;
|
|
|
}
|
|
|
@@ -246,4 +258,48 @@ class WaveService
|
|
|
app('LogService')->log("二次分拣计件", "sendPiece", '服务端错误:'.$http->body());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public function sendOwnerPiece($batch_id,$warehouseId,$ownerId,$date)
|
|
|
+ {
|
|
|
+ $url = config('api.java.base') . config('api.java.piece.ownerLog.delivery');
|
|
|
+ $waveQuery = OracleDOCWaveDetails::query()->select("orderNo")->where("waveNo", $batch_id);
|
|
|
+ $items = OracleDOCOrderDetail::query()->where("orderNo", $waveQuery)->get();
|
|
|
+ if (count($items) == 0) {
|
|
|
+ app('LogService')->log("二次分拣货主计件", "batch_id details is null", $batch_id);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ foreach ($items as $orderDetail) {
|
|
|
+ $basSku = OracleBasSKU::query()->where("CUSTOMERID",$orderDetail->customerid)->where("sku",$orderDetail->sku)->first();
|
|
|
+ if(isNull($basSku)){
|
|
|
+ app('LogService')->log("二次分拣货主计件", "CUSTOMERID sku is null", $orderDetail->customerid.$orderDetail->sku);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $request = [
|
|
|
+ "messageId" => $batch_id.$orderDetail->orderno.$orderDetail->sku.$orderDetail->orderlineno ,
|
|
|
+ "deliveryOrderCode" => $orderDetail->orderno,
|
|
|
+ "warehouseId" => $warehouseId,
|
|
|
+ "ownerId" => $ownerId,
|
|
|
+ "userId" => Auth::user()['id'],
|
|
|
+ "userType" => 0,
|
|
|
+ "jobType" => "二次分拣",
|
|
|
+ "jobName" => "二次分拣",
|
|
|
+ "pieceTime" => $date,
|
|
|
+ "number" => $orderDetail->qty_each,
|
|
|
+ "itemNumber" =>$orderDetail->qty_each,
|
|
|
+ "commodityName" => $basSku->descr_c
|
|
|
+ ];
|
|
|
+ app('LogService')->log("二次分拣货主计件", "通知服务端", json_encode($request));
|
|
|
+ $http = Http::post($url, $request);
|
|
|
+ if (!$http->successful()) {
|
|
|
+ app('LogService')->log("二次分拣货主计件", "sendPiece", '发送失败:'.$http->body());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $result = $http->json();
|
|
|
+ if ($result["code"] != 200) {
|
|
|
+ app('LogService')->log("二次分拣货主计件", "sendPiece", '服务端错误:'.$http->body());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|