|
|
@@ -24,6 +24,11 @@ class OrderIssueService
|
|
|
app()->bind("orderPackageCommoditiesService", OrderPackageCommoditiesService::class);
|
|
|
}
|
|
|
|
|
|
+ public function insert($params)
|
|
|
+ {
|
|
|
+ OrderIssue::query()->insert($params);
|
|
|
+ }
|
|
|
+
|
|
|
public function getQuery(array $arr, array $condition = null)
|
|
|
{
|
|
|
if (!isset($condition)) {
|
|
|
@@ -254,32 +259,44 @@ class OrderIssueService
|
|
|
return compact('orderPackageSql','secondOrderPackageSql','orderIssueSql','rejectedBillItemSql','logSql');
|
|
|
}
|
|
|
|
|
|
- public function paginate(array $arr)
|
|
|
+ public function paginate(array $params)
|
|
|
{
|
|
|
- return $query = $this->getConditionQuery($arr)->paginate($arr['paginate'] ?? 50);
|
|
|
-
|
|
|
+ return $query = $this->getConditionQuery($params)->paginate($params['paginate'] ?? 50);
|
|
|
}
|
|
|
|
|
|
public function orderIssueTag(array $params)
|
|
|
{
|
|
|
$orderNos = $params['orderNos'];
|
|
|
- $meg = ['success' => true];
|
|
|
- foreach ($orderNos as $orderNo) {
|
|
|
- try {
|
|
|
- $orderIssue = $this->createOrFindByOrderNo($orderNo);
|
|
|
- if($orderIssue != null){
|
|
|
- OrderIssue::query()->where('id', $orderIssue['id'])->update(['order_issue_type_id' => $params['typeId'], 'result_explain' => $params['result_explain']]);
|
|
|
- OrderIssueProcessLog::query()->create(['order_issue_id' => $orderIssue['id'], 'user_id' => Auth::user()['id'], 'content' => '', 'type' => '创建']);
|
|
|
- LogService::log(__METHOD__, __FUNCTION__, '标记订单问题件' . json_encode($orderNo).json_encode($orderIssue));
|
|
|
- }
|
|
|
- } catch (\Exception $e) {
|
|
|
- LogService::log(__METHOD__, __FUNCTION__, '标记订单问题件error' . json_encode($orderNo).$e->getMessage(),$e->getTraceAsString());
|
|
|
- $meg['success'] = false;
|
|
|
- $meg['fail_info'][]= $orderNo.$e->getMessage();
|
|
|
- }
|
|
|
+ $orderHeaders = OracleDOCOrderHeader::query()->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])->whereIn('orderNo',$orderNos)->get();
|
|
|
+ $bool = $this->createOrderIssueByWmsOrder($orderHeaders,$params['typeId'],$params['result_explain']);
|
|
|
+ if($bool){
|
|
|
+ return ['success'=>$bool];
|
|
|
+ }else{
|
|
|
+ return ['success'=>$bool,'fail_info'=>'问题件创建失败'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function createOrderIssueByWmsOrder($orderHeaders,$order_issue_type_id,$result_explain)
|
|
|
+ {
|
|
|
+ /** @var OrderService $orderService */
|
|
|
+ $orderService = app(OrderService::class);
|
|
|
+ $orders = $orderService->createByWmsOrder($orderHeaders);
|
|
|
+ $innerParams = [];
|
|
|
+ foreach ($orders as $order) {
|
|
|
+ $innerParams[] = [
|
|
|
+ 'order_id'=>$order->id,
|
|
|
+ 'order_issue_type_id' => $order_issue_type_id,
|
|
|
+ 'result_explain'=>$result_explain
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ $this->insert($innerParams);
|
|
|
+ LogService::log(__METHOD__,__FUNCTION__,'创建问题件'.count($innerParams).json_encode($innerParams));
|
|
|
+ return true;
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ LogService::log(__METHOD__,__FUNCTION__,'创建问题件 error'.count($innerParams).json_encode($innerParams).$e->getMessage().$e->getTraceAsString());
|
|
|
+ return false;
|
|
|
}
|
|
|
- unset($params,$orderIssues,$orderNos);
|
|
|
- return $meg;
|
|
|
}
|
|
|
|
|
|
public function createOrFindByOrderNo($orderNo)
|
|
|
@@ -379,85 +396,14 @@ class OrderIssueService
|
|
|
return $orderIssue;
|
|
|
}
|
|
|
|
|
|
- public function verifyOrderIssue(array $arr)
|
|
|
- {
|
|
|
- $orders = Order::query()->whereIn('code', $arr)->get();
|
|
|
- if (count($orders) == 0) {
|
|
|
- return [];
|
|
|
- }
|
|
|
- $order_ids = [];
|
|
|
- foreach ($orders as $order){
|
|
|
- $order_ids[] = $order['id'];
|
|
|
- }
|
|
|
- unset($orders,$arr);
|
|
|
- return OrderIssue::query()->with('order')->whereIn('order_id', $order_ids)->get();
|
|
|
- }
|
|
|
-
|
|
|
- public function exportExcel(Request $request)
|
|
|
- {
|
|
|
- $result = null;
|
|
|
- if ($request->getMethod() == 'GET') {
|
|
|
- if ($request->has('checkAllSign')) {
|
|
|
- $result = $this->getConditionQuery($request->all(), null)->get();
|
|
|
- }
|
|
|
- } else if ($request->getMethod() == 'POST') {
|
|
|
- $request['order_issue_ids'] = $request->input('data');
|
|
|
- $result = $this->getConditionQuery($request->all(), null)->get();
|
|
|
- }
|
|
|
- return $result;
|
|
|
- }
|
|
|
-
|
|
|
- public function updateOrderIssue(OrderIssue $orderIssue, array $arr)
|
|
|
- {
|
|
|
- if ($arr['rejectedBill'] ?? false) {
|
|
|
- if ($arr['rejectedBill']['id'] ?? false) {
|
|
|
- $rejectedBill = RejectedBill::query()->where('id', $arr['rejectedBill']['id'])->first();
|
|
|
- $arr['orderIssues']['rejected_bill_id'] = $rejectedBill['id'];
|
|
|
- $arr['orderIssues']['is_new_rejecting'] = '有';
|
|
|
- $rejectedBill->fill($arr['rejectedBill']);
|
|
|
- $rejectedBill->update();
|
|
|
- $rejectedBill->同步问题件();
|
|
|
- $rejectedBill->同步问题件退件状态();
|
|
|
-
|
|
|
- } else if ($arr['rejectedBill']['id_logistic_return'] ?? false && $arr['rejectedBill']['logistic_number_return'] ?? false) {
|
|
|
-
|
|
|
- $owner_id = $orderIssue['order']['owner_id'];
|
|
|
- $rejectedBill = RejectedBill::query()->firstOrCreate([
|
|
|
- 'id_logistic_return' => $arr['rejectedBill']['id_logistic_return'] ?? '',
|
|
|
- 'id_owner' => $owner_id ?? '',
|
|
|
- 'logistic_number_return' => $arr['rejectedBill']['logistic_number_return'],]
|
|
|
- );
|
|
|
- $rejectedBill->save();
|
|
|
- $rejectedBill->同步问题件();
|
|
|
- $rejectedBill->同步问题件退件状态();
|
|
|
- $arr['orderIssues']['rejected_bill_id'] = $rejectedBill['id'];
|
|
|
- $arr['orderIssues']['is_new_rejecting'] = '有';
|
|
|
- }
|
|
|
- }
|
|
|
- if ($arr['order'] ?? false) {
|
|
|
- $order = Order::query()->where('id', $arr['order']['id'])->first();
|
|
|
- $order->fill($arr['order']);
|
|
|
- $order->update();
|
|
|
- }
|
|
|
- $orderIssue->fill($arr['orderIssues']);
|
|
|
- $orderIssue->同步退单状态();
|
|
|
- $orderIssue->update();
|
|
|
- unset($orderIssue,$arr);
|
|
|
- }
|
|
|
-
|
|
|
public function batchDestroy($ids){
|
|
|
- $bool = null;
|
|
|
try {
|
|
|
$bool = OrderIssue::query()->whereIn('id', $ids)->delete();
|
|
|
LogService::log(__METHOD__,__FUNCTION__,json_encode($ids));
|
|
|
+ return ['success'=>$bool];
|
|
|
} catch (\Exception $e) {
|
|
|
LogService::log(__METHOD__,__FUNCTION__,'error'.json_decode($ids).'||'.$e->getMessage().'||'.$e->getTraceAsString());
|
|
|
- } finally {
|
|
|
- if($bool ?? false){
|
|
|
- return ['success'=>true];
|
|
|
- }else{
|
|
|
- return ['success' => false];
|
|
|
- }
|
|
|
+ return ['success' => false];
|
|
|
}
|
|
|
}
|
|
|
|