|
@@ -2736,43 +2736,44 @@ class WorkOrderSpotCheck extends Api{
|
|
|
$this->error('参数错误');
|
|
$this->error('参数错误');
|
|
|
}
|
|
}
|
|
|
foreach ($param as $key=>$value){
|
|
foreach ($param as $key=>$value){
|
|
|
- if ($value['number'] != '' || $value['number'] == 0 ){
|
|
|
|
|
|
|
+ // 确保 value['number'] 是数字类型--将 number 转换为浮动类型
|
|
|
|
|
+ $number = floatval($value['number']);
|
|
|
|
|
+
|
|
|
|
|
+ // 判断 number 是否有效
|
|
|
|
|
+ if ($number !== 0 && !empty($value['number'])){
|
|
|
$lastNumber = \db('工单_bom资料')
|
|
$lastNumber = \db('工单_bom资料')
|
|
|
->where('BOM_工单编号',$value['order_id'])
|
|
->where('BOM_工单编号',$value['order_id'])
|
|
|
->where('BOM_物料名称',$value['物料名称'])
|
|
->where('BOM_物料名称',$value['物料名称'])
|
|
|
->field('BOM_库存总量,BOM_面料结余,Bom_领用数量,BOM_退还数量')
|
|
->field('BOM_库存总量,BOM_面料结余,Bom_领用数量,BOM_退还数量')
|
|
|
->find();
|
|
->find();
|
|
|
|
|
+
|
|
|
|
|
+ // 确保 BOM_面料结余 是数字类型
|
|
|
|
|
+ $lastNumber['BOM_面料结余'] = floatval($lastNumber['BOM_面料结余']);
|
|
|
|
|
+
|
|
|
if ($value['name'] === '出库'){
|
|
if ($value['name'] === '出库'){
|
|
|
- $lastNumber['BOM_面料结余'] -= $value['number'];
|
|
|
|
|
- $lastNumber['Bom_领用数量'] += $value['number'];
|
|
|
|
|
- }elseif ($value['name'] === '退还'){
|
|
|
|
|
- $lastNumber['BOM_面料结余'] += $value['number'];
|
|
|
|
|
- $lastNumber['BOM_退还数量'] += $value['number'];
|
|
|
|
|
- }else{
|
|
|
|
|
- $lastNumber['BOM_库存总量'] += $value['number'];
|
|
|
|
|
- $lastNumber['BOM_面料结余'] += $value['number'];
|
|
|
|
|
- }
|
|
|
|
|
- Db::startTrans();
|
|
|
|
|
- try {
|
|
|
|
|
- //更新工单BOM表数据
|
|
|
|
|
- $BomSql = \db('工单_bom资料')
|
|
|
|
|
- ->where('BOM_工单编号',$value['order_id'])
|
|
|
|
|
- ->where('BOM_物料名称',$value['物料名称'])
|
|
|
|
|
- ->fetchSql(true)
|
|
|
|
|
- ->update($lastNumber);
|
|
|
|
|
- $res = \db()->query($BomSql);
|
|
|
|
|
- //添加出库、退还历史记录
|
|
|
|
|
- $reportSql = \db('设备_报工日志')
|
|
|
|
|
- ->fetchSql(true)
|
|
|
|
|
- ->insert($value);
|
|
|
|
|
- $reportRes = \db()->query($reportSql);
|
|
|
|
|
-
|
|
|
|
|
- //提交事务
|
|
|
|
|
- Db::commit();
|
|
|
|
|
- }catch (\Exception $e){
|
|
|
|
|
- //回滚事务
|
|
|
|
|
- Db::rollback();
|
|
|
|
|
|
|
+ $lastNumber['BOM_面料结余'] -= $number; // 减去出库数量
|
|
|
|
|
+ $lastNumber['Bom_领用数量'] += $number; // 增加领用数量
|
|
|
|
|
+ } elseif ($value['name'] === '退还'){
|
|
|
|
|
+ $lastNumber['BOM_面料结余'] += $number; // 增加面料结余
|
|
|
|
|
+ $lastNumber['BOM_退还数量'] += $number; // 增加退还数量
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $lastNumber['BOM_库存总量'] += $number; // 增加库存总量
|
|
|
|
|
+ $lastNumber['BOM_面料结余'] += $number; // 增加面料结余
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 更新工单BOM表数据
|
|
|
|
|
+ $BomSql = \db('工单_bom资料')
|
|
|
|
|
+ ->where('BOM_工单编号',$value['order_id'])
|
|
|
|
|
+ ->where('BOM_物料名称',$value['物料名称'])
|
|
|
|
|
+ ->fetchSql(true)
|
|
|
|
|
+ ->update($lastNumber);
|
|
|
|
|
+ $res = \db()->query($BomSql);
|
|
|
|
|
+
|
|
|
|
|
+ // 添加出库、退还历史记录
|
|
|
|
|
+ $reportSql = \db('设备_报工日志')
|
|
|
|
|
+ ->fetchSql(true)
|
|
|
|
|
+ ->insert($value);
|
|
|
|
|
+ $reportRes = \db()->query($reportSql);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
$this->success('成功');
|
|
$this->success('成功');
|