First commit
This commit is contained in:
87
app/farm/model/ClaimTraceability.php
Executable file
87
app/farm/model/ClaimTraceability.php
Executable file
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
namespace app\farm\model;
|
||||
|
||||
use app\BaseModel;
|
||||
use think\facade\Db;
|
||||
use think\facade\Log;
|
||||
|
||||
class ClaimTraceability extends BaseModel
|
||||
{
|
||||
//定义表名
|
||||
protected $name = 'lbfarm_claim_traceability';
|
||||
|
||||
public function getList($data)
|
||||
{
|
||||
$where = [];
|
||||
if ($data['title']) {
|
||||
$where[] = ['name|code', 'like', '%' . $data['title'] . '%'];
|
||||
}
|
||||
if ($data['claim_id']) {
|
||||
$where[] = ['claim_id', '=', $data['claim_id']];
|
||||
}
|
||||
return $this->where($where)->paginate(10)->each(function ($item) {
|
||||
$ClaimTraceabilityOperationModel = new ClaimTraceabilityOperation();
|
||||
$item['operations'] = $ClaimTraceabilityOperationModel->getList();
|
||||
return $item;
|
||||
})->toArray();
|
||||
}
|
||||
|
||||
public function deleteTraceability($id)
|
||||
{
|
||||
$ClaimTraceabilityOperationModel = new ClaimTraceabilityOperation();
|
||||
$ClaimTraceabilityOperationModel->where('traceability_id', $id)->delete();
|
||||
return $this->where('id', $id)->delete();
|
||||
}
|
||||
|
||||
public function addTraceability($data)
|
||||
{
|
||||
$data['traceability_operation'] = json_encode($data['traceability_operation']);
|
||||
|
||||
$number = 'TR' . date('Ymd') . rand(1000, 9999);
|
||||
$data['traceability_code'] = $number;
|
||||
|
||||
$res = $this->insert($data);
|
||||
|
||||
$id = $this->getLastInsID();
|
||||
$operationids = [];
|
||||
foreach (json_decode($data['traceability_operation'], true) as $v) {
|
||||
$v['traceability_id'] = $id;
|
||||
$ClaimTraceabilityOperationModel = new ClaimTraceabilityOperation();
|
||||
if ($v['id']) {
|
||||
$ClaimTraceabilityOperationModel->where('id', $v['id'])->update($v);
|
||||
} else {
|
||||
$v['id'] = $ClaimTraceabilityOperationModel->addData($v);
|
||||
}
|
||||
array_push($operationids, $v['id']);
|
||||
}
|
||||
$ClaimTraceabilityOperationModel->whereNotIn('id', $operationids)
|
||||
->where('traceability_id', $id)->delete();
|
||||
|
||||
return $id;
|
||||
}
|
||||
|
||||
public function updateTraceability($data, $id)
|
||||
{
|
||||
$data['traceability_operation'] = json_encode($data['traceability_operation']);
|
||||
$res = $this->where('id', $id)->update($data);
|
||||
|
||||
$operationids = [];
|
||||
$ClaimTraceabilityOperationModel = new ClaimTraceabilityOperation();
|
||||
|
||||
foreach (json_decode($data['traceability_operation'], true) as $v) {
|
||||
$v['traceability_id'] = $id;
|
||||
if ($v['id']) {
|
||||
$ClaimTraceabilityOperationModel->where('id', $v['id'])->update($v);
|
||||
} else {
|
||||
$v['id'] = $ClaimTraceabilityOperationModel->addData($v);
|
||||
}
|
||||
array_push($operationids, $v['id']);
|
||||
}
|
||||
$ClaimTraceabilityOperationModel->whereNotIn('id', $operationids)
|
||||
->where('traceability_id', $id)->delete();
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user