huangsanjia преди 1 година
родител
ревизия
f8024eb628
променени са 1 файла, в които са добавени 134 реда и са изтрити 3 реда
  1. 134 3
      application/api/controller/Product.php

+ 134 - 3
application/api/controller/Product.php

@@ -112,18 +112,18 @@ class Product extends Api
         $option['a.Gy0_cpdh'] = $code;
         $gy_field = 'rtrim(a.Gy0_方案) as 方案,a.Gy0_yjno,a.Gy0_gxh,rtrim(a.gy0_gxmc) as gy0_gxmc,rtrim(a.Add_gxmc) as add_gxmc,a.Gy0_Ks,a.Gy0_ls,rtrim(a.工序备注) as 备注,
         a.工价系数,a.损耗系数,a.Gy0_Ms,a.人工检_正品板,a.人工检_次品板,a.人工检_废检,a.机检_正品板,a.机检_次品板,a.机检_废检,rtrim(a.Gy0_sbmc) as Gy0_sbmc,rtrim(a.Sys_id) as Sys_id,
-        a.Sys_rq,a.Mod_rq,b.sys_rate0 as 基础损耗,b.sys_rate1 as 损耗率';
+        a.Sys_rq,a.Mod_rq,b.sys_rate0 as 基础损耗,b.sys_rate1 as 损耗率,a.UniqID';
         $gyRes = db('产品_工艺资料')->alias('a')
             ->join('dic_lzsh b','a.Gy0_shdh = b.sys_bh','left')
             ->where($option)->field($gy_field)->order('a.Gy0_yjno asc,a.Gy0_gxh asc')->select();
         //印件资料
         $where['yj_cpdh'] = $code;
         $field = 'yj_yjno,rtrim(yj_yjdh) as yj_yjdh,yj_yjmc,rtrim(yj_zzdh) as yj_zzdh,rtrim(yj_zzmc) as yj_zzmc,rtrim(yj_tlgg) as yj_tlgg,
-        rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,rtrim(yj_desc) as yj_desc,rtrim(sys_id) as sys_id,sys_rq,mod_rq';
+        rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,rtrim(yj_desc) as yj_desc,rtrim(sys_id) as sys_id,sys_rq,mod_rq,UniqId';
         $yjRes = db('产品_印件资料')->where($where)->field($field)->select();
         //印版资料
         $filter['a.YB_Cpdh'] = $code;
-        $yb_field = 'rtrim(a.YB_方案) as YB_方案,a.YB_Yjno,rtrim(a.存货编码) as 存货编码,a.考核印数,rtrim(a.Sys_id) as Sys_id,a.Mod_rq,rtrim(b.物料名称) as 印版名称';
+        $yb_field = 'rtrim(a.YB_方案) as YB_方案,a.YB_Yjno,rtrim(a.存货编码) as 存货编码,a.考核印数,rtrim(a.Sys_id) as Sys_id,a.Mod_rq,rtrim(b.物料名称) as 印版名称,a.UniqID';
         $ybRes = db('产品_印版资料')->alias('a')
             ->join('物料_存货编码 b','a.存货编码 = b.物料代码')
             ->where($filter)->field($yb_field)->select();
@@ -517,4 +517,135 @@ class Product extends Api
             $this->error('更新失败');
         }
     }
+    /**
+     * 获取产品印件资料
+     * @ApiMethod GET
+     * @params string UniqId
+    */
+    public function getProductYjInfo(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->param();
+        if (empty($params['UniqId']) || empty($params['UniqId'])){
+            $this->error('参数错误');
+        }
+        $field = "yj_yjno,rtrim(yj_yjdh) as yj_yjdh,rtrim(yj_yjmc) as yj_yjmc,rtrim(yj_zzdh) as yj_zzdh,rtrim(yj_zzmc) as yj_zzmc,rtrim(yj_zzdh1) as yj_zzdh1,rtrim(yj_zzdh2) as yj_zzdh2,
+        rtrim(yj_zzdh3) as yj_zzdh3,rtrim(yj_zzdh4) as yj_zzdh4,rtrim(yj_zzmc1) as yj_zzmc1,rtrim(yj_zzmc2) as yj_zzmc2,rtrim(yj_zzmc3) as yj_zzmc3,
+        rtrim(yj_zzmc4) as yj_zzmc4,rtrim(yj_tlgg) as yj_tlgg,rtrim(yj_klgg) as yj_klgg,yj_ks,yj_ls,KgToPages,rtrim(yj_desc) as yj_desc,";
+        $list = \db('产品_印件资料')->where('UniqId',$params['UniqId'])->field($field)->select();
+        $this->success('请求成功',$list);
+    }
+    /**
+     * 修改产品印件资料
+     * @ApiMethod POST
+     * @params array data
+    */
+    public function editProductYjInfo(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        if (empty($params) || !isset($params['UniqId'])){
+            $this->error('参数不能为空');
+        }
+        $UniqId = $params['UniqId'];
+        unset($params['UniqId']);
+        $res = \db('产品_印件资料')->where('UniqId',$UniqId)->update($params);
+        if ($res !== false){
+            $this->success('更新成功');
+        }else{
+            $this->error('更新失败');
+        }
+    }
+    /**
+     * 新增产品印件资料
+     * @ApiMethod POST
+     * @params array data
+    */
+    public function addProductYjInfo(){
+        if (Request::instance()->isPost() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->post();
+        $UniqId = \db('产品_印件资料')->order('UniqId desc')->value('UniqId');
+        if ($UniqId < 2000000){
+            $UniqId = 2000000;
+        }else{
+            $UniqId = $UniqId + 1;
+        }
+        $params['UniqId'] = $UniqId;
+        $params['sys_rq'] = date('Y-m-d H:i:s');
+        $res = \db('产品_印件资料')->insert($params);
+        if ($res !== false){
+            $this->success('新增成功');
+        }else{
+            $this->error('新增失败');
+        }
+    }
+    /**
+     * 获取印件代码及名称
+     * @ApiMethod GET
+     *
+    */
+    public function getProductYjList(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->get();
+        $search = $params['search'];
+        if (!empty($search)){
+            $sql = "SELECT DISTINCT rtrim(a.`物料代码`) as `物料代码`, rtrim(a.`物料名称`) as `物料名称`,rtrim(b.客户编号) as 客户编号,rtrim(b.客户名称) as 客户名称
+                FROM `物料_存货编码` a
+                JOIN `产品_基本资料` b ON SUBSTRING(a.`物料代码`, 5, 2) = SUBSTRING(b.`客户编号`, 3, 2)
+                WHERE LEFT(a.`物料代码`, 4) IN ('1401', '1402') AND a.`物料名称` LIKE '%{$search}%'
+                ORDER BY a.`物料代码` ASC;";
+        }else{
+            $sql = "SELECT DISTINCT rtrim(a.`物料代码`) as `物料代码`, rtrim(a.`物料名称`) as `物料名称`,rtrim(b.客户编号) as 客户编号,rtrim(b.客户名称) as 客户名称
+                FROM `物料_存货编码` a
+                JOIN `产品_基本资料` b ON SUBSTRING(a.`物料代码`, 5, 2) = SUBSTRING(b.`客户编号`, 3, 2)
+                WHERE LEFT(a.`物料代码`, 4) IN ('1401', '1402') 
+                ORDER BY a.`物料代码` ASC;";
+        }
+        $data = Db::query($sql);
+        // 初始化一个关联数组,用于存储相同客户编号的数据
+        $groupedData = [];
+
+        foreach ($data as $row) {
+            $customerCode = substr($row['物料代码'],0,4).substr($row['客户编号'],2,2).'/'.$row['客户名称'];
+            $materialCodePrefix = substr($row['物料代码'], 0, 4);
+            if ($materialCodePrefix == '1401'){
+                $materialCodePrefix = $materialCodePrefix.'/糊盒类产品(含贴码)';
+            }else{
+                $materialCodePrefix = $materialCodePrefix.'/直接领用产品';
+            }
+            // 如果关联数组中不存在该物料代码前四位的键,则创建一个空数组
+            if (!isset($groupedData[$materialCodePrefix])) {
+                $groupedData[$materialCodePrefix] = [];
+            }
+            // 如果物料代码前四位数组中不存在该客户编号的键,则创建一个空数组
+            if (!isset($groupedData[$materialCodePrefix][$customerCode])) {
+                $groupedData[$materialCodePrefix][$customerCode] = [];
+            }
+            // 去除客户编号和客户名称
+            unset($row['客户编号']);
+            unset($row['客户名称']);
+            // 将当前行的数据添加到相应的物料代码前四位和客户编号的数组中
+            $groupedData[$materialCodePrefix][$customerCode][] = $row;
+        }
+        $this->success('请求成功',$groupedData);
+    }
+    /**
+     * 获取纸张代号及名称
+     * @ApiMethod GET
+     * @params string search
+    */
+    public function getProductZzList(){
+        if (Request::instance()->isGet() == false){
+            $this->error('非法请求');
+        }
+        $params = Request::instance()->get();
+        $search = $params['search'];
+        $list = \db('物料_存货结构')->where('LEFT(编号)')
+    }
 }