|
|
@@ -2593,182 +2593,160 @@ class WorkOrderSpotCheck extends Api{
|
|
|
// // 将 $param['UniqId'] 的值按逗号分割成数组
|
|
|
// $printIdArray = explode(',', $param['UniqId']);
|
|
|
//
|
|
|
+// // 如果是裁剪工序
|
|
|
// if (isset($param['sys_id']) && strpos($param['sys_id'], '裁剪') !== false) {
|
|
|
// // 初始化失败计数器
|
|
|
// $failureCount = 0;
|
|
|
//
|
|
|
-// foreach ($printIdArray as $uniqId) {
|
|
|
+// // 开启事务
|
|
|
+// \db()->startTrans();
|
|
|
+// try {
|
|
|
+// foreach ($printIdArray as $uniqId) {
|
|
|
+// // 根据 UniqId 查询 设备_产量计酬 表中的订单编号、尺码和数量
|
|
|
+// $result = \db('设备_产量计酬')->where('UniqId', $uniqId)
|
|
|
+// ->field('子订单编号,订单编号,尺码,数量,sczl_bh')
|
|
|
+// ->find();
|
|
|
//
|
|
|
-// // 根据 UniqId 查询 设备_产量计酬 表中的订单编号、尺码和数量
|
|
|
-// $result = \db('设备_产量计酬')->where('UniqId', $uniqId)
|
|
|
-// ->field('子订单编号,订单编号,尺码,数量,sczl_bh')
|
|
|
-// ->find();
|
|
|
-//
|
|
|
-// // 根据订单编号查询工单_印件资料表,并排除有修改日期的记录
|
|
|
-// $yresult = \db('工单_印件资料')->where('子订单编号', $result['子订单编号'])
|
|
|
-// ->whereNull('Mod_rq')
|
|
|
-// ->find();
|
|
|
-//
|
|
|
-// // 检查是否找到结果
|
|
|
-// if (!$result) {
|
|
|
-// $failureCount++;
|
|
|
-// continue; // 跳过当前循环,处理下一个 UniqId
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 获取 result 中的尺码和数量
|
|
|
-// $size = $result['尺码'];
|
|
|
-// $quantity = $result['数量'];
|
|
|
-//
|
|
|
-// // 遍历 yresult 中的 cm1 到 cm10 字段,查找匹配的尺码
|
|
|
-// for ($i = 1; $i <= 10; $i++) {
|
|
|
-// $cmField = 'cm' . $i;
|
|
|
-// $scslField = 'scsl' . $i;
|
|
|
+// // 如果未查询到数据,跳过
|
|
|
+// if (!$result) {
|
|
|
+// $failureCount++;
|
|
|
+// continue;
|
|
|
+// }
|
|
|
//
|
|
|
-// // 检查 yresult 中是否存在对应的尺码字段,且值等于 result 中的尺码
|
|
|
-// if (isset($yresult[$cmField]) && $yresult[$cmField] === $size) {
|
|
|
-// // 找到对应 scsl 字段并进行数量减法
|
|
|
-// if (isset($yresult[$scslField])) {
|
|
|
-// $yresult[$scslField] -= $quantity;
|
|
|
+// // 根据订单编号查询工单_印件资料表,并排除有修改日期的记录
|
|
|
+// $yresult = \db('工单_印件资料')->where('子订单编号', $result['子订单编号'])
|
|
|
+// ->whereNull('Mod_rq')
|
|
|
+// ->find();
|
|
|
//
|
|
|
-// // 防止数量变成负数
|
|
|
-// if ($yresult[$scslField] < 0) {
|
|
|
-// $yresult[$scslField] = 0;
|
|
|
+// // 处理 yresult 中的尺码
|
|
|
+// $size = $result['尺码'];
|
|
|
+// $quantity = $result['数量'];
|
|
|
+// $updateData = [];
|
|
|
+// for ($i = 1; $i <= 10; $i++) {
|
|
|
+// $cmField = 'cm' . $i;
|
|
|
+// $scslField = 'scsl' . $i;
|
|
|
+// if (isset($yresult[$cmField]) && $yresult[$cmField] === $size) {
|
|
|
+// if (isset($yresult[$scslField])) {
|
|
|
+// $yresult[$scslField] -= $quantity;
|
|
|
+// if ($yresult[$scslField] < 0) {
|
|
|
+// $yresult[$scslField] = 0;
|
|
|
+// }
|
|
|
+// $updateData[$scslField] = $yresult[$scslField];
|
|
|
// }
|
|
|
-//
|
|
|
-// // 清除更新后的数量字段,避免旧的值影响
|
|
|
-// $updateData[$scslField] = $yresult[$scslField];
|
|
|
+// break;
|
|
|
// }
|
|
|
-// break; // 找到并处理后,跳出循环
|
|
|
// }
|
|
|
-// }
|
|
|
//
|
|
|
-// // 计算 scsl1 到 scsl10 的总和并更新 sctotal 字段
|
|
|
-// $newTotal = 0;
|
|
|
-// for ($i = 1; $i <= 10; $i++) {
|
|
|
-// $scslField = 'scsl' . $i;
|
|
|
-// if (isset($yresult[$scslField])) {
|
|
|
-// $newTotal += $yresult[$scslField];
|
|
|
+// // 更新工单_印件资料表
|
|
|
+// $newTotal = 0;
|
|
|
+// for ($i = 1; $i <= 10; $i++) {
|
|
|
+// $scslField = 'scsl' . $i;
|
|
|
+// if (isset($yresult[$scslField])) {
|
|
|
+// $newTotal += $yresult[$scslField];
|
|
|
+// }
|
|
|
// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 更新工单_印件资料表的 sctotal 字段
|
|
|
-// \db('工单_印件资料')
|
|
|
-// ->where('子订单编号', $result['子订单编号'])
|
|
|
-// ->update(['sctotal' => $newTotal] + $updateData);
|
|
|
//
|
|
|
-// // 更新设备_产量计酬表的 mod_rq 和 delsys_id 字段
|
|
|
-// $updateData = [
|
|
|
-// 'mod_rq' => date('Y-m-d H:i:s'),
|
|
|
-// 'delsys_id' => $param['sys_id']
|
|
|
-// ];
|
|
|
-// $updateResult = \db('设备_产量计酬')->where('UniqId', $uniqId)->fetchSql(true)->update($updateData);
|
|
|
-// $sql = \db()->query($updateResult);
|
|
|
+// \db('工单_印件资料')
|
|
|
+// ->where('子订单编号', $result['子订单编号'])
|
|
|
+// ->update(['sctotal' => $newTotal] + $updateData);
|
|
|
//
|
|
|
-// // 检查更新是否成功
|
|
|
-// if ($sql === false) {
|
|
|
-// $failureCount++;
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 返回最终的操作结果
|
|
|
-// if ($failureCount === 0) {
|
|
|
-// return $this->success('删除成功');
|
|
|
-// } else {
|
|
|
-// return $this->error("操作完成,但有 {$failureCount} 条记录更新失败");
|
|
|
-// }
|
|
|
-// }else{
|
|
|
-// // 初始化失败计数器
|
|
|
-// $failureCount = 0;
|
|
|
-//
|
|
|
-// foreach ($printIdArray as $uniqId) {
|
|
|
-// // 根据 UniqId 查询 设备_产量计酬 表中的订单编号、尺码和数量
|
|
|
-// $result = \db('设备_产量计酬')->where('UniqId', $uniqId)
|
|
|
-// ->field('订单编号,尺码,数量,sczl_bh')
|
|
|
-// ->find();
|
|
|
-//
|
|
|
-// // 判断是否是本组机台
|
|
|
-// if ($result['sczl_bh'] != $param['sys_id']) {
|
|
|
-// return $this->error("当前选择包含 {$result['sczl_bh']},请选择本组机台 {$param['sys_id']} 进行删除");
|
|
|
-// }
|
|
|
+// // 更新设备_产量计酬表
|
|
|
+// $updateData = [
|
|
|
+// 'mod_rq' => date('Y-m-d H:i:s'),
|
|
|
+// 'delsys_id' => $param['sys_id']
|
|
|
+// ];
|
|
|
+// $updateResult = \db('设备_产量计酬')->where('UniqId', $uniqId)->update($updateData);
|
|
|
//
|
|
|
-// // 检查是否找到结果
|
|
|
-// if (!$result) {
|
|
|
-// $failureCount++;
|
|
|
-// continue; // 跳过当前循环,处理下一个 UniqId
|
|
|
+// // 如果更新失败,记录失败
|
|
|
+// if ($updateResult === false) {
|
|
|
+// $failureCount++;
|
|
|
+// }
|
|
|
// }
|
|
|
//
|
|
|
-// // 更新设备_产量计酬表的mod_rq和delsys_id字段
|
|
|
-// $updateData = [
|
|
|
-// 'mod_rq' => date('Y-m-d H:i:s'),
|
|
|
-// 'delsys_id' => $param['sys_id']
|
|
|
-// ];
|
|
|
-// $result = \db('设备_产量计酬')->where('UniqId', $uniqId)->fetchSql(true)->update($updateData);
|
|
|
-// $sql = \db()->query($result);
|
|
|
+// // 提交事务
|
|
|
+// \db()->commit();
|
|
|
//
|
|
|
-// // 检查更新是否成功
|
|
|
-// if ($sql === false) {
|
|
|
-// $failureCount++;
|
|
|
-// }
|
|
|
+// } catch (\Exception $e) {
|
|
|
+// // 发生异常时回滚
|
|
|
+// \db()->rollback();
|
|
|
+// return $this->error('操作失败:' . $e->getMessage());
|
|
|
// }
|
|
|
//
|
|
|
-// // 如果没有失败记录,则表示删除成功
|
|
|
+// // 返回操作结果
|
|
|
// if ($failureCount === 0) {
|
|
|
// return $this->success('删除成功');
|
|
|
// } else {
|
|
|
// return $this->error("操作完成,但有 {$failureCount} 条记录更新失败");
|
|
|
// }
|
|
|
+// } else {
|
|
|
+//
|
|
|
+// // 处理其他情况,跟上面的逻辑类似
|
|
|
// }
|
|
|
// }
|
|
|
+
|
|
|
public function del() {
|
|
|
+ // 判断请求方式是否为 GET
|
|
|
if (!$this->request->isGet()) {
|
|
|
return $this->error('请求错误');
|
|
|
}
|
|
|
|
|
|
+ // 获取请求参数
|
|
|
$param = $this->request->param();
|
|
|
+
|
|
|
+ // 检查 UniqId 参数是否存在
|
|
|
if (empty($param['UniqId'])) {
|
|
|
- return $this->error('UniqId参数错误');
|
|
|
+ return $this->error('UniqId 参数错误');
|
|
|
}
|
|
|
|
|
|
- // 将 $param['UniqId'] 的值按逗号分割成数组
|
|
|
+ // 将 UniqId 的值按逗号分割成数组
|
|
|
$printIdArray = explode(',', $param['UniqId']);
|
|
|
|
|
|
- // 如果是裁剪工序
|
|
|
- if (isset($param['sys_id']) && strpos($param['sys_id'], '裁剪') !== false) {
|
|
|
- // 初始化失败计数器
|
|
|
- $failureCount = 0;
|
|
|
-
|
|
|
- // 开启事务
|
|
|
- \db()->startTrans();
|
|
|
- try {
|
|
|
- foreach ($printIdArray as $uniqId) {
|
|
|
- // 根据 UniqId 查询 设备_产量计酬 表中的订单编号、尺码和数量
|
|
|
- $result = \db('设备_产量计酬')->where('UniqId', $uniqId)
|
|
|
- ->field('子订单编号,订单编号,尺码,数量,sczl_bh')
|
|
|
+ // 初始化失败计数器
|
|
|
+ $failureCount = 0;
|
|
|
+
|
|
|
+ // 开启事务
|
|
|
+ \db()->startTrans();
|
|
|
+ try {
|
|
|
+ foreach ($printIdArray as $uniqId) {
|
|
|
+ // 根据 UniqId 查询设备_产量计酬表中的数据
|
|
|
+ $result = \db('设备_产量计酬')->where('UniqId', $uniqId)
|
|
|
+ ->field('子订单编号, 订单编号, 尺码, 数量, sczl_bh, 工序名称')
|
|
|
+ ->find();
|
|
|
+
|
|
|
+ // 如果查询不到数据,跳过当前处理
|
|
|
+ if (!$result) {
|
|
|
+ $failureCount++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断工序名称是否是“裁剪”
|
|
|
+ if (isset($param['sys_id']) && strpos($param['sys_id'], '裁剪') !== false) {
|
|
|
+ // 如果工序名称包含“裁剪”,更新工单_印件资料表
|
|
|
+ $yresult = \db('工单_印件资料')->where('子订单编号', $result['子订单编号'])
|
|
|
+ ->whereNull('Mod_rq') // 仅更新没有修改日期的记录
|
|
|
->find();
|
|
|
|
|
|
- // 如果未查询到数据,跳过
|
|
|
- if (!$result) {
|
|
|
+ // 如果没有查询到工单印件资料表的数据,跳过
|
|
|
+ if (!$yresult) {
|
|
|
$failureCount++;
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- // 根据订单编号查询工单_印件资料表,并排除有修改日期的记录
|
|
|
- $yresult = \db('工单_印件资料')->where('子订单编号', $result['子订单编号'])
|
|
|
- ->whereNull('Mod_rq')
|
|
|
- ->find();
|
|
|
-
|
|
|
- // 处理 yresult 中的尺码
|
|
|
+ // 处理尺码和数量更新
|
|
|
$size = $result['尺码'];
|
|
|
$quantity = $result['数量'];
|
|
|
$updateData = [];
|
|
|
+
|
|
|
+ // 遍历工单中的尺码字段(cm1 到 cm10),找到匹配的尺码
|
|
|
for ($i = 1; $i <= 10; $i++) {
|
|
|
$cmField = 'cm' . $i;
|
|
|
$scslField = 'scsl' . $i;
|
|
|
if (isset($yresult[$cmField]) && $yresult[$cmField] === $size) {
|
|
|
+ // 找到匹配的尺码后,更新对应的数量字段
|
|
|
if (isset($yresult[$scslField])) {
|
|
|
$yresult[$scslField] -= $quantity;
|
|
|
if ($yresult[$scslField] < 0) {
|
|
|
- $yresult[$scslField] = 0;
|
|
|
+ $yresult[$scslField] = 0; // 防止数量为负数
|
|
|
}
|
|
|
$updateData[$scslField] = $yresult[$scslField];
|
|
|
}
|
|
|
@@ -2776,7 +2754,7 @@ class WorkOrderSpotCheck extends Api{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 更新工单_印件资料表
|
|
|
+ // 计算更新后的总数量
|
|
|
$newTotal = 0;
|
|
|
for ($i = 1; $i <= 10; $i++) {
|
|
|
$scslField = 'scsl' . $i;
|
|
|
@@ -2785,40 +2763,41 @@ class WorkOrderSpotCheck extends Api{
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 更新工单_印件资料表
|
|
|
\db('工单_印件资料')
|
|
|
->where('子订单编号', $result['子订单编号'])
|
|
|
->update(['sctotal' => $newTotal] + $updateData);
|
|
|
+ }
|
|
|
|
|
|
- // 更新设备_产量计酬表
|
|
|
- $updateData = [
|
|
|
- 'mod_rq' => date('Y-m-d H:i:s'),
|
|
|
- 'delsys_id' => $param['sys_id']
|
|
|
- ];
|
|
|
- $updateResult = \db('设备_产量计酬')->where('UniqId', $uniqId)->update($updateData);
|
|
|
+ // 更新设备_产量计酬表
|
|
|
+ $updateData = [
|
|
|
+ 'mod_rq' => date('Y-m-d H:i:s'),
|
|
|
+ 'delsys_id' => $param['sys_id']
|
|
|
+ ];
|
|
|
|
|
|
- // 如果更新失败,记录失败
|
|
|
- if ($updateResult === false) {
|
|
|
- $failureCount++;
|
|
|
- }
|
|
|
+ // 执行更新操作
|
|
|
+ $updateResult = \db('设备_产量计酬')->where('UniqId', $uniqId)->update($updateData);
|
|
|
+
|
|
|
+ // 如果更新失败,记录失败
|
|
|
+ if ($updateResult === false) {
|
|
|
+ $failureCount++;
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- // 提交事务
|
|
|
- \db()->commit();
|
|
|
+ // 提交事务
|
|
|
+ \db()->commit();
|
|
|
|
|
|
- } catch (\Exception $e) {
|
|
|
- // 发生异常时回滚
|
|
|
- \db()->rollback();
|
|
|
- return $this->error('操作失败:' . $e->getMessage());
|
|
|
- }
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ // 发生异常时回滚事务
|
|
|
+ \db()->rollback();
|
|
|
+ return $this->error('操作失败:' . $e->getMessage());
|
|
|
+ }
|
|
|
|
|
|
- // 返回操作结果
|
|
|
- if ($failureCount === 0) {
|
|
|
- return $this->success('删除成功');
|
|
|
- } else {
|
|
|
- return $this->error("操作完成,但有 {$failureCount} 条记录更新失败");
|
|
|
- }
|
|
|
+ // 返回操作结果
|
|
|
+ if ($failureCount === 0) {
|
|
|
+ return $this->success('删除成功');
|
|
|
} else {
|
|
|
- // 处理其他情况,跟上面的逻辑类似
|
|
|
+ return $this->error("操作完成,但有 {$failureCount} 条记录更新失败");
|
|
|
}
|
|
|
}
|
|
|
|