|
@@ -427,6 +427,11 @@ class WorkOrder extends Api
|
|
|
if (empty($param) || isset($param['Uniqid']) === false){
|
|
if (empty($param) || isset($param['Uniqid']) === false){
|
|
|
$this->error('参数错误');
|
|
$this->error('参数错误');
|
|
|
}
|
|
}
|
|
|
|
|
+ // 先查询原始数据用于日志对比
|
|
|
|
|
+ $oldData = \db('工单_基本资料')
|
|
|
|
|
+ ->where('Uniqid', $param['Uniqid'])
|
|
|
|
|
+ ->find();
|
|
|
|
|
+ //配置修改数据
|
|
|
$row = [
|
|
$row = [
|
|
|
'Gd_lx' => isset($param['lx'])?$param['lx']:'',
|
|
'Gd_lx' => isset($param['lx'])?$param['lx']:'',
|
|
|
'开单日期' => isset($param['kdrq'])?$param['kdrq']:'',
|
|
'开单日期' => isset($param['kdrq'])?$param['kdrq']:'',
|
|
@@ -453,6 +458,18 @@ class WorkOrder extends Api
|
|
|
'排产时库存' => isset($param['kc'])?$param['kc']:'',
|
|
'排产时库存' => isset($param['kc'])?$param['kc']:'',
|
|
|
'平均合格率' => isset($param['avg'])?$param['avg']:'',
|
|
'平均合格率' => isset($param['avg'])?$param['avg']:'',
|
|
|
];
|
|
];
|
|
|
|
|
+ // 修改工单主信息时记录变更
|
|
|
|
|
+ $changes = [];
|
|
|
|
|
+ foreach ($row as $field => $newValue) {
|
|
|
|
|
+ $oldValue = $oldData[$field] ?? null;
|
|
|
|
|
+ if ($oldValue != $newValue) {
|
|
|
|
|
+ $changes[] = [
|
|
|
|
|
+ 'field' => $field,
|
|
|
|
|
+ 'old' => $oldValue,
|
|
|
|
|
+ 'new' => $newValue
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
//获取印件资料
|
|
//获取印件资料
|
|
|
$printCode = \db('工单_印件资料')
|
|
$printCode = \db('工单_印件资料')
|
|
|
->where('Uniqid',$param['printID'])
|
|
->where('Uniqid',$param['printID'])
|
|
@@ -476,12 +493,46 @@ class WorkOrder extends Api
|
|
|
//修改工单信息
|
|
//修改工单信息
|
|
|
$sql = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($row);
|
|
$sql = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($row);
|
|
|
$res = Db::query($sql);
|
|
$res = Db::query($sql);
|
|
|
|
|
+ // 记录修改日志(仅当有字段变更时)
|
|
|
|
|
+ if (!empty($changes)) {
|
|
|
|
|
+ $logData = [];
|
|
|
|
|
+ foreach ($changes as $change) {
|
|
|
|
|
+ $logData[] = [
|
|
|
|
|
+ 'Gd_gdbh' => $oldData['Gd_gdbh'], // 使用原始工单编号
|
|
|
|
|
+ 'ModifyUser' => $param['sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+ 'FieldName' => $change['field'],
|
|
|
|
|
+ 'OldValue' => $change['old'],
|
|
|
|
|
+ 'NewValue' => $change['new'],
|
|
|
|
|
+ 'ModifySource' => '工单编辑'
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+ $logSql = \db('系统操作日志表')->fetchSql(true)->insertAll($logData);
|
|
|
|
|
+ $result = \db()->query($logSql);
|
|
|
|
|
+ }
|
|
|
//修改订单数量该工单下的订单数量
|
|
//修改订单数量该工单下的订单数量
|
|
|
//1. 查询该id下的工单编号, 防止其手动修改工单编号导致条件错误
|
|
//1. 查询该id下的工单编号, 防止其手动修改工单编号导致条件错误
|
|
|
$gdbh = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->value('Gd_gdbh');
|
|
$gdbh = \db('工单_基本资料')->where('Uniqid',$param['Uniqid'])->value('Gd_gdbh');
|
|
|
|
|
+ // 获取修改前的订单数量
|
|
|
|
|
+ $oldQuantity = \db('工单_基本资料')
|
|
|
|
|
+ ->where('Gd_gdbh', $gdbh)
|
|
|
|
|
+ ->value('订单数量');
|
|
|
//2. 根据查出的工单编号修改订单数量
|
|
//2. 根据查出的工单编号修改订单数量
|
|
|
$sql = \db('工单_基本资料')->where('Gd_gdbh',$param['gdbh'])->fetchSql(true)->update(['订单数量'=>$row['订单数量']]);
|
|
$sql = \db('工单_基本资料')->where('Gd_gdbh',$param['gdbh'])->fetchSql(true)->update(['订单数量'=>$row['订单数量']]);
|
|
|
$res1 = Db::query($sql);
|
|
$res1 = Db::query($sql);
|
|
|
|
|
+ // 记录订单数量单独变更
|
|
|
|
|
+ if ($res1 && $oldQuantity != $row['订单数量']) {
|
|
|
|
|
+ $logSql = \db('系统操作日志表')->fetchSql(true)->insert([
|
|
|
|
|
+ 'Gd_gdbh' => $gdbh,
|
|
|
|
|
+ 'ModifyUser' => $param['sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+ 'FieldName' => '订单数量',
|
|
|
|
|
+ 'OldValue' => $oldQuantity,
|
|
|
|
|
+ 'NewValue' => $row['订单数量'],
|
|
|
|
|
+ 'ModifySource' => '数量修正'
|
|
|
|
|
+ ]);
|
|
|
|
|
+ $result = \db()->query($logSql);
|
|
|
|
|
+ }
|
|
|
if ($res !== false && $res1 !== false){
|
|
if ($res !== false && $res1 !== false){
|
|
|
$this->success('成功');
|
|
$this->success('成功');
|
|
|
}else{
|
|
}else{
|
|
@@ -1103,55 +1154,233 @@ class WorkOrder extends Api
|
|
|
* @throws \think\exception\DbException
|
|
* @throws \think\exception\DbException
|
|
|
* @throws \think\exception\PDOException
|
|
* @throws \think\exception\PDOException
|
|
|
*/
|
|
*/
|
|
|
|
|
+// public function ProcessDetailEdit()
|
|
|
|
|
+// {
|
|
|
|
|
+// if (Request::instance()->isPost() === false){
|
|
|
|
|
+// $this->error('请求错误');
|
|
|
|
|
+// }
|
|
|
|
|
+// $param = Request::instance()->post();
|
|
|
|
|
+// if (empty($param) || isset($param['UniqId']) === false){
|
|
|
|
|
+// $this->error('参数错误');
|
|
|
|
|
+// }
|
|
|
|
|
+// // 获取修改前原始数据
|
|
|
|
|
+// $oldData = \db('工单_工艺资料')
|
|
|
|
|
+// ->where('UniqId', $param['UniqId'])
|
|
|
|
|
+// ->find();
|
|
|
|
|
+// //获取工单损耗代号数据
|
|
|
|
|
+// if (empty($param['Gy0_shdh'])){
|
|
|
|
|
+// $rate['rate0'] = 0;
|
|
|
|
|
+// $rate['rate1'] = 0;
|
|
|
|
|
+// }else{
|
|
|
|
|
+// $rate = \db('dic_lzsh')->where('sys_bh',$param['Gy0_shdh'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->find();
|
|
|
|
|
+// }
|
|
|
|
|
+// if ($param['备选工序'] == ''){
|
|
|
|
|
+// $param['备选工序'] = null;
|
|
|
|
|
+// }
|
|
|
|
|
+// $param['Gy0_Rate0']= isset($rate['rate0'])?$rate['rate0']:0;
|
|
|
|
|
+// $param['Gy0_Rate1'] = isset($rate['rate1'])?$rate['rate1']:0;
|
|
|
|
|
+// $param['Mod_rq'] = date('Y-m-d H:i:s',time());
|
|
|
|
|
+// $UniqId = $param['UniqId'];
|
|
|
|
|
+// unset($param['UniqId']);
|
|
|
|
|
+// //获取工单第一道工艺编号
|
|
|
|
|
+// $minGxh = \db('工单_工艺资料')->where('Gy0_gdbh',$param['Gy0_gdbh'])->column('min(Gy0_gxh) as gxh');
|
|
|
|
|
+// //修改工艺资料
|
|
|
|
|
+// $sql = \db('工单_工艺资料')->where('UniqId',$UniqId)->fetchSql(true)->update($param);
|
|
|
|
|
+// $res = \db()->query($sql);
|
|
|
|
|
+// //获取工艺资料数据
|
|
|
|
|
+// $list = \db('工单_工艺资料')->where('UniqId',$UniqId)->field('Gy0_yjno,Gy0_gxh,rtrim(Gy0_计划接货数) as 计划接货数')->find();
|
|
|
|
|
+// //如果是第一道工序需从印件资料中获取计划产量
|
|
|
|
|
+// $list['计划接货数'] = \db('工单_印件资料')->where('Yj_Gdbh',$param['Gy0_gdbh'])->where('yj_Yjno',$param['Gy0_yjno'])->column('yj_平张投料')[0];
|
|
|
|
|
+// //修改工单状态
|
|
|
|
|
+// $status = \db('工单_基本资料')->where('Gd_gdbh',$param['Gy0_gdbh'])->field('rtrim(gd_statu) as status')->find();
|
|
|
|
|
+// if ($status['status'] !== '2-生产中'){
|
|
|
|
|
+// $statusSql = \db('工单_基本资料')->where('Gd_gdbh',$param['Gy0_gdbh'])->fetchSql(true)->update(['gd_statu'=>'2-生产中']);
|
|
|
|
|
+// Db::query($statusSql);
|
|
|
|
|
+// }
|
|
|
|
|
+// //重新分配工序计划产量
|
|
|
|
|
+// if ((int)$list['计划接货数'] > 0){
|
|
|
|
|
+// $result = $this->PlannedProcessYield($param['Gy0_gdbh'],$list['Gy0_yjno'],0,$list['计划接货数']);
|
|
|
|
|
+// }
|
|
|
|
|
+// // 记录变更日志
|
|
|
|
|
+// if ($res) {
|
|
|
|
|
+// $newData = array_merge($oldData, $param); // 合并新旧数据
|
|
|
|
|
+// $changes = [];
|
|
|
|
|
+//
|
|
|
|
|
+// // 动态对比所有参数字段(排除系统字段)
|
|
|
|
|
+// $excludeFields = ['UniqId', 'Mod_rq'];
|
|
|
|
|
+// foreach ($param as $field => $newValue) {
|
|
|
|
|
+// if (in_array($field, $excludeFields)) continue;
|
|
|
|
|
+//
|
|
|
|
|
+// $oldValue = $oldData[$field] ?? 'NULL';
|
|
|
|
|
+// if ($oldValue != $newValue) {
|
|
|
|
|
+// $changes[] = [
|
|
|
|
|
+// 'field' => $field,
|
|
|
|
|
+// 'old' => $oldValue,
|
|
|
|
|
+// 'new' => $newValue
|
|
|
|
|
+// ];
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+//
|
|
|
|
|
+// // 批量插入日志
|
|
|
|
|
+// if (!empty($changes)) {
|
|
|
|
|
+// $logData = [];
|
|
|
|
|
+// foreach ($changes as $change) {
|
|
|
|
|
+// $logData[] = [
|
|
|
|
|
+// 'Gd_gdbh' => $oldData['Gy0_gdbh'],
|
|
|
|
|
+// 'yjno' => $oldData['Gy0_yjno'],
|
|
|
|
|
+// 'gxh' => $oldData['Gy0_gxh'],
|
|
|
|
|
+// 'ModifyUser' => $param['Sys_id'],
|
|
|
|
|
+// 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+// 'FieldName' => $change['field'],
|
|
|
|
|
+// 'OldValue' => $change['old'],
|
|
|
|
|
+// 'NewValue' => $change['new'],
|
|
|
|
|
+// 'ModifySource' => '工艺调整'
|
|
|
|
|
+// ];
|
|
|
|
|
+// }
|
|
|
|
|
+// $logSql = \db('系统操作日志表')->fetchSql(true)->insertAll($logData);
|
|
|
|
|
+// \db()->query($logSql);
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// if ($res !== false){
|
|
|
|
|
+// $this->success('成功');
|
|
|
|
|
+// }else{
|
|
|
|
|
+// $this->error('失败');
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
public function ProcessDetailEdit()
|
|
public function ProcessDetailEdit()
|
|
|
{
|
|
{
|
|
|
- if (Request::instance()->isPost() === false){
|
|
|
|
|
- $this->error('请求错误');
|
|
|
|
|
- }
|
|
|
|
|
- $param = Request::instance()->post();
|
|
|
|
|
- if (empty($param) || isset($param['UniqId']) === false){
|
|
|
|
|
- $this->error('参数错误');
|
|
|
|
|
- }
|
|
|
|
|
- if (empty($param['Gy0_shdh'])){
|
|
|
|
|
- $rate['rate0'] = 0;
|
|
|
|
|
- $rate['rate1'] = 0;
|
|
|
|
|
- }else{
|
|
|
|
|
- $rate = \db('dic_lzsh')->where('sys_bh',$param['Gy0_shdh'])->field('rtrim(sys_rate0) as rate0,rtrim(sys_rate1) as rate1')->find();
|
|
|
|
|
- }
|
|
|
|
|
- if ($param['备选工序'] == ''){
|
|
|
|
|
- $param['备选工序'] = null;
|
|
|
|
|
- }
|
|
|
|
|
- $param['Gy0_Rate0']= isset($rate['rate0'])?$rate['rate0']:0;
|
|
|
|
|
- $param['Gy0_Rate1'] = isset($rate['rate1'])?$rate['rate1']:0;
|
|
|
|
|
- $param['Mod_rq'] = date('Y-m-d H:i:s',time());
|
|
|
|
|
- $UniqId = $param['UniqId'];
|
|
|
|
|
- unset($param['UniqId']);
|
|
|
|
|
- //获取工单第一道工艺编号
|
|
|
|
|
- $minGxh = \db('工单_工艺资料')->where('Gy0_gdbh',$param['Gy0_gdbh'])->column('min(Gy0_gxh) as gxh');
|
|
|
|
|
- //修改工艺资料
|
|
|
|
|
- $sql = \db('工单_工艺资料')->where('UniqId',$UniqId)->fetchSql(true)->update($param);
|
|
|
|
|
- $res = Db::query($sql);
|
|
|
|
|
- //获取工艺资料数据
|
|
|
|
|
- $list = \db('工单_工艺资料')->where('UniqId',$UniqId)->field('Gy0_yjno,Gy0_gxh,rtrim(Gy0_计划接货数) as 计划接货数')->find();
|
|
|
|
|
- //如果是第一道工序需从印件资料中获取计划产量
|
|
|
|
|
- $list['计划接货数'] = \db('工单_印件资料')->where('Yj_Gdbh',$param['Gy0_gdbh'])->where('yj_Yjno',$param['Gy0_yjno'])->column('yj_平张投料')[0];
|
|
|
|
|
- //修改工单状态
|
|
|
|
|
- $status = \db('工单_基本资料')->where('Gd_gdbh',$param['Gy0_gdbh'])->field('rtrim(gd_statu) as status')->find();
|
|
|
|
|
- if ($status['status'] !== '2-生产中'){
|
|
|
|
|
- $statusSql = \db('工单_基本资料')->where('Gd_gdbh',$param['Gy0_gdbh'])->fetchSql(true)->update(['gd_statu'=>'2-生产中']);
|
|
|
|
|
- Db::query($statusSql);
|
|
|
|
|
- }
|
|
|
|
|
- //重新分配工序计划产量
|
|
|
|
|
- if ((int)$list['计划接货数'] > 0){
|
|
|
|
|
- $result = $this->PlannedProcessYield($param['Gy0_gdbh'],$list['Gy0_yjno'],0,$list['计划接货数']);
|
|
|
|
|
- }
|
|
|
|
|
- if ($res !== false){
|
|
|
|
|
- $this->success('成功');
|
|
|
|
|
- }else{
|
|
|
|
|
- $this->error('失败');
|
|
|
|
|
|
|
+ Db::startTrans();
|
|
|
|
|
+ try {
|
|
|
|
|
+ // 请求验证
|
|
|
|
|
+ if (!Request::instance()->isPost()) {
|
|
|
|
|
+ throw new Exception('非法请求方法');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $param = Request::instance()->post();
|
|
|
|
|
+ if (empty($param) || !isset($param['UniqId'])) {
|
|
|
|
|
+ throw new Exception('缺少必要参数');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $UniqId = $param['UniqId'];
|
|
|
|
|
+
|
|
|
|
|
+ // 获取原始数据(全字段)
|
|
|
|
|
+ $oldData = Db::name('工单_工艺资料')
|
|
|
|
|
+ ->where('UniqId', $UniqId)
|
|
|
|
|
+ ->find();
|
|
|
|
|
+ if (!$oldData) {
|
|
|
|
|
+ throw new Exception('目标数据不存在');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 动态构建更新数据 --------------------------------------------------------
|
|
|
|
|
+ $updateData = [];
|
|
|
|
|
+ $logsData = [];
|
|
|
|
|
+ $systemFields = array('UniqId', 'Mod_rq'); // 显式声明数组
|
|
|
|
|
+
|
|
|
|
|
+ // 合并所有有效字段(PHP7.2兼容写法)
|
|
|
|
|
+ foreach ($param as $key => $value) {
|
|
|
|
|
+ if (!in_array($key, $systemFields)) {
|
|
|
|
|
+ $updateData[$key] = $value;
|
|
|
|
|
+ $logsData[$key] = $value;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 处理业务逻辑字段
|
|
|
|
|
+ if (empty($param['Gy0_shdh'])) {
|
|
|
|
|
+ $updateData['Gy0_Rate0'] = 0;
|
|
|
|
|
+ $updateData['Gy0_Rate1'] = 0;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $rate = Db::name('dic_lzsh')
|
|
|
|
|
+ ->where('sys_bh', $param['Gy0_shdh'])
|
|
|
|
|
+ ->field('rtrim(sys_rate0) as rate0, rtrim(sys_rate1) as rate1')
|
|
|
|
|
+ ->find();
|
|
|
|
|
+ $rate = $rate ? $rate : array('rate0' => 0, 'rate1' => 0);
|
|
|
|
|
+ $updateData['Gy0_Rate0'] = $rate['rate0'];
|
|
|
|
|
+ $updateData['Gy0_Rate1'] = $rate['rate1'];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 添加系统字段
|
|
|
|
|
+ $updateData['Mod_rq'] = date('Y-m-d H:i:s');
|
|
|
|
|
+
|
|
|
|
|
+ // 执行全字段更新(PHP7.2兼容的回调函数)-----------------------------------
|
|
|
|
|
+ $rawSql = Db::name('工单_工艺资料')
|
|
|
|
|
+ ->where('UniqId', $UniqId)
|
|
|
|
|
+ ->fetchSql(true)
|
|
|
|
|
+ ->update($updateData);
|
|
|
|
|
+
|
|
|
|
|
+ // 中文字段安全处理(传统匿名函数写法)
|
|
|
|
|
+ $safeSql = preg_replace_callback(
|
|
|
|
|
+ '/`([\x{4e00}-\x{9fa5}]+)`/u',
|
|
|
|
|
+ function($matches) {
|
|
|
|
|
+ return '`' . addslashes($matches[1]) . '`';
|
|
|
|
|
+ },
|
|
|
|
|
+ $rawSql
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ // 执行并验证
|
|
|
|
|
+ $affected = Db::execute($safeSql);
|
|
|
|
|
+ if ($affected < 0) {
|
|
|
|
|
+ throw new Exception('数据库执行失败');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 记录全字段变更日志 -----------------------------------------------------
|
|
|
|
|
+ $changes = array();
|
|
|
|
|
+ foreach ($logsData as $field => $newValue) {
|
|
|
|
|
+ $oldValue = isset($oldData[$field]) ? $oldData[$field] : 'NULL';
|
|
|
|
|
+
|
|
|
|
|
+ // 严格值比较(PHP7.2兼容的类型转换)
|
|
|
|
|
+ if ((string)$oldValue !== (string)$newValue) {
|
|
|
|
|
+ $changes[] = array(
|
|
|
|
|
+ 'field' => $field,
|
|
|
|
|
+ 'old' => $oldValue,
|
|
|
|
|
+ 'new' => $newValue
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!empty($changes)) {
|
|
|
|
|
+ $logs = array();
|
|
|
|
|
+ foreach ($changes as $change) {
|
|
|
|
|
+ $logs[] = array(
|
|
|
|
|
+ 'Gd_gdbh' => $oldData['Gy0_gdbh'],
|
|
|
|
|
+ 'yjno' => $oldData['Gy0_yjno'],
|
|
|
|
|
+ 'gxh' => $oldData['Gy0_gxh'],
|
|
|
|
|
+ 'ModifyUser' => $param['Sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+ 'FieldName' => $change['field'],
|
|
|
|
|
+ 'OldValue' => $change['old'],
|
|
|
|
|
+ 'NewValue' => $change['new'],
|
|
|
|
|
+ 'ModifySource' => '工艺调整'
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Db::name('系统操作日志表')->insertAll($logs);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //获取工单第一道工艺编号
|
|
|
|
|
+ $minGxh = \db('工单_工艺资料')->where('Gy0_gdbh',$param['Gy0_gdbh'])->column('min(Gy0_gxh) as gxh');
|
|
|
|
|
+ //获取工艺资料数据
|
|
|
|
|
+ $list = \db('工单_工艺资料')->where('UniqId',$UniqId)->field('Gy0_yjno,Gy0_gxh,rtrim(Gy0_计划接货数) as 计划接货数')->find();
|
|
|
|
|
+ //如果是第一道工序需从印件资料中获取计划产量
|
|
|
|
|
+ $list['计划接货数'] = \db('工单_印件资料')->where('Yj_Gdbh',$param['Gy0_gdbh'])->where('yj_Yjno',$param['Gy0_yjno'])->column('yj_平张投料')[0];
|
|
|
|
|
+ //修改工单状态
|
|
|
|
|
+ $status = \db('工单_基本资料')->where('Gd_gdbh',$param['Gy0_gdbh'])->field('rtrim(gd_statu) as status')->find();
|
|
|
|
|
+ if ($status['status'] !== '2-生产中'){
|
|
|
|
|
+ $statusSql = \db('工单_基本资料')->where('Gd_gdbh',$param['Gy0_gdbh'])->fetchSql(true)->update(['gd_statu'=>'2-生产中']);
|
|
|
|
|
+ Db::query($statusSql);
|
|
|
|
|
+ }
|
|
|
|
|
+ //重新分配工序计划产量
|
|
|
|
|
+ if ((int)$list['计划接货数'] > 0){
|
|
|
|
|
+ $result = $this->PlannedProcessYield($param['Gy0_gdbh'],$list['Gy0_yjno'],0,$list['计划接货数']);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Db::commit();
|
|
|
|
|
+ $this->success('操作成功');
|
|
|
|
|
+
|
|
|
|
|
+ } catch (Exception $e) {
|
|
|
|
|
+ Db::rollback();
|
|
|
|
|
+ $this->error($e->getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* 工艺资料编辑->机台列表获取
|
|
* 工艺资料编辑->机台列表获取
|
|
|
* @return void
|
|
* @return void
|
|
@@ -1579,6 +1808,14 @@ class WorkOrder extends Api
|
|
|
];
|
|
];
|
|
|
$sql= \db('工单_基本资料')->fetchSql(true)->insert($data);
|
|
$sql= \db('工单_基本资料')->fetchSql(true)->insert($data);
|
|
|
$res = \db()->query($sql);
|
|
$res = \db()->query($sql);
|
|
|
|
|
+ //创建日志数据
|
|
|
|
|
+ $logs = array(
|
|
|
|
|
+ 'Gd_gdbh' => $data['Gd_gdbh'],
|
|
|
|
|
+ 'ModifyUser' => $param['Sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+ 'ModifySource' => '工单添加'
|
|
|
|
|
+ );
|
|
|
|
|
+ \db('系统操作日志表')->insert($logs);
|
|
|
if ($res !== false){
|
|
if ($res !== false){
|
|
|
$this->success('成功');
|
|
$this->success('成功');
|
|
|
}else{
|
|
}else{
|
|
@@ -1788,6 +2025,16 @@ class WorkOrder extends Api
|
|
|
if ((int)$number >0){
|
|
if ((int)$number >0){
|
|
|
$this->PlannedProcessYield($param['Gy0_gdbh'],$param['Gy0_yjno'],0,$number);
|
|
$this->PlannedProcessYield($param['Gy0_gdbh'],$param['Gy0_yjno'],0,$number);
|
|
|
}
|
|
}
|
|
|
|
|
+ //操作日志数据
|
|
|
|
|
+ $logs = array(
|
|
|
|
|
+ 'Gd_gdbh' => $param['Gy0_gdbh'],
|
|
|
|
|
+ 'yjno' => $param['Gy0_yjno'],
|
|
|
|
|
+ 'gxh' => $param['Gy0_gxh'],
|
|
|
|
|
+ 'ModifyUser' => $param['Sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+ 'ModifySource' => '工艺新增'
|
|
|
|
|
+ );
|
|
|
|
|
+ \db('系统操作日志表')->insert($logs);
|
|
|
if ($res !== false){
|
|
if ($res !== false){
|
|
|
$this->success('成功');
|
|
$this->success('成功');
|
|
|
}else{
|
|
}else{
|
|
@@ -1889,12 +2136,22 @@ class WorkOrder extends Api
|
|
|
'yj_Yjno' => $codeList['印件号']
|
|
'yj_Yjno' => $codeList['印件号']
|
|
|
])
|
|
])
|
|
|
->value('rtrim(yj_平张投料)');
|
|
->value('rtrim(yj_平张投料)');
|
|
|
|
|
+ // 新增:批量获取要删除的工序号
|
|
|
|
|
+ $gxhList = \db('工单_工艺资料')
|
|
|
|
|
+ ->where('UniqId', 'in', $printId)
|
|
|
|
|
+ ->column('rtrim(Gy0_gxh) as gxh', 'UniqId');
|
|
|
//循环删除工艺资料
|
|
//循环删除工艺资料
|
|
|
|
|
+ $deletedGxh = [];
|
|
|
foreach ($printId as $value){
|
|
foreach ($printId as $value){
|
|
|
$res = \db('工单_工艺资料')
|
|
$res = \db('工单_工艺资料')
|
|
|
->where('UniqId',$value)
|
|
->where('UniqId',$value)
|
|
|
->delete();
|
|
->delete();
|
|
|
- if ($res === false){
|
|
|
|
|
|
|
+ if ($res) {
|
|
|
|
|
+ // 记录成功删除的工序号
|
|
|
|
|
+ if (isset($gxhList[$value])) {
|
|
|
|
|
+ $deletedGxh[] = $gxhList[$value];
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
$i++;
|
|
$i++;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -1902,6 +2159,15 @@ class WorkOrder extends Api
|
|
|
if ((int)$number>0){
|
|
if ((int)$number>0){
|
|
|
$this->PlannedProcessYield($codeList['工单编号'],$codeList['印件号'],0,$number);
|
|
$this->PlannedProcessYield($codeList['工单编号'],$codeList['印件号'],0,$number);
|
|
|
}
|
|
}
|
|
|
|
|
+ // 新增:写入操作日志
|
|
|
|
|
+ \db('系统操作日志表')->insert([
|
|
|
|
|
+ 'ModifyUser' => $param['sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s',time()),
|
|
|
|
|
+ 'Gd_gdbh' => $codeList['工单编号'],
|
|
|
|
|
+ 'yjno' => $codeList['印件号'],
|
|
|
|
|
+ 'gxh' => implode(',', $deletedGxh),
|
|
|
|
|
+ 'ModifySource' => '工艺资料删除'
|
|
|
|
|
+ ]);
|
|
|
if ($i === 0){
|
|
if ($i === 0){
|
|
|
$this->success('删除成功');
|
|
$this->success('删除成功');
|
|
|
}else{
|
|
}else{
|
|
@@ -2522,6 +2788,17 @@ class WorkOrder extends Api
|
|
|
\db('工单_bom资料')->where('BOM_工单编号',$workorder)->delete();
|
|
\db('工单_bom资料')->where('BOM_工单编号',$workorder)->delete();
|
|
|
}
|
|
}
|
|
|
\db()->commit();
|
|
\db()->commit();
|
|
|
|
|
+
|
|
|
|
|
+ // 成功删除后记录日志
|
|
|
|
|
+ $logSql = \db('系统操作日志表')->fetchSql(true)->insert([
|
|
|
|
|
+ 'Gd_gdbh' => $workorder,
|
|
|
|
|
+ 'ModifyUser' => $param['sys_id'],
|
|
|
|
|
+ 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
|
|
+ 'FieldName' => '工单删除',
|
|
|
|
|
+ 'NewValue' => '已删除',
|
|
|
|
|
+ 'ModifySource' => '工单删除'
|
|
|
|
|
+ ]);
|
|
|
|
|
+ \db()->query($logSql);
|
|
|
}catch (\Exception $e){
|
|
}catch (\Exception $e){
|
|
|
\db()->rollback();
|
|
\db()->rollback();
|
|
|
$i++;
|
|
$i++;
|