|
|
@@ -853,49 +853,61 @@ class WorkOrder extends Api
|
|
|
if (empty($param)){
|
|
|
$this->error('参数错误');
|
|
|
}
|
|
|
+
|
|
|
$param['Sys_rq'] = date('Y-m-d H:i:s');
|
|
|
$param['gd_statu'] = '1-计划中';
|
|
|
|
|
|
- $prefix = substr($param['订单编号'], 0, 2); // e.g., "DC"
|
|
|
- $maxOrder = \db('工单_基本资料')
|
|
|
- ->where('订单编号', 'like', "{$prefix}%")
|
|
|
- ->order('订单编号', 'desc')
|
|
|
- ->limit(1)
|
|
|
- ->value('订单编号');
|
|
|
-
|
|
|
- if ($maxOrder) {
|
|
|
- $numericPart = substr($maxOrder, 2);
|
|
|
- $newNumericPart = str_pad((int)$numericPart + 1, strlen($numericPart), '0', STR_PAD_LEFT);
|
|
|
- $param['订单编号'] = $prefix . $newNumericPart;
|
|
|
- } else {
|
|
|
- $param['订单编号'] = $param['订单编号'];
|
|
|
- }
|
|
|
- $massage = $param['面料'].',粘衬:'.$param['粘衬'];
|
|
|
- $mianliao = $this->Gpt($massage);
|
|
|
- $data = [];
|
|
|
- foreach ($mianliao as $key => $value){
|
|
|
- $data[$key] = [
|
|
|
- 'BOM_工单编号' => $param['订单编号'],
|
|
|
- 'BOM_物料名称' => $value,
|
|
|
- 'Sys_rq' => date('Y-m-d H:i:s',time()),
|
|
|
- 'Sys_id' => $param['Sys_id']
|
|
|
- ];
|
|
|
- }
|
|
|
- Db::startTrans();
|
|
|
- try {
|
|
|
- //插入工单基本资料
|
|
|
- $sql= \db('工单_基本资料')->fetchSql(true)->insert($param);
|
|
|
- $res = \db()->query($sql);
|
|
|
- //插入订单物料信息
|
|
|
- $BomSql = \db('工单_bom资料')->fetchSql(true)->insertAll($data);
|
|
|
- $BomRes = \db()->query($BomSql);
|
|
|
-
|
|
|
- //提交
|
|
|
- Db::commit();
|
|
|
- }catch (\Exception $e){
|
|
|
- //回滚
|
|
|
- Db::rollback();
|
|
|
- }
|
|
|
+ //新增订单插入至工单基本资料
|
|
|
+ $sql = \db('工单_基本资料')->fetchSql(true)->insert($param);
|
|
|
+ \db()->query($sql);
|
|
|
+
|
|
|
+ //判断新增时面料是否存在,如果有调用gtp自动生成BOM资料
|
|
|
+ if (!empty($param['面料'])) {
|
|
|
+ // 只有面料不为空时,才调用 GdGtpAiOrder 方法
|
|
|
+ $this->GdGtpAiOrder($param['订单编号']);
|
|
|
+ }
|
|
|
+
|
|
|
+// $prefix = substr($param['订单编号'], 0, 2); // e.g., "DC"
|
|
|
+// $maxOrder = \db('工单_基本资料')
|
|
|
+// ->where('订单编号', 'like', "{$prefix}%")
|
|
|
+// ->order('订单编号', 'desc')
|
|
|
+// ->limit(1)
|
|
|
+// ->value('订单编号');
|
|
|
+// if ($maxOrder) {
|
|
|
+// $numericPart = substr($maxOrder, 2);
|
|
|
+// $newNumericPart = str_pad((int)$numericPart + 1, strlen($numericPart), '0', STR_PAD_LEFT);
|
|
|
+// $param['订单编号'] = $prefix . $newNumericPart;
|
|
|
+// } else {
|
|
|
+// $param['订单编号'] = $param['订单编号'];
|
|
|
+// }
|
|
|
+// $massage = $param['面料'].',粘衬:'.$param['粘衬'];
|
|
|
+// $data = [];
|
|
|
+// foreach ($mianliao as $key => $value){
|
|
|
+// $data[$key] = [
|
|
|
+// 'BOM_工单编号' => $param['订单编号'],
|
|
|
+// 'BOM_物料名称' => $value,
|
|
|
+// 'Sys_rq' => date('Y-m-d H:i:s',time()),
|
|
|
+// 'Sys_id' => $param['Sys_id']
|
|
|
+// ];
|
|
|
+// }
|
|
|
+// //插入订单物料信息
|
|
|
+// $BomSql = \db('工单_bom资料')->fetchSql(true)->insertAll($data);
|
|
|
+// $BomRes = \db()->query($BomSql);
|
|
|
+// Db::startTrans();
|
|
|
+// try {
|
|
|
+// //插入工单基本资料
|
|
|
+// $sql= \db('工单_基本资料')->fetchSql(true)->insert($param);
|
|
|
+// $res = \db()->query($sql);
|
|
|
+// //插入订单物料信息
|
|
|
+// $BomSql = \db('工单_bom资料')->fetchSql(true)->insertAll($data);
|
|
|
+// $BomRes = \db()->query($BomSql);
|
|
|
+//
|
|
|
+// //提交
|
|
|
+// Db::commit();
|
|
|
+// }catch (\Exception $e){
|
|
|
+// //回滚
|
|
|
+// Db::rollback();
|
|
|
+// }
|
|
|
$this->success('成功');
|
|
|
}
|
|
|
|
|
|
@@ -1997,7 +2009,7 @@ class WorkOrder extends Api
|
|
|
->field('a.BOM_工单编号 as 订单编号,b.生产款号 as 生产款号,b.客户编号 as 客户编号,b.款式 as 款式,
|
|
|
a.BOM_物料名称 as 物料名称,a.BOM_投料单位 as 投料单位,a.BOM_计划用量 as 计划用料,a.BOM_标准用量 as 定额用料,
|
|
|
a.BOM_实际用量 as 裁床实际用料,a.BOM_领用数量 as 裁床领用面料,a.BOM_退还数量 as 裁床退回仓库面料,
|
|
|
- a.BOM_desc as 备注,a.UNIQID,a.BOM_库存总量 as 入库总量,a.BOM_门封 as 门封,a.BOM_面料结余 as 面料结余,a.Sys_ID as ID,a.Sys_rq as 日期')
|
|
|
+ a.BOM_desc as 备注,a.UNIQID,a.BOM_库存总量 as 入库总量, a.BOM_计划门幅 as 计划门幅, a.BOM_定额门幅 as 定额门幅,a.BOM_面料结余 as 面料结余,a.Sys_ID as ID,a.Sys_rq as 日期')
|
|
|
->where($where)
|
|
|
->whereNull('a.Mod_rq')
|
|
|
->select();
|
|
|
@@ -2206,6 +2218,10 @@ class WorkOrder extends Api
|
|
|
if (empty($param)){
|
|
|
$this->error('请求错误');
|
|
|
}
|
|
|
+ // 判断前端传来的参数是否为空,避免空订单编号造成问题
|
|
|
+ if(empty($param[0]['BOM_工单编号'])){
|
|
|
+ $this->error('请求错误,请重新打开此页面');
|
|
|
+ }
|
|
|
foreach ($param as $key=>$value){
|
|
|
$data = $value;
|
|
|
unset($data['UNIQID']);
|
|
|
@@ -2289,30 +2305,61 @@ class WorkOrder extends Api
|
|
|
if (empty($param) || !isset($param['order'])){
|
|
|
$this->error('参数错误');
|
|
|
}
|
|
|
+ // 定义查询字段
|
|
|
+ $fields = '
|
|
|
+ a.id,
|
|
|
+ a.order_id as 订单编号,
|
|
|
+ a.客户编号,
|
|
|
+ a.款号 as 生产款号,
|
|
|
+ a.款式,
|
|
|
+ a.物料名称,
|
|
|
+ b.BOM_计划用量 as 计划用料,
|
|
|
+ b.BOM_标准用量 as 定额用料,
|
|
|
+ b.BOM_计划门幅 as 计划门幅,
|
|
|
+ b.BOM_定额门幅 as 定额门幅,
|
|
|
+ b.BOM_实际用量 as 裁床实际用料,
|
|
|
+ b.Bom_领用数量 as 裁床领用面料,
|
|
|
+ b.BOM_退还数量 as 裁床退还数量,
|
|
|
+ b.BOM_库存总量 as 库存总量,
|
|
|
+ b.BOM_面料结余 as 面料结余,
|
|
|
+ a.number as 入库数量,
|
|
|
+ a.number as 出库数量,
|
|
|
+ b.BOM_投料单位 as 投料单位,
|
|
|
+ a.rq as 入库时间,
|
|
|
+ a.rq as 出库时间,
|
|
|
+ a.sys_id as 入库人员,
|
|
|
+ a.sys_id as 出库人员,
|
|
|
+ a.recipient as 领用人员,
|
|
|
+ a.receipt_number as 单号,
|
|
|
+ b.BOM_desc as 备注
|
|
|
+ ';
|
|
|
if (isset($param['searchh']) || !empty($param['search'])){
|
|
|
- $list['入库记录'] = \db('设备_报工日志')
|
|
|
- ->where('receipt_number',$param['order'])
|
|
|
- ->where('name','入库')
|
|
|
- ->field('id,order_id as 订单编号,款号,number as 数量,rq as 入库时间,sys_id as 入库人员,recipient as 入仓人员,receipt_number as 单号,物料名称')
|
|
|
- ->order('入库时间 desc')
|
|
|
- ->whereNull('Mod_rq')
|
|
|
+ $list['入库记录'] = \db('设备_报工日志')->alias('a')
|
|
|
+ ->join('工单_bom资料 b', 'b.BOM_工单编号 = a.order_id AND a.物料名称 = b.BOM_物料名称', 'left') // 多条件关联
|
|
|
+ ->where('a.receipt_number', $param['order'])
|
|
|
+ ->where('a.name', '入库')
|
|
|
+ ->field($fields)
|
|
|
+ ->order('a.rq desc')
|
|
|
+ ->whereNull('a.Mod_rq')
|
|
|
->select();
|
|
|
}else{
|
|
|
//出库记录查询
|
|
|
- $list['出库记录'] = \db('设备_报工日志')
|
|
|
- ->where('receipt_number',$param['order'])
|
|
|
- ->where('name','出库')
|
|
|
- ->field('id,order_id as 订单编号,款号,number as 数量,rq as 出库时间,sys_id as 出库人员,recipient as 出库人员,receipt_number as 单号,物料名称')
|
|
|
- ->order('出库时间 desc')
|
|
|
- ->whereNull('Mod_rq')
|
|
|
+ $list['出库记录'] = \db('设备_报工日志')->alias('a')
|
|
|
+ ->join('工单_bom资料 b', 'b.BOM_工单编号 = a.order_id AND a.物料名称 = b.BOM_物料名称', 'left') // 多条件关联
|
|
|
+ ->where('a.receipt_number', $param['order'])
|
|
|
+ ->where('a.name', '出库')
|
|
|
+ ->field($fields)
|
|
|
+ ->order('a.rq desc')
|
|
|
+ ->whereNull('a.Mod_rq')
|
|
|
->select();
|
|
|
//退还记录查询
|
|
|
- $list['退还记录'] = \db('设备_报工日志')
|
|
|
- ->where('receipt_number',$param['order'])
|
|
|
- ->where('name','退还')
|
|
|
- ->field('id,order_id as 订单编号,款号,number as 数量,rq as 退还时间,sys_id as 退还机台,recipient as 退还人员,receipt_number as 单号,物料名称')
|
|
|
- ->order('退还时间 desc')
|
|
|
- ->whereNull('Mod_rq')
|
|
|
+ $list['退还记录'] = \db('设备_报工日志')->alias('a')
|
|
|
+ ->join('工单_bom资料 b', 'b.BOM_工单编号 = a.order_id AND a.物料名称 = b.BOM_物料名称', 'left') // 多条件关联
|
|
|
+ ->where('a.receipt_number', $param['order'])
|
|
|
+ ->where('a.name', '退还')
|
|
|
+ ->field($fields)
|
|
|
+ ->order('a.rq desc')
|
|
|
+ ->whereNull('a.Mod_rq')
|
|
|
->select();
|
|
|
}
|
|
|
$this->success('成功',$list);
|
|
|
@@ -2450,7 +2497,7 @@ class WorkOrder extends Api
|
|
|
->alias('a')
|
|
|
->join('工单_基本资料 b', 'b.订单编号 = a.BOM_工单编号')
|
|
|
->field('DATE_FORMAT(a.Sys_rq, "%Y-%m") as date') // 提取年月,格式化为 "YYYY-MM"
|
|
|
- ->group('date') // 对年月字段去重
|
|
|
+ ->group('date')
|
|
|
->order('date desc')
|
|
|
->select();
|
|
|
|
|
|
@@ -2505,7 +2552,7 @@ class WorkOrder extends Api
|
|
|
->field('a.BOM_工单编号 as 订单编号, b.生产款号 as 生产款号, b.客户编号 as 客户编号, b.款式 as 款式,
|
|
|
a.BOM_物料名称 as 物料名称, a.BOM_投料单位 as 投料单位, a.BOM_计划用量 as 计划用料, a.BOM_标准用量 as 定额用料,
|
|
|
a.BOM_实际用量 as 裁床实际用料, a.BOM_领用数量 as 裁床领用面料, a.BOM_退还数量 as 裁床退回仓库面料,
|
|
|
- a.BOM_desc as 备注, a.UNIQID, a.BOM_库存总量 as 入库总量, a.BOM_门封 as 门封, a.BOM_面料结余 as 面料结余, a.Sys_ID as ID, a.Sys_rq as 日期')
|
|
|
+ a.BOM_desc as 备注, a.UNIQID, a.BOM_库存总量 as 入库总量, a.BOM_计划门幅 as 计划门幅, a.BOM_定额门幅 as 定额门幅, a.BOM_面料结余 as 面料结余, a.Sys_ID as ID, a.Sys_rq as 日期')
|
|
|
->where($where)
|
|
|
->order("a.BOM_工单编号 desc")
|
|
|
->limit(($page - 1) * $limit, $limit)
|
|
|
@@ -2634,12 +2681,14 @@ class WorkOrder extends Api
|
|
|
->field('receipt_number as 出库单,order_id as 订单编号,款号,物料名称,rq as 日期,sys_id as 操作机台,recipient as 领料人员,name as 单号类型')
|
|
|
->group('出库单')
|
|
|
->order('rq desc')
|
|
|
+ ->where('Mod_rq',null)
|
|
|
->limit(($page-1)*$limit,$limit)
|
|
|
->select();
|
|
|
$count = \db('设备_报工日志')
|
|
|
->where($where)
|
|
|
->field('receipt_number as 出库单')
|
|
|
->group('出库单')
|
|
|
+ ->where('Mod_rq',null)
|
|
|
->order('rq desc')
|
|
|
->select();
|
|
|
if (empty($list)){
|
|
|
@@ -2672,7 +2721,7 @@ class WorkOrder extends Api
|
|
|
->order('month DESC')
|
|
|
->select();
|
|
|
if (empty($list)){
|
|
|
- $this->error('未找到数据');
|
|
|
+ $this->error('未查询到入库、出库、退还数据');
|
|
|
}else{
|
|
|
$this->success('成功',$list);
|
|
|
}
|
|
|
@@ -2725,27 +2774,24 @@ class WorkOrder extends Api
|
|
|
|
|
|
/**
|
|
|
* 面料汇总左侧菜单
|
|
|
- * @return void
|
|
|
- * @throws \think\db\exception\DataNotFoundException
|
|
|
- * @throws \think\db\exception\ModelNotFoundException
|
|
|
- * @throws \think\exception\DbException
|
|
|
+ * 此接口已在/work_order/fabricListmonth使用
|
|
|
*/
|
|
|
- public function getFabricTab()
|
|
|
- {
|
|
|
- if ($this->request->isGet() === false){
|
|
|
- $this->error('请求错误');
|
|
|
- }
|
|
|
- $list = \db('工单_bom资料')
|
|
|
- ->field([
|
|
|
- "DATE_FORMAT(Sys_rq, '%Y-%m') AS month",
|
|
|
- ])
|
|
|
- ->group('month')
|
|
|
- ->order('month DESC')
|
|
|
- ->select();
|
|
|
- if (empty($list)){
|
|
|
- $this->error('未找到数据');
|
|
|
- }else{
|
|
|
- $this->success('成功',$list);
|
|
|
- }
|
|
|
- }
|
|
|
+// public function getFabricTab()
|
|
|
+// {
|
|
|
+// if ($this->request->isGet() === false){
|
|
|
+// $this->error('请求错误');
|
|
|
+// }
|
|
|
+// $list = \db('工单_bom资料')
|
|
|
+// ->field([
|
|
|
+// "DATE_FORMAT(Sys_rq, '%Y-%m') AS month",
|
|
|
+// ])
|
|
|
+// ->group('month')
|
|
|
+// ->order('month DESC')
|
|
|
+// ->select();
|
|
|
+// if (empty($list)){
|
|
|
+// $this->error('未找到数据');
|
|
|
+// }else{
|
|
|
+// $this->success('成功',$list);
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|