|
|
@@ -835,54 +835,51 @@ class WorkOrderProcess extends Api
|
|
|
$seenSeq[$seqKey] = true;
|
|
|
}
|
|
|
$now = date('Y-m-d H:i:s');
|
|
|
- $partNameToCode = [];
|
|
|
+ $partMap = [];
|
|
|
$nextPartCode = 0;
|
|
|
foreach ($data as $row) {
|
|
|
- $partName = isset($row['部件名称']) ? $row['部件名称'] : '';
|
|
|
- if ($partName === '' || isset($partNameToCode[$partName])) {
|
|
|
+ $partName = isset($row['部件名称']) ? trim((string)$row['部件名称']) : '';
|
|
|
+ if ($partName === '') {
|
|
|
continue;
|
|
|
}
|
|
|
- $partNameToCode[$partName] = ++$nextPartCode;
|
|
|
+ $partType = isset($row['生产工序']) ? trim((string)$row['生产工序']) : '';
|
|
|
+ if (!isset($partMap[$partName])) {
|
|
|
+ $partMap[$partName] = [
|
|
|
+ 'part_code' => ++$nextPartCode,
|
|
|
+ 'part_type' => $partType,
|
|
|
+ ];
|
|
|
+ } elseif ($partType !== '' && $partMap[$partName]['part_type'] === '') {
|
|
|
+ $partMap[$partName]['part_type'] = $partType;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
$workOrderParts = [];
|
|
|
- $i = 0;
|
|
|
- foreach ($partNameToCode as $partName => $partCode) {
|
|
|
- $workOrderParts[$i++] = [
|
|
|
+ foreach ($partMap as $partName => $partInfo) {
|
|
|
+ $workOrderParts[] = [
|
|
|
'work_order' => $params['workorder'],
|
|
|
'part_name' => $partName,
|
|
|
- 'part_code' => $partCode,
|
|
|
- 'part_type' => '',
|
|
|
+ 'part_code' => $partInfo['part_code'],
|
|
|
+ 'part_type' => $partInfo['part_type'],
|
|
|
'remark' => '',
|
|
|
'status' => 1,
|
|
|
'sys_id' => $params['sys_id'],
|
|
|
'sys_rq' => $now,
|
|
|
];
|
|
|
}
|
|
|
- Db::startTrans();
|
|
|
- try {
|
|
|
- //删除数据库现有的工单部件数据
|
|
|
- Db::name('工单_部件资料')->where('work_order', $params['workorder'])->delete();
|
|
|
- //插入工单部件数据
|
|
|
- $partInsertCount = Db::name('工单_部件资料')->insertAll($workOrderParts);
|
|
|
- if ($partInsertCount === false) {
|
|
|
- throw new \Exception('工单部件导入失败');
|
|
|
- }
|
|
|
- //提交事务
|
|
|
- Db::commit();
|
|
|
- } catch (\Exception $e) {
|
|
|
- Db::rollback();
|
|
|
- $this->error($e->getMessage());
|
|
|
- }
|
|
|
|
|
|
$workOrderProcesses = [];
|
|
|
foreach ($data as $value) {
|
|
|
- $name = isset($value['部件名称']) ? $value['部件名称'] : '';
|
|
|
- $partCode = ($name !== '' && isset($partNameToCode[$name])) ? $partNameToCode[$name] : '';
|
|
|
+ $seq = isset($value['序号']) ? $value['序号'] : null;
|
|
|
+ if ($seq === null || $seq === '') {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $name = isset($value['部件名称']) ? trim((string)$value['部件名称']) : '';
|
|
|
+ $partCode = ($name !== '' && isset($partMap[$name])) ? $partMap[$name]['part_code'] : '';
|
|
|
$workOrderProcesses[] = [
|
|
|
'work_order' => $params['workorder'],
|
|
|
'part_code' => $partCode,
|
|
|
'part_name' => $name,
|
|
|
- 'process_code' => $value['序号'],
|
|
|
+ 'process_code' => $seq,
|
|
|
'process_name' => $value['工序名称'],
|
|
|
'big_process' => $value['生产工序'],
|
|
|
'standard_hour' => $value['秒'],
|
|
|
@@ -895,22 +892,35 @@ class WorkOrderProcess extends Api
|
|
|
'sys_rq' => $now,
|
|
|
];
|
|
|
}
|
|
|
+
|
|
|
Db::startTrans();
|
|
|
try {
|
|
|
- //删除数据库现有的工单工艺数据
|
|
|
+ Db::name('工单_部件资料')->where('work_order', $params['workorder'])->delete();
|
|
|
+ if (!empty($workOrderParts)) {
|
|
|
+ $partInsertCount = Db::name('工单_部件资料')->insertAll($workOrderParts);
|
|
|
+ if ($partInsertCount === false || $partInsertCount === 0) {
|
|
|
+ throw new \Exception('工单部件导入失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
Db::name('工单_基础工艺资料')->where('work_order', $params['workorder'])->delete();
|
|
|
- //插入工单工艺数据
|
|
|
+ if (empty($workOrderProcesses)) {
|
|
|
+ throw new \Exception('没有可导入的工序数据');
|
|
|
+ }
|
|
|
$processInsertCount = Db::name('工单_基础工艺资料')->insertAll($workOrderProcesses);
|
|
|
- if ($processInsertCount === false) {
|
|
|
+ if ($processInsertCount === false || $processInsertCount === 0) {
|
|
|
throw new \Exception('工单工艺导入失败');
|
|
|
}
|
|
|
- //提交事务
|
|
|
Db::commit();
|
|
|
+ } catch (\think\exception\HttpResponseException $e) {
|
|
|
+ throw $e;
|
|
|
} catch (\Exception $e) {
|
|
|
Db::rollback();
|
|
|
- $this->error($e->getMessage());
|
|
|
+ $this->error('导入失败:' . $e->getMessage());
|
|
|
}
|
|
|
- $this->success('导入成功');
|
|
|
+ $this->success('导入成功', [
|
|
|
+ 'part_count' => count($workOrderParts),
|
|
|
+ 'process_count' => count($workOrderProcesses),
|
|
|
+ ]);
|
|
|
}
|
|
|
|
|
|
/**
|