Ver Fonte

水电气分摊优化

unknown há 2 meses atrás
pai
commit
2bf161efda

+ 124 - 124
application/api/controller/CostAccounting.php

@@ -606,9 +606,9 @@ class CostAccounting extends Api
                 '部门名称' => $v['sist'],
                 '费用类型' => '分摊',
                 '科目名称' => $v['科目名称'],
-                '耗电量' => $v['耗电量'],
+                '耗电量' => $v['耗电量']??0,
                 '单位电价' => $v['单位电价'],
-                '耗气量' => $v['耗气量'],
+                '耗气量' => $v['耗气量']??0,
                 '单位气价' => $v['单位气价'],
                 'Sys_id' => $v['sys_id'],
                 'Sys_rq' => date('Y-m-d H:i:s', time())
@@ -899,127 +899,127 @@ class CostAccounting extends Api
 
 
     //计算成本
-    public function CostCalculation()
-    {
-        if ($this->request->isGet() === false) {
-            $this->error('请求错误');
-        }
-        $param = $this->request->param();
-        if (empty($param)) {
-            $this->error('参数错误');
-        }
-        //查询工单数据
-        $list = db('成本v23_月度成本明细')
-            ->field('车间名称,sys_ny as 年月,sczl_gdbh as 工单编号,sczl_yjno as 印件号,sczl_gxh as 工序号,工序名称,sczl_jtbh as jtbh,
-            占用机时,计件产量,sczl_ms as 墨色数,Uniqid,计件产量*sczl_ms as 色度数')
-            ->where('sys_ny', $param['month'])
-            ->whereNotNull('车间名称')
-            ->select();
-        //查询整月全车间色度数之和
-        $ChromaticityCount = db('成本v23_月度成本明细')
-            ->where('sys_ny', $param['month'])
-            ->whereNotNull('车间名称')
-            ->column('sum(计件产量*sczl_ms)');
-        //查询整月各车间色度数
-        $MachineChromaticityCount = db('成本v23_月度成本明细')
-            ->where('sys_ny', $param['month'])
-            ->whereNotNull('车间名称')
-            ->group('车间名称')
-            ->column('sum(计件产量*sczl_ms)');
-        //计算车间水电气
-        $res = $this->ApportionmentOne($param['month']);
-        halt($res);
-
-
-
-    }
-    //计算水电气分摊费用
-    protected function ApportionmentOne($month)
-    {
-        $list = db('成本_各月水电气')
-            ->where('Sys_ny', $month)
-            ->where('费用类型','like','%分摊%')
-            ->select();
-        foreach ($list as $k => $v) {
-            if ($v['科目名称'] == '待分摊总额') {
-                $money = $v['耗电量'] * $v['单位电价'];
-                $data = $this->MachineTime($v['部门名称'],$month);
-                foreach ($data['machine'] as $k1 => $v1) {
-                    $data['machine'][$k1]['分摊水电'] = round($money*($v1['占用机时']/$data['sist']),2) ;
-                }
-            }elseif (strpos($v['科目名称'],'废气处理') !== false) {
-                $electricityMoney = $v['耗电量'] * $v['单位电价'];
-                $gasMoney = $v['耗气量'] * $v['单位气价'];
-                $data = $this->MachineTime('03、卷凹机组',$month);
-                foreach ($data['machine'] as $k1 => $v1) {
-                    $data['machine'][$k1]['分摊水电'] = round($electricityMoney*($v1['占用机时']/$data['sist']),2) ;
-                    $data['machine'][$k1]['废气处理'] = round($gasMoney*($v1['占用机时']/$data['sist']),2) ;
-                }
-            }elseif (strpos($v['科目名称'],'锅炉') !== false && strpos($v['科目名称'],'热水锅炉') === false) {
-                $electricityMoney = $v['耗电量'] * $v['单位电价'];
-                $gasMoney = $v['耗气量'] * $v['单位气价'];
-                $data = $this->MachineTime('03、卷凹机组',$month);
-                foreach ($data['machine'] as $k1 => $v1) {
-                    $data['machine'][$k1]['分摊水电'] = round($electricityMoney*($v1['占用机时']/$data['sist']),2) ;
-                    $data['machine'][$k1]['锅炉'] = round($gasMoney*($v1['占用机时']/$data['sist']),2) ;
-                }
-            }elseif (strpos($v['科目名称'],'空压机A') !== false) {
-                $money = $v['耗电量'] * $v['单位电价'];
-                $sistList = ['凹丝印车间','胶印车间','印后车间','检验车间'];
-                $data = $this->MachineTime($sistList,$month);
-                foreach ($data['machine'] as $k1 => $v1) {
-                    $data['machine'][$k1]['空压机A'] = round($money*($v1['占用机时']/$data['sist']),2) ;
-                }
-            }elseif (strpos($v['科目名称'],'空压机B') !== false) {
-                $money = $v['耗电量'] * $v['单位电价'];
-                $sistList = ['凹丝印车间','胶印车间','印后车间','检验车间'];
-                $data = $this->MachineTime($sistList,$month);
-                foreach ($data['machine'] as $k1 => $v1) {
-                    $data['machine'][$k1]['空压机B'] = round($money*($v1['占用机时']/$data['sist']),2) ;
-                }
-            }elseif (strpos($v['科目名称'],'热水锅炉') !== false){
-                $money = $v['耗电量'] * $v['单位电价'];
-                $sistList = ['凹丝印车间','胶印车间','印后车间','检验车间'];
-                $data = $this->MachineTime($sistList,$month);
-                foreach ($data['machine'] as $k1 => $v1) {
-                    $data['machine'][$k1]['热水锅炉'] = round($money*($v1['占用机时']/$data['sist']),2) ;
-                }
-            }
-        }
-    }
-
-    //查询车间全部机台通电机时数据
-    protected function MachineTime($sist,$month)
-    {
-        $where['a.sys_ny'] = $month;
-        $where['b.sys_sbID'] = ['<>',''];
-        if (is_array($sist)) {
-            $where['a.车间名称'] = ['in',$sist];
-        }else{
-            if (strpos($sist,'机组') !== false) {
-                $where['b.设备编组'] = $sist;
-            }elseif (strpos($sist,'车间') !== false) {
-                $where['a.车间名称'] = $sist;
-            }
-        }
-        //查询各个工单工艺通电时间
-        $machine = db('成本v23_月度成本明细')
-            ->alias('a')
-            ->join('设备_基本资料 b', 'a.sczl_jtbh = b.设备编号','left')
-            ->field('a.sczl_gdbh as 工单编号,a.sczl_yjno as 印件号,a.sczl_gxh as 工序号,a.sczl_jtbh as 机台编号,a.占用机时,a.Uniqid')
-            ->where($where)
-            ->select();
-        //查询各个车间通电总时长
-        $sist = db('成本v23_月度成本明细')
-            ->alias('a')
-            ->join('设备_基本资料 b', 'a.sczl_jtbh = b.设备编号','left')
-            ->where($where)
-            ->value('sum(a.占用机时) as 占用机时');
-        $data = [
-            'machine' => $machine,
-            'sist' => $sist
-        ];
-        return $data;
-    }
+//    public function CostCalculation()
+//    {
+//        if ($this->request->isGet() === false) {
+//            $this->error('请求错误');
+//        }
+//        $param = $this->request->param();
+//        if (empty($param)) {
+//            $this->error('参数错误');
+//        }
+//        //查询工单数据
+//        $list = db('成本v23_月度成本明细')
+//            ->field('车间名称,sys_ny as 年月,sczl_gdbh as 工单编号,sczl_yjno as 印件号,sczl_gxh as 工序号,工序名称,sczl_jtbh as jtbh,
+//            占用机时,计件产量,sczl_ms as 墨色数,Uniqid,计件产量*sczl_ms as 色度数')
+//            ->where('sys_ny', $param['month'])
+//            ->whereNotNull('车间名称')
+//            ->select();
+//        //查询整月全车间色度数之和
+//        $ChromaticityCount = db('成本v23_月度成本明细')
+//            ->where('sys_ny', $param['month'])
+//            ->whereNotNull('车间名称')
+//            ->column('sum(计件产量*sczl_ms)');
+//        //查询整月各车间色度数
+//        $MachineChromaticityCount = db('成本v23_月度成本明细')
+//            ->where('sys_ny', $param['month'])
+//            ->whereNotNull('车间名称')
+//            ->group('车间名称')
+//            ->column('sum(计件产量*sczl_ms)');
+//        //计算车间水电气
+//        $res = $this->ApportionmentOne($param['month']);
+//        halt($res);
+//
+//
+//
+//    }
+//    //计算水电气分摊费用
+//    protected function ApportionmentOne($month)
+//    {
+//        $list = db('成本_各月水电气')
+//            ->where('Sys_ny', $month)
+//            ->where('费用类型','like','%分摊%')
+//            ->select();
+//        foreach ($list as $k => $v) {
+//            if ($v['科目名称'] == '待分摊总额') {
+//                $money = $v['耗电量'] * $v['单位电价'];
+//                $data = $this->MachineTime($v['部门名称'],$month);
+//                foreach ($data['machine'] as $k1 => $v1) {
+//                    $data['machine'][$k1]['分摊水电'] = round($money*($v1['占用机时']/$data['sist']),2) ;
+//                }
+//            }elseif (strpos($v['科目名称'],'废气处理') !== false) {
+//                $electricityMoney = $v['耗电量'] * $v['单位电价'];
+//                $gasMoney = $v['耗气量'] * $v['单位气价'];
+//                $data = $this->MachineTime('03、卷凹机组',$month);
+//                foreach ($data['machine'] as $k1 => $v1) {
+//                    $data['machine'][$k1]['分摊水电'] = round($electricityMoney*($v1['占用机时']/$data['sist']),2) ;
+//                    $data['machine'][$k1]['废气处理'] = round($gasMoney*($v1['占用机时']/$data['sist']),2) ;
+//                }
+//            }elseif (strpos($v['科目名称'],'锅炉') !== false && strpos($v['科目名称'],'热水锅炉') === false) {
+//                $electricityMoney = $v['耗电量'] * $v['单位电价'];
+//                $gasMoney = $v['耗气量'] * $v['单位气价'];
+//                $data = $this->MachineTime('03、卷凹机组',$month);
+//                foreach ($data['machine'] as $k1 => $v1) {
+//                    $data['machine'][$k1]['分摊水电'] = round($electricityMoney*($v1['占用机时']/$data['sist']),2) ;
+//                    $data['machine'][$k1]['锅炉'] = round($gasMoney*($v1['占用机时']/$data['sist']),2) ;
+//                }
+//            }elseif (strpos($v['科目名称'],'空压机A') !== false) {
+//                $money = $v['耗电量'] * $v['单位电价'];
+//                $sistList = ['凹丝印车间','胶印车间','印后车间','检验车间'];
+//                $data = $this->MachineTime($sistList,$month);
+//                foreach ($data['machine'] as $k1 => $v1) {
+//                    $data['machine'][$k1]['空压机A'] = round($money*($v1['占用机时']/$data['sist']),2) ;
+//                }
+//            }elseif (strpos($v['科目名称'],'空压机B') !== false) {
+//                $money = $v['耗电量'] * $v['单位电价'];
+//                $sistList = ['凹丝印车间','胶印车间','印后车间','检验车间'];
+//                $data = $this->MachineTime($sistList,$month);
+//                foreach ($data['machine'] as $k1 => $v1) {
+//                    $data['machine'][$k1]['空压机B'] = round($money*($v1['占用机时']/$data['sist']),2) ;
+//                }
+//            }elseif (strpos($v['科目名称'],'热水锅炉') !== false){
+//                $money = $v['耗电量'] * $v['单位电价'];
+//                $sistList = ['凹丝印车间','胶印车间','印后车间','检验车间'];
+//                $data = $this->MachineTime($sistList,$month);
+//                foreach ($data['machine'] as $k1 => $v1) {
+//                    $data['machine'][$k1]['热水锅炉'] = round($money*($v1['占用机时']/$data['sist']),2) ;
+//                }
+//            }
+//        }
+//    }
+//
+//    //查询车间全部机台通电机时数据
+//    protected function MachineTime($sist,$month)
+//    {
+//        $where['a.sys_ny'] = $month;
+//        $where['b.sys_sbID'] = ['<>',''];
+//        if (is_array($sist)) {
+//            $where['a.车间名称'] = ['in',$sist];
+//        }else{
+//            if (strpos($sist,'机组') !== false) {
+//                $where['b.设备编组'] = $sist;
+//            }elseif (strpos($sist,'车间') !== false) {
+//                $where['a.车间名称'] = $sist;
+//            }
+//        }
+//        //查询各个工单工艺通电时间
+//        $machine = db('成本v23_月度成本明细')
+//            ->alias('a')
+//            ->join('设备_基本资料 b', 'a.sczl_jtbh = b.设备编号','left')
+//            ->field('a.sczl_gdbh as 工单编号,a.sczl_yjno as 印件号,a.sczl_gxh as 工序号,a.sczl_jtbh as 机台编号,a.占用机时,a.Uniqid')
+//            ->where($where)
+//            ->select();
+//        //查询各个车间通电总时长
+//        $sist = db('成本v23_月度成本明细')
+//            ->alias('a')
+//            ->join('设备_基本资料 b', 'a.sczl_jtbh = b.设备编号','left')
+//            ->where($where)
+//            ->value('sum(a.占用机时) as 占用机时');
+//        $data = [
+//            'machine' => $machine,
+//            'sist' => $sist
+//        ];
+//        return $data;
+//    }
 
 }

+ 1 - 0
application/api/controller/CostCalculation.php

@@ -0,0 +1 @@
+<?php