|
|
@@ -1 +1,532 @@
|
|
|
<?php
|
|
|
+
|
|
|
+
|
|
|
+namespace app\api\controller;
|
|
|
+
|
|
|
+use app\common\controller\Api;
|
|
|
+use think\Request;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 各月制造费用维护
|
|
|
+ */
|
|
|
+class CostAccounting extends Api
|
|
|
+{
|
|
|
+ protected $noNeedLogin = ['*'];
|
|
|
+ protected $noNeedRight = ['*'];
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各月制造费用维护菜单
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function getTab()
|
|
|
+ {
|
|
|
+ // 1. 请求方法验证
|
|
|
+ if (!$this->request->isGet()) {
|
|
|
+ $this->error('仅支持GET请求');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. 使用静态变量避免重复创建数组
|
|
|
+ static $tabs, $sist;
|
|
|
+ if ($tabs === null) {
|
|
|
+ $tabs = [
|
|
|
+ '1、月度人工数据',
|
|
|
+ '2、水电气直接费用',
|
|
|
+ '3、水电气分摊费用',
|
|
|
+ '4、其他待摊费用',
|
|
|
+ '5、车间色度数'
|
|
|
+ ];
|
|
|
+
|
|
|
+ $sist = ['胶印车间', '凹丝印车间', '印后车间'];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. 数据库查询优化
|
|
|
+ $months = db('成本_各月水电气')
|
|
|
+ ->field('Sys_ny AS year_month')
|
|
|
+ ->group('Sys_ny')
|
|
|
+ ->order('Sys_ny DESC')
|
|
|
+ ->column('Sys_ny');
|
|
|
+
|
|
|
+ // 4. 使用模板构建策略
|
|
|
+ $data = [];
|
|
|
+ $template = [];
|
|
|
+
|
|
|
+ // 预构建模板
|
|
|
+ foreach ($tabs as $tab) {
|
|
|
+ $template[$tab] = ($tab === '2、水电气直接费用') ? $sist : $tab;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 仅需单次循环赋值
|
|
|
+ foreach ($months as $month) {
|
|
|
+ $data[$month] = $template;
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->success('成功', $data);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 月度车间人工维护
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\BindParamException
|
|
|
+ * @throws \think\exception\PDOException
|
|
|
+ */
|
|
|
+ public function ArtificialAdd()
|
|
|
+ {
|
|
|
+ if($this->request->isPost() === false){
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = Request::instance()->post();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $data = [];
|
|
|
+ foreach ($param as $key => $value) {
|
|
|
+ $data[$key] = [
|
|
|
+ 'Sys_ny' => $value['sys_ny'],
|
|
|
+ '车间' => $value['sist'],
|
|
|
+ '一线工资总额' => $value['number'],
|
|
|
+ '系数' => 1.2,
|
|
|
+ '应发工资' => $value['number'] * 1.2,
|
|
|
+ 'Sys_id' => $value['sys_id'],
|
|
|
+ 'Sys_rq' => date('Y-m-d H:i:s', time())
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ $sql = db('成本v23_各月人工')->fetchSql(true)->insertAll($data);
|
|
|
+ $res = db()->query($sql);
|
|
|
+ if ($res !== false) {
|
|
|
+ $this->success('新增成功');
|
|
|
+ }else{
|
|
|
+ $this->error('添加失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 月度人工维护列表
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function ArtificialAddList()
|
|
|
+ {
|
|
|
+ if($this->request->isGet() === false){
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param) || empty($param['Sys_ny'])) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $list = db('成本v23_各月人工')
|
|
|
+ ->where('Sys_ny', $param['Sys_ny'])
|
|
|
+ ->field('Sys_ny, 车间, 一线工资总额, Sys_id as 创建用户, Sys_rq as 创建时间,Mod_rq as 修订时间,UniqID')
|
|
|
+ ->select();
|
|
|
+ $this->success('成功', $list);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 月度人工维护修改
|
|
|
+ * @return void
|
|
|
+ * @throws \think\Exception
|
|
|
+ * @throws \think\db\exception\BindParamException
|
|
|
+ * @throws \think\exception\PDOException
|
|
|
+ */
|
|
|
+ public function ArtificialEdit()
|
|
|
+ {
|
|
|
+ if($this->request->isPost() === false){
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = Request::instance()->post();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $i = 0;
|
|
|
+ foreach ($param as $value) {
|
|
|
+ $sql = db('成本v23_各月人工')
|
|
|
+ ->where('UniqID', $value['UniqID'])
|
|
|
+ ->fetchSql(true)
|
|
|
+ ->update(['一线工资总额'=>$value['number']]);
|
|
|
+ $res = db()->query($sql);
|
|
|
+ if ($res === false) {
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($i === 0) {
|
|
|
+ $this->success('修改成功');
|
|
|
+ }else{
|
|
|
+ $this->error('修改失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 月度人工数据右侧上方列表
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function ArtificialList()
|
|
|
+ {
|
|
|
+ if (!$this->request->isGet()) {
|
|
|
+ $this->error('仅支持GET请求');
|
|
|
+ }
|
|
|
+
|
|
|
+ $month = $this->request->param('month');
|
|
|
+ if (empty($month)) {
|
|
|
+ $this->error('month参数缺失或为空');
|
|
|
+ }
|
|
|
+ $list = db('成本v23_各月人工')->alias('a')
|
|
|
+ ->join('设备_基本资料 b', 'a.车间 = b.使用部门')
|
|
|
+ ->join('绩效工资汇总 c', 'a.Sys_ny = c.sys_ny AND c.sczl_jtbh = b.设备编号')
|
|
|
+ ->join('成本_各月其他费用 d', 'a.Sys_ny = d.sys_ny','left')
|
|
|
+ ->field([
|
|
|
+ 'a.Sys_ny' => '年月',
|
|
|
+ 'a.车间' => '车间',
|
|
|
+ 'SUM(c.个人计件工资) + SUM(c.个人加班工资)' => '人工分摊因子总额',
|
|
|
+ 'a.一线工资总额' => '车间实发工资',
|
|
|
+ 'd.部门人员工资' => '部门人员工资实发',
|
|
|
+ 'd.管理人员工资' => '管理人员工资实发'
|
|
|
+ ])
|
|
|
+ ->where('a.Sys_ny', $month)
|
|
|
+ ->group('a.Sys_ny, a.车间')
|
|
|
+ ->select();
|
|
|
+ if (empty($list)) {
|
|
|
+ $this->success('未找到匹配数据', []);
|
|
|
+ }
|
|
|
+ $this->success('获取成功', $list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 月度人工数据下方工单详情
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function ArtificialDetailList()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $month = $param['month'];
|
|
|
+ $sist = $param['sist'];
|
|
|
+ $list = db('工单_质量考核汇总')
|
|
|
+ ->alias('a')
|
|
|
+ ->join('设备_基本资料 b', 'a.sczl_jtbh = b.设备编号')
|
|
|
+ ->join('工单_印件资料 c', 'a.Gy0_gdbh = c.Yj_Gdbh and a.印件及工序 = c.yj_Yjno')
|
|
|
+ ->join('工单_工艺资料 d', 'a.Gy0_gdbh = d.Gy0_gdbh and a.印件及工序 = d.Gy0_yjno and a.工序 = d.Gy0_gxh')
|
|
|
+ ->field([
|
|
|
+ 'a.sys_ny' => '年月',
|
|
|
+ 'a.Gy0_gdbh' => '工单编号',
|
|
|
+ 'a.印件及工序' => '印件号',
|
|
|
+ 'a.工序' => '工序号',
|
|
|
+ 'c.yj_yjmc' => '印件名称',
|
|
|
+ 'd.Gy0_gxmc' => '工序名称',
|
|
|
+ 'a.印件工序产量' => '班组车头产量',
|
|
|
+ 'd.工价系数' => '工序难度系数',
|
|
|
+ 'SUM(a.CjsJe)' => '计件工资',
|
|
|
+ 'rtrim(b.使用部门)' => '车间名称',
|
|
|
+ ])
|
|
|
+ ->where('a.Sys_ny', $month)
|
|
|
+ ->where('b.使用部门', $sist)
|
|
|
+ ->group('a.Sys_ny, a.Gy0_gdbh,a.印件及工序,a.印件及工序')
|
|
|
+ ->order('a.Gy0_gdbh')
|
|
|
+ ->select();
|
|
|
+ if (empty($list)) {
|
|
|
+ $this->success('未找到数据');
|
|
|
+ }else{
|
|
|
+ $this->success('成功', $list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 水电气直接费用右侧列表
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function shuidianqiList()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $month = $param['month'];
|
|
|
+ $sist = $param['sist'];
|
|
|
+ $list = db('成本_各月水电气')
|
|
|
+ ->field('rtrim(部门名称) as 部门名称,rtrim(设备编号) as 设备编号,rtrim(科目名称) as 设备名称,rtrim(耗电量) as 耗电量,
|
|
|
+ rtrim(单位电价) as 单位电价,rtrim(耗气量) as 耗气量,rtrim(单位气价) as 单位气价,rtrim(Sys_id) as 创建用户,Sys_rq as 创建时间,UniqID,耗电量*单位电价 as 直接费用合计')
|
|
|
+ ->where('Sys_ny', $month)
|
|
|
+ ->where('部门名称', $sist)
|
|
|
+ ->where('费用类型', '直接')
|
|
|
+ ->group('Sys_ny, Sys_rq, UniqID')
|
|
|
+ ->select();
|
|
|
+ if (empty($list)) {
|
|
|
+ $this->success('未找到数据');
|
|
|
+ }else{
|
|
|
+ $this->success('成功', $list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 水电气下方工单详情
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function shuidianqiDetailList()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $month = substr($param['month'], 0, 4) . '-' . substr($param['month'], 4, 2);
|
|
|
+ $machine = $param['machine'];
|
|
|
+ $list = db('设备_产量计酬')
|
|
|
+ ->alias('a')
|
|
|
+ ->join('工单_印件资料 b', 'a.sczl_gdbh = b.Yj_Gdbh and a.sczl_yjno = b.yj_Yjno')
|
|
|
+ ->field('a.sczl_gdbh as 工单编号,b.yj_yjmc as 印件名称,a.sczl_yjno as 印件号,a.sczl_gxh as 工序号,
|
|
|
+ sum(a.sczl_cl)*a.sczl_ls as 班组车头产量,sum(a.sczl_设备运行工时) as 占用机时')
|
|
|
+ ->where('a.sczl_rq','like', '%'.$month.'%')
|
|
|
+ ->where('a.sczl_jtbh', $machine)
|
|
|
+ ->group('a.sczl_gdbh, a.sczl_yjno, a.sczl_gxh')
|
|
|
+ ->select();
|
|
|
+ if (empty($list)) {
|
|
|
+ $this->success('未找到数据');
|
|
|
+ }
|
|
|
+ foreach ($list as $k => $v) {
|
|
|
+ $list[$k]['计件产量'] = $v['班组车头产量'];
|
|
|
+ $list[$k]['水电气分摊因子'] = $v['占用机时'];
|
|
|
+ $list[$k]['年月'] = $param['month'];
|
|
|
+ }
|
|
|
+ $this->success('成功', $list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 水电气分摊费用
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function shuidianqifentanList()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $month = $param['month'];
|
|
|
+ $list = db('成本_各月水电气')
|
|
|
+ ->field('rtrim(部门名称) as 部门名称,rtrim(设备编号) as 设备编号,rtrim(科目名称) as 设备名称,rtrim(耗电量) as 耗电量,
|
|
|
+ rtrim(单位电价) as 单位电价,rtrim(耗气量) as 耗气量,rtrim(单位气价) as 单位气价,rtrim(Sys_id) as 创建用户,Sys_rq as 创建时间,UniqID,耗电量*单位电价 as 直接费用合计')
|
|
|
+ ->where('Sys_ny', $month)
|
|
|
+ ->where('费用类型', '分摊')
|
|
|
+ ->group('Sys_ny, Sys_rq, UniqID')
|
|
|
+ ->select();
|
|
|
+ if (empty($list)) {
|
|
|
+ $this->success('未找到数据');
|
|
|
+ }else{
|
|
|
+ $this->success('成功', $list);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各月工单人工明细
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\BindParamException
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ * @throws \think\exception\PDOException
|
|
|
+ */
|
|
|
+ public function ChromaticityAdd()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $list = db('绩效工资汇总')
|
|
|
+ ->alias('a')
|
|
|
+ ->join('工单_工艺资料 b','a.sczl_gdbh = b.Gy0_gdbh and a.sczl_yjno = b.Gy0_yjno and a.sczl_gxh = b.Gy0_gxh')
|
|
|
+ ->join('设备_基本资料 c','a.sczl_jtbh = c.设备编号','LEFT')
|
|
|
+ ->join('工单_印件资料 d','a.sczl_gdbh = d.Yj_Gdbh and a.sczl_yjno = d.yj_Yjno')
|
|
|
+ ->field('a.sczl_gdbh as 工单编号,a.sczl_yjno as 印件号,a.sczl_gxh as 工序号,sum(a.班组车头产量) as 班组车头产量,b.Gy0_gxmc as 工序名称,
|
|
|
+ a.sczl_ms as 墨色数,c.使用部门,b.印刷方式,b.版距,b.工价系数,a.sczl_jtbh,d.yj_yjmc as 印件名称,sum(a.车头产量占用机时) as 占用机时,a.sys_rq as 年月,
|
|
|
+ a.工序难度系数,sum(a.班组换算产量) as 班组换算产量,a.千件工价')
|
|
|
+ ->where('a.sys_ny', $param['month'])
|
|
|
+ ->group('a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_jtbh')
|
|
|
+ ->select();
|
|
|
+ $data = [];
|
|
|
+ foreach ($list as $k => $v) {
|
|
|
+ if ($v['版距'] === '0.0'){
|
|
|
+ $list[$k]['版距'] = 1000;
|
|
|
+ }
|
|
|
+ if ($v['墨色数'] === '0.00'){
|
|
|
+ $list[$k]['墨色数'] = 1;
|
|
|
+ }
|
|
|
+ if (strpos($v['工序名称'],'切废')){
|
|
|
+ $list[$k]['墨色数'] = 0.2;
|
|
|
+ }
|
|
|
+ $chanliang = $v['班组车头产量']*$v['工序难度系数'] + $v['班组换算产量'];
|
|
|
+ $data[] = [
|
|
|
+ '车间名称' => $v['使用部门'],
|
|
|
+ 'sys_ny' => $param['month'],
|
|
|
+ 'sczl_gdbh' => $v['工单编号'],
|
|
|
+ '印件名称' => $v['印件名称'],
|
|
|
+ 'sczl_yjno' => $v['印件号'],
|
|
|
+ 'sczl_gxh' => $v['工序号'],
|
|
|
+ '工序名称' => $v['工序名称'],
|
|
|
+ 'sczl_jtbh' => $v['sczl_jtbh'],
|
|
|
+ '卷张换算系数' => $list[$k]['版距']/1000,
|
|
|
+ '占用机时' => $v['占用机时'],
|
|
|
+ '班组车头产量' => $v['班组车头产量'],
|
|
|
+ 'sczl_ms' => $list[$k]['墨色数'],
|
|
|
+ '工序难度系数' => $v['工序难度系数'],
|
|
|
+ '班组换算产量' => $v['班组换算产量'],
|
|
|
+ '千件工价' => $v['千件工价'],
|
|
|
+ '计件产量' => $chanliang,
|
|
|
+ '水电分摊因子' => $v['占用机时'],
|
|
|
+ '材料分摊因子' => $chanliang,
|
|
|
+ '人工分摊因子' => ($chanliang/1000)*$v['千件工价'],
|
|
|
+ 'Sys_id' => $param['sys_id'],
|
|
|
+ 'Sys_rq' => date('Y-m-d H:i:s', time())
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ $sql = db('成本v23_月度成本明细')->fetchSql(true)->insertAll($data);
|
|
|
+ $res = db()->query($sql);
|
|
|
+ if ($res !== false) {
|
|
|
+ $this->success('成功');
|
|
|
+ }else{
|
|
|
+ $this->error('失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各月工单色度数
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\BindParamException
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ * @throws \think\exception\PDOException
|
|
|
+ */
|
|
|
+ public function ChromaticityDetailAdd()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ $month = substr($param['month'], 0, 4) . '-' . substr($param['month'], 4, 2);
|
|
|
+ $list = db('设备_产量计酬')
|
|
|
+ ->alias('a')
|
|
|
+ ->join('设备_基本资料 b','a.sczl_jtbh = b.设备编号')
|
|
|
+ ->join('工单_工艺资料 c','a.sczl_gdbh = c.Gy0_gdbh and a.sczl_yjno = c.Gy0_yjno and a.sczl_gxh = c.Gy0_gxh')
|
|
|
+ ->field('a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_jtbh,a.sczl_gxmc,sum(a.sczl_cl) as 产量,a.sczl_jtbh,a.sczl_ms,b.使用部门,
|
|
|
+ sum(a.sczl_设备运行工时) as 通电工时,a.sczl_dedh,c.Gy0_gxmc')
|
|
|
+ ->where('a.sczl_rq','like', $month.'%')
|
|
|
+ ->group('a.sczl_gdbh,a.sczl_yjno,a.sczl_gxh,a.sczl_jtbh')
|
|
|
+ ->select();
|
|
|
+ if (empty($list)) {
|
|
|
+ $this->error('没找到生产数据');
|
|
|
+ }
|
|
|
+ $data = [];
|
|
|
+ foreach ($list as $k => $v) {
|
|
|
+ if ($v['sczl_ms'] === '0.00'){
|
|
|
+ $list[$k]['sczl_ms'] = 1;
|
|
|
+ }
|
|
|
+ if (strpos($v['Gy0_gxmc'],'切废') !== false){
|
|
|
+ $list[$k]['sczl_ms'] = 0.2;
|
|
|
+ }
|
|
|
+ $data[] = [
|
|
|
+ '年月' => $param['month'],
|
|
|
+ 'sczl_gdbh' => $v['sczl_gdbh'],
|
|
|
+ 'sczl_yjno' => $v['sczl_yjno'],
|
|
|
+ 'sczl_gxh' => $v['sczl_gxh'],
|
|
|
+ 'sczl_jtbh' => $v['sczl_jtbh'],
|
|
|
+ 'sczl_gxmc' => $v['sczl_gxmc'],
|
|
|
+ 'sczl_ms' => $v['sczl_ms'],
|
|
|
+ 'sczl_dedh' => $v['sczl_dedh'],
|
|
|
+ '通电时间' => $v['通电工时'],
|
|
|
+ 'sczl_cl' => $v['产量'],
|
|
|
+ '部门' => $v['使用部门'],
|
|
|
+ 'Sys_ID' => $param['sys_id'],
|
|
|
+ 'Sys_Rq' => date('Y-m-d H:i:s', time())
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ if (db('成本_各月色度数')->where('年月',$param['month'])->count() !== 0) {
|
|
|
+ db('成本_各月色度数')->where('年月',$param['month'])->delete();
|
|
|
+ }
|
|
|
+ $sql = db('成本_各月色度数')->fetchSql(true)->insertAll($data);
|
|
|
+ $res = db()->query($sql);
|
|
|
+ if ($res !== false) {
|
|
|
+ $this->success('成功');
|
|
|
+ }else{
|
|
|
+ $this->error('失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 各月车间色度数列表
|
|
|
+ * @return void
|
|
|
+ * @throws \think\db\exception\DataNotFoundException
|
|
|
+ * @throws \think\db\exception\ModelNotFoundException
|
|
|
+ * @throws \think\exception\DbException
|
|
|
+ */
|
|
|
+ public function ChromaticityDetailList()
|
|
|
+ {
|
|
|
+ if ($this->request->isGet() === false) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+ $param = $this->request->param();
|
|
|
+ if (empty($param)) {
|
|
|
+ $this->error('参数错误');
|
|
|
+ }
|
|
|
+ // 执行统计查询
|
|
|
+ $stats = db('成本_各月色度数')
|
|
|
+ ->field([
|
|
|
+ 'rtrim(部门) AS workshop',
|
|
|
+ 'SUM(sczl_cl * IF(sczl_ms=0, 1, sczl_ms)) AS total'
|
|
|
+ ])
|
|
|
+ ->where('部门', '<>', '') // 过滤空车间数据
|
|
|
+ ->where('sczl_cl', '>', 0) // 过滤无效产量
|
|
|
+ ->where('年月', $param['month'])
|
|
|
+ ->group('部门')
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ // 构造中文返回结果
|
|
|
+ $result = [];
|
|
|
+ foreach ($stats as $item) {
|
|
|
+ $result[] = [
|
|
|
+ '车间' => $item['workshop'],
|
|
|
+ '色度数' => number_format($item['total'], 2)
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ $this->success('成功', $result);
|
|
|
+ }
|
|
|
+}
|