commodityService = app(WorkOrderCommoditiesService::class); $this->imageService = app(WorkOrderImageService::class); $this->logService = app(WorkOrderLogService::class); } public function createWorkOrderDetail(WorkOrder $workOrder,$params): WorkOrderDetail { $param = (new WorkOrderDetail($params))->getAttributes(); $param['order_issue_type_id'] = $workOrder['order_issue_type_id']; $param['remark'] = $workOrder['remark']; $param['process_progress'] = $workOrder['process_progress']; $detail = $workOrder->details()->create($param); $this->commodityService->createWorkOrderCommoditiesByJsonArray($detail, $params['commodities'] ?? []); $this->imageService->createWorkOrderImages($detail,$params); return $detail; } /** * 填充丢件工单信息 * @param WorkOrderDetail $detail * @param $params */ public function fillLossDetail(WorkOrderDetail $detail,$params) { $param = (new WorkOrderDetail($params))->getAttributes(); $detail->update($param); $is_edit = $params['is_edit'] ?? false; $this->imageService->createWorkOrderImages($detail, $params); // 图片信息 if (!$is_edit){ $this->commodityService->createWorkOrderCommoditiesByJsonArray($detail, $params['commodities'] ?? []); // 商品信息 } else { $this->commodityService->updateWorkOrderCommoditiesByJsonArray($detail, $params['update_commodities'] ?? []); $this->commodityService->createWorkOrderCommoditiesByJsonArray($detail, $params['commodities'] ?? []); $this->commodityService->deleteCommodities($detail,$params['delete_commodity_ids'] ?? []); } } /** * 更新详情 * @param WorkOrderDetail $detail * @param $params */ public function updateLossDetail(WorkOrderDetail $detail,$params) { $param = (new WorkOrderDetail($params))->getAttributes(); $detail->update($param); $this->commodityService->updateWorkOrderCommoditiesByJsonArray($detail,$params['commodities'] ?? []); } public function updateDetail(WorkOrderDetail $detail,$params) { $param = (new WorkOrderDetail($params))->getAttributes(); $detail->update($param); $is_edit = $params['is_edit'] ?? false; if ($is_edit){ $this->commodityService->createWorkOrderCommoditiesByJsonArray($detail,$params['commodities'] ?? []); $this->commodityService->updateWorkOrderCommoditiesByJsonArray($detail,$params['update_commodities'] ?? []); $this->commodityService->deleteCommodities($detail,$params['delete_commodity_ids']??[]); $this->imageService->createWorkOrderImages($detail,$params); $this->imageService->deleteImages($detail,$params['delete_image_ids']??[]); } else { $this->commodityService->updateWorkOrderCommoditiesByJsonArray($detail,$params['commodities'] ?? []); } } /** * @param $id * @return WorkOrderDetail */ public function find($id):WorkOrderDetail { /** @var WorkOrderDetail $item */ $item = WorkOrderDetail::query()->where('id', $id)->first(); return $item; } /** * @param WorkOrderDetail $detail */ public function undoneTag(WorkOrderDetail $detail) { // 标记为未完成历史标记 $detail->undoneTag(); $this->commodityService->undoneTag($detail); $this->imageService->undoneTag($detail); $this->logService->undoneTag($detail); } /** * @param WorkOrderDetail $detail */ public function endDetail(WorkOrderDetail $detail) { // 标记为完成 $detail->update(['status' => 5, 'work_order_status' => 0]); $this->commodityService->endDetail($detail); $this->imageService->endDetail($detail); $this->logService->endDetail($detail); } /** * @param WorkOrder $workOrder */ public function undoneTagsByWorkOrder(WorkOrder $workOrder) { foreach ($workOrder->details ?? [] as $detail){ // 判断是否为完成 if($detail->status == '完成' || $detail->status == 5){ continue; } else { $this->undoneTag($detail); } } } }