request; $catId = $req->get('catId'); $faultId = $req->get('faultId'); $fault = DeviceFaultModel::findOne(["id" => $faultId])->toArray(); $deviceCat = DeviceCatRepository::selectOne($catId, true); $params = array(); $params = $this->dataList($req); $params['fault'] = $fault; $params['deviceCat'] = $deviceCat; $params['catId'] = $catId; $params['faultId'] = $faultId; return $this->render("index", $params); } public function actionCreate() { $res = Yii::$app->request; $faultId = $res->get('faultId'); $catId = $res->get('catId'); $fault = DeviceFaultModel::findOne(["id" => $faultId])->toArray(); $deviceCat = DeviceCatRepository::selectOne($catId, true); $params = array(); $params['faultId'] = $faultId; $params['catId'] = $catId; $params['fault'] = $fault; $params['deviceCat'] = $deviceCat; return $this->render("create", $params); } /** * 执行添加 * {"fault_id":fault_id,"repair_name":repair_name,"reason":reason,"repair_price":repair_price} */ public function actionDoAdd() { $res = Yii::$app->request; $fault_id = $res->post('fault_id'); $repair_name = $res->post('repair_name'); $reason = $res->post('reason'); $repair_price = $res->post('repair_price'); // 组织数据 $repairPlan = new RepairPlanModel(); $repairPlan->device_fault_id = intval($fault_id); $repairPlan->name = $repair_name; $repairPlan->reason = $reason; $repairPlan->standard_price = floatval($repair_price); $repairPlan->created_at = time(); $repairPlan->updated_at = time(); $repairPlan->version = Yii::$app->params['DATA_VERSION']; // 写入数据库 $result = $repairPlan->insert(); // 返回 $msg = array(); if ($result) { $msg['status'] = 1; $msg['msg'] = "操作成功"; } else { $msg['status'] = 0; $msg['msg'] = "操作失败"; } return $this->renderJson($msg); } /** * 更新方案 * @return string */ public function actionUpdate() { $req = Yii::$app->request; $catId = $req->get('catId'); $faultId = $req->get('faultId'); $id = $req->get('id'); $result = RepairPlanModel::findOne(["id"=>$id])->toArray(); $fault = DeviceFaultModel::findOne(["id"=>$faultId])->toArray(); $deviceCat = DeviceCatRepository::selectOne($catId, true); $params = array(); $params['repair'] = $result; $params['fault'] = $fault; $params['deviceCat'] = $deviceCat; $params['catId'] = $catId; $params['faultId'] = $faultId; return $this->render("update",$params); } /** * 执行维修方案更新操作 */ public function actionDoUpdatePlan() { $req = Yii::$app->request; $repair_id = $req->post('repair_id'); $repair_name = $req->post('repair_name'); $reason = $req->post('reason'); $repair_price = floatval($req->post('repair_price')); if (empty($repair_id)) { $result = 0; } else { $mRepairPlan = RepairPlanModel::findOne(["id" => $repair_id]); $mRepairPlan->name = $repair_name; $mRepairPlan->reason = $reason; $mRepairPlan->standard_price = $repair_price; $mRepairPlan->updated_at = time(); $result = $mRepairPlan->save(); } $msg = array(); if ($result) { $msg['status'] = 1; $msg['msg'] = "操作成功"; } else { $msg['status'] = 0; $msg['msg'] = "操作失败"; } return $this->renderJson($msg); } /** * 删除维修计划 */ public function actionDeletePlan() { $req = Yii::$app->request; $repair_id = intval($req->get('id')); $catId = intval($req->get('catId')); $faultId = intval($req->get('faultId')); $msg = array(); if (empty($repair_id)) { $result = 0; $msg['msg'] = "缺少数据标识,无法删除"; } else { // 1 检查是否在 “models_repair_plan_prices” 表中存在关联关系,如果存在则不允许删除 $count = ModelsRepairPlanPricesModel::find()->where(["repair_plan_id" => $repair_id])->count(); if ($count > 0) { $result = 0; $msg['msg'] = "此维修计划已经和型号进行定价关联,无法删除!"; } else { $result = RepairPlanModel::findOne(["id"=>$repair_id])->delete(); } } if ($result) { $msg['status'] = 1; Yii::$app->getSession()->setFlash('success', "操作成功"); } else { $msg['status'] = 0; Yii::$app->getSession()->setFlash('danger', $msg['msg']); } return $this->redirect(['index', "catId"=>$catId, "faultId"=>$faultId]); } /** * 详细定价 */ public function actionListPrice() { $req = Yii::$app->request; $repair_id = intval($req->get('id')); $catId = intval($req->get('catId')); $faultId = intval($req->get('faultId')); $modelName = $req->get('modelName'); $result = RepairPlanModel::findOne(["id" => $repair_id]); $fault = DeviceFaultModel::findOne(["id" => $faultId]); $deviceCat = DeviceCatRepository::selectOne($catId); $map = array(); $map[] = array("=","p.repair_plan_id",$repair_id,"I"); if (!empty($modelName)) { $map[] = array("like","m.model","%".trim($modelName)."%","S"); } /** * 分页处理 */ $modelRepairPlanPrices = ModelsRepairPlanPricesModel::getModelsRepairPlanPriceList($repair_id, $map); $isComputer = WarrantyLevelRule::isComputer($deviceCat); $params = array(); $params['repair'] = $result; $params['fault'] = $fault; $params['deviceCat'] = $deviceCat; $params['catId'] = $catId; $params['faultId'] = $faultId; $params['repair_id'] = $repair_id; $params['modelName'] = $modelName; $params['modelRepairPlanPrices'] = $modelRepairPlanPrices; $params['man_hour_fee'] = RegionFeeSettingModel::getManHourFeeByCity(); $params['warrantyLevel'] = WarrantyLevelRule::getAllWarrantyLevels($isComputer); return $this->render("list_price",$params); } /** * @return string */ public function actionDoAddPlanPrice() { $req = Yii::$app->request; $data =$req->post('data'); // 查出来就修改,否则就新增 $man_hour_fee = RegionFeeSettingModel::getManHourFeeByCity(); // $tmp = array(); foreach ($data as $val) { $pid = $val['id']; $modelsRepairPlanPrices = ModelsRepairPlanPricesModel::find()->where(["id" => intval($pid)])->one(); // 如果不存在则新增,否则修改 if (!empty($modelsRepairPlanPrices)) { $modelsRepairPlanPrices = ModelsRepairPlanPricesModel::findOne($pid); $modelsRepairPlanPrices->parts_price = doubleval($val['parts_price']); $modelsRepairPlanPrices->repair_hours = doubleval($val['repair_hours']); $modelsRepairPlanPrices->difficulty_degree =doubleval($val['difficulty_degree']); $modelsRepairPlanPrices->price = doubleval($val['parts_price'])+ $man_hour_fee * doubleval($val['repair_hours']) * doubleval($val['difficulty_degree']); $modelsRepairPlanPrices->warranty_level = $val['warranty_level']; $modelsRepairPlanPrices->updated_at = time(); $modelsRepairPlanPrices->update(); } } $map = array(); $map['status'] = 1; $map['msg'] = "操作成功"; return $this->renderJson($map); } /** * 读取数据 * @param $request * @return array */ protected function dataList($request) { $faultId = intval($request->get('faultId')); $repairName = $request->get('repairName'); /** * 分页处理 */ $repairPlanModel = RepairPlanModel::find()->where(['device_fault_id' => $faultId, 'version' => Yii::$app->params['DATA_VERSION']])->orderBy('id desc'); if (!empty($repairName)) { $repairPlanModel->andWhere(['like','name',$repairName]); } $pageSize = $request->get("pageSize") ? (int) $request->get("pageSize") : 20; $pages = new Pagination(['totalCount' => $repairPlanModel->count(), 'pageSize' => $pageSize]); $repairList = $repairPlanModel->offset($pages->offset)->limit($pages->limit)->all(); return [ 'repairList' => $repairList, 'pages' => $pages, 'repairName' => $repairName, ]; } /** * 批量添加维修方案 * @return string */ public function actionBatchCreate() { $res = Yii::$app->request; $faultId = $res->get('faultId'); $catId = $res->get('catId'); $fault = DeviceFaultModel::findOne(["id" => $faultId])->toArray(); $deviceCat = DeviceCatRepository::selectOne($catId, true); $params = array(); $params['faultId'] = $faultId; $params['catId'] = $catId; $params['fault'] = $fault; $params['deviceCat'] = $deviceCat; return $this->render("batch_create", $params); } /** * 执行批量添加维修方案 * @return string * @throws \Exception */ public function actionDoBatchCreate() { $res = Yii::$app->request; $fault_id = $res->post('fault_id'); $repairList = $res->post('repairList'); $msg = array(); foreach ($repairList as $key => $val) { $repair = explode("_", $val); // 组织数据 $repairPlan = new RepairPlanModel(); $repairPlan->device_fault_id = intval($fault_id); $repairPlan->name = $repair[0]; $repairPlan->reason = $repair[1]; $repairPlan->standard_price = floatval($repair[2]); $repairPlan->created_at = time(); $repairPlan->updated_at = time(); $repairPlan->version = Yii::$app->params['DATA_VERSION']; // 写入数据库 $result = $repairPlan->insert(); if (false == $result) { $msg['status'] = 0; $msg['msg'] = "操作失败"; return $this->renderJson($msg); } } $msg['status'] = 1; $msg['msg'] = "操作成功"; return $this->renderJson($msg); } }