|
|
@@ -46,33 +46,19 @@ class OrderSuperLoss extends Api
|
|
|
ON (CASE
|
|
|
WHEN LEFT(a.`jjcp_cpdh`, 1) REGEXP '^[A-Za-z]' THEN LEFT(a.`jjcp_cpdh`, 5)
|
|
|
ELSE LEFT(a.`jjcp_cpdh`, 4)
|
|
|
- END) = RTRIM(b.`编号`) -- Conditional join based on the first character
|
|
|
+ END) = RTRIM(b.`编号`)
|
|
|
|
|
|
WHERE
|
|
|
- a.jjcp_sj >= DATE_SUB(CURDATE(), INTERVAL 12 MONTH) -- Direct date comparison
|
|
|
- AND (a.jjcp_smb IN ('末 板', '末板')) -- Cleaner syntax for conditions
|
|
|
+ a.jjcp_sj >= DATE_SUB(CURDATE(), INTERVAL 12 MONTH)
|
|
|
+ AND (a.jjcp_smb IN ('末 板', '末板'))
|
|
|
AND a.`成品编码` != ''
|
|
|
AND a.jjcp_sj >= '2025-01-01 00:00:00'
|
|
|
GROUP BY
|
|
|
- DATE_FORMAT(a.jjcp_sj, '%Y-%m'), -- Group by formatted date
|
|
|
- RTRIM(b.`编号`)
|
|
|
+ DATE_FORMAT(a.jjcp_sj, '%Y-%m'),
|
|
|
ORDER BY
|
|
|
date DESC,
|
|
|
编号 ASC;";
|
|
|
$data = Db::query($sql);
|
|
|
-// $data = \db('工单_质量考核汇总')
|
|
|
-// ->field([
|
|
|
-// 'sys_ny AS date',
|
|
|
-// 'CASE
|
|
|
-// WHEN 产品代号 REGEXP \'[A-Za-z]\' THEN LEFT(产品代号, 5)
|
|
|
-// ELSE LEFT(产品代号, 4)
|
|
|
-// END AS 编号',
|
|
|
-// '客户名称',
|
|
|
-// 'COUNT(DISTINCT Gy0_gdbh) AS count'
|
|
|
-// ])
|
|
|
-// ->group('编号, date')
|
|
|
-// ->order('date desc,编号')
|
|
|
-// ->select();
|
|
|
// 创建一个新数组来存储整理后的数据
|
|
|
$organizedData = [];
|
|
|
// 遍历原始数据
|
|
|
@@ -113,274 +99,7 @@ class OrderSuperLoss extends Api
|
|
|
}
|
|
|
$this->success('请求成功',$finalData);
|
|
|
}
|
|
|
- /**
|
|
|
- * 获取超节损工单列表
|
|
|
- * @ApiMethod GET
|
|
|
- * @params string date
|
|
|
- * @params string code
|
|
|
- * 报废定额=(基础损耗+损耗率*计划产量)*损耗系数*计损色数(特定工序会有,如果无就不乘)
|
|
|
- * 允损比例=报废定额/计划产量
|
|
|
- * 目标合格率 = 100%-超节损工单中显示工序的允损比例之和
|
|
|
- * 节损奖 小盒0.02 大盒0.09
|
|
|
- *
|
|
|
- */
|
|
|
-// public function getList(){
|
|
|
-// if (Request::instance()->isGet() == false) {
|
|
|
-// $this->error('非法请求');
|
|
|
-// }
|
|
|
-// $params = Request::instance()->param();
|
|
|
-// $where = [];
|
|
|
-// if (!empty($params['code'])) {
|
|
|
-// if (!empty($params['search'])) {
|
|
|
-// $this->error('参数错误');
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if (!empty($params['date'])) {
|
|
|
-// if (!empty($params['search'])) {
|
|
|
-// $this->error('参数错误');
|
|
|
-// }
|
|
|
-// $date_year = substr($params['date'],0,4);
|
|
|
-// $date_mon = substr($params['date'],4);
|
|
|
-// $date = $date_year.'-'.$date_mon;
|
|
|
-// $where['a.jjcp_sj' ] = array('like',$date.'%');
|
|
|
-// }
|
|
|
-// if (!empty($params['search'])) {
|
|
|
-// if (!empty($params['date']) || !empty($params['code'])) {
|
|
|
-// $this->error('参数错误');
|
|
|
-// }
|
|
|
-// $where['a.jjcp_gdbh|a.成品名称|a.jjcp_cpmc'] = array('like','%'.$params['search'].'%');
|
|
|
-// }
|
|
|
-// $where['a.jjcp_smb' ] = array('IN', array('末 板', '末板'));
|
|
|
-// $limit = $params['limit'];
|
|
|
-// if (empty($limit)){
|
|
|
-// $limit = 15;
|
|
|
-// }
|
|
|
-// $pages = $params['page'];
|
|
|
-// if (empty($pages)){
|
|
|
-// $pages = 1;
|
|
|
-// }
|
|
|
-// $is_have_cache = false;
|
|
|
-// $num = config('product_code_digit');
|
|
|
-// if ($is_have_cache === false){
|
|
|
-// if (!empty($params['code'])){
|
|
|
-// $sql= db('物料_收发记录')
|
|
|
-// ->alias('d')
|
|
|
-// ->where('d.仓库编号', 'Y101')
|
|
|
-// ->whereOr('d.仓库编号', '101')
|
|
|
-// ->group('d.st_gdbh, d.cpdh')
|
|
|
-// ->field('d.st_gdbh, d.cpdh,d.st_rq, SUM(d.st_sl) as 实际投料,d.仓库编号')
|
|
|
-// ->buildSql();
|
|
|
-// $data = db('成品入仓')->alias('a')
|
|
|
-// ->join('工单_基本资料 b', 'a.jjcp_gdbh = b.Gd_gdbh', 'left')
|
|
|
-// ->join('工单_印件资料 c', 'a.jjcp_gdbh = c.Yj_Gdbh AND a.jjcp_cpdh = c.yj_Yjdh', 'left')
|
|
|
-// ->join([$sql => 'd'], 'a.jjcp_gdbh = d.st_gdbh AND a.jjcp_cpdh = d.cpdh', 'left')
|
|
|
-// ->where($where)
|
|
|
-// ->where(function($query) {
|
|
|
-// $query->where('d.仓库编号', '101')
|
|
|
-// ->whereOr('d.仓库编号', 'Y101');})
|
|
|
-// ->whereRaw('LEFT(a.成品编码, CASE WHEN a.成品编码 REGEXP "[a-zA-Z]" THEN 5 ELSE 4 END) = ?', [$params['code']])
|
|
|
-// ->field('a.jjcp_gdbh as Gd_gdbh, a.jjcp_yjno, rtrim(a.jjcp_cpdh) as 成品编码, rtrim(a.jjcp_cpmc) as 成品名称,
|
|
|
-// a.jjcp_sj, a.jjcp_smb, b.计量单位, b.Gd_khdh, d.实际投料, c.yj_Yjno, c.yj_ls, c.yj_ks, c.质量考核')
|
|
|
-// ->group('a.jjcp_gdbh, a.jjcp_yjno')
|
|
|
-// ->order('b.Gd_khdh, a.成品编码 asc, a.jjcp_yjno,d.st_rq desc')
|
|
|
-// ->page($pages)
|
|
|
-// ->limit($limit)
|
|
|
-// ->select();
|
|
|
-// $total = db('成品入仓')->alias('a')
|
|
|
-// ->join('工单_基本资料 b', 'a.jjcp_gdbh = b.Gd_gdbh','left')
|
|
|
-// ->join('工单_印件资料 c', 'a.jjcp_gdbh = c.Yj_Gdbh','left')
|
|
|
-// ->where($where)
|
|
|
-// ->whereRaw('LEFT(a.成品编码, CASE WHEN a.成品编码 REGEXP "[a-zA-Z]" THEN 5 ELSE 4 END) = ?', [$params['code']])
|
|
|
-// ->count();
|
|
|
-// }else{
|
|
|
-// $sql= db('物料_收发记录')
|
|
|
-// ->alias('d')
|
|
|
-// ->where('d.仓库编号', 'Y101')
|
|
|
-// ->whereOr('d.仓库编号', '101')
|
|
|
-// ->group('d.st_gdbh, d.cpdh')
|
|
|
-// ->field('d.st_gdbh, d.cpdh,d.st_rq, SUM(d.st_sl) as 实际投料,d.仓库编号')
|
|
|
-// ->buildSql();
|
|
|
-// $data = db('成品入仓')->alias('a')
|
|
|
-// ->join('工单_基本资料 b', 'a.jjcp_gdbh = b.Gd_gdbh', 'left')
|
|
|
-// ->join('工单_印件资料 c', 'a.jjcp_gdbh = c.Yj_Gdbh AND a.jjcp_cpdh = c.yj_Yjdh', 'left')
|
|
|
-// ->join([$sql => 'd'], 'a.jjcp_gdbh = d.st_gdbh AND a.jjcp_cpdh = d.cpdh', 'left')
|
|
|
-// ->where($where)
|
|
|
-// ->field('a.jjcp_gdbh as Gd_gdbh, a.jjcp_yjno, rtrim(a.jjcp_cpdh) as 成品编码, rtrim(a.jjcp_cpmc) as 成品名称,
|
|
|
-// a.jjcp_sj, a.jjcp_smb, b.计量单位, b.Gd_khdh, d.实际投料, c.yj_Yjno, c.yj_ls, c.yj_ks, c.质量考核')
|
|
|
-// ->group('a.jjcp_gdbh, a.jjcp_yjno')
|
|
|
-// ->order('b.Gd_khdh, a.成品编码 asc, a.jjcp_yjno, d.st_rq desc')
|
|
|
-// ->page($pages)
|
|
|
-// ->limit($limit)
|
|
|
-// ->select();
|
|
|
-// $total = db('成品入仓')->alias('a')
|
|
|
-// ->join('工单_基本资料 b', 'a.jjcp_gdbh = b.Gd_gdbh','left')
|
|
|
-// ->join('工单_印件资料 c', 'a.jjcp_gdbh = c.Yj_Gdbh','left')
|
|
|
-// ->where($where)
|
|
|
-// ->count();
|
|
|
-// }
|
|
|
-// foreach ($data as $key => $value){
|
|
|
-// //查出成品数量及日期
|
|
|
-// $cp_sql = "SELECT SUM(jjcp_sl) as cp_sl,MAX(jjcp_sj) as jjcp_sj FROM `成品入仓` WHERE jjcp_gdbh = '{$value['Gd_gdbh']}' AND jjcp_yjno = '{$value['jjcp_yjno']}' GROUP BY jjcp_gdbh,jjcp_yjno";
|
|
|
-// $cp_data = Db::query($cp_sql);
|
|
|
-// //入仓总数
|
|
|
-// $data[$key]['warehousing_num'] = $cp_data[0]['cp_sl'];
|
|
|
-// $data[$key]['warehousing_date'] = substr($cp_data[0]['jjcp_sj'],0,10);
|
|
|
-// //查出进入超节损的工序,有上报产量的工序就进入超节损
|
|
|
-// $gxh_sql = "SELECT sczl_gxh FROM
|
|
|
-// (SELECT sczl_gxh FROM 设备_产量计酬 WHERE sczl_gdbh = '{$value['Gd_gdbh']}' AND sczl_yjno = '{$value['jjcp_yjno']}'
|
|
|
-// UNION SELECT sczl_gxh FROM db_sczl WHERE sczl_gdbh = '{$value['Gd_gdbh']}' AND sczl_yjno = '{$value['jjcp_yjno']}') AS combined_result";
|
|
|
-// $gxh_arr = Db::query($gxh_sql);
|
|
|
-// $gxh_values = array_column($gxh_arr, 'sczl_gxh');
|
|
|
-// $gy_data =db('工单_工艺资料')
|
|
|
-// ->alias('a')
|
|
|
-// ->field([
|
|
|
-// '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', 'a.Gy0_计划接货数',
|
|
|
-// 'a.Gy0_计划损耗', 'a.超节损承担比例','SUM(b.sczl_zcfp) as total_fp','SUM(b.sczl_cl) as total_cl','SUM(c.sczl_cl) as cl','SUM(c.sczl_fp) as fp',
|
|
|
-// ])
|
|
|
-// ->join('设备_产量计酬 b', 'a.Gy0_gdbh = b.sczl_gdbh AND a.Gy0_yjno = b.sczl_yjno AND a.Gy0_gxh = b.sczl_gxh','left')
|
|
|
-// ->join('db_sczl c', 'a.Gy0_gdbh = c.sczl_gdbh AND a.Gy0_yjno = c.sczl_yjno AND a.Gy0_gxh = c.sczl_gxh','left')
|
|
|
-// ->where([
|
|
|
-// 'a.Gy0_gdbh' => $value['Gd_gdbh'],
|
|
|
-// 'a.Gy0_yjno' =>$value['jjcp_yjno'],
|
|
|
-// 'a.Gy0_gxh' => ['in', $gxh_values]
|
|
|
-// ])
|
|
|
-// ->group('a.Gy0_yjno,a.Gy0_gxh')
|
|
|
-// ->select();
|
|
|
-// $arr = [];
|
|
|
-// $plan_loss = [];//工单计划损耗
|
|
|
-// $machine_plan_loss = 0;//机检计划损耗
|
|
|
-// foreach ($gy_data as $k=>$v){
|
|
|
-// if (strpos($v['Gy0_gxmc'],'检') === false){
|
|
|
-// if ($v['Gy0_计划接货数'] > 0){
|
|
|
-// $rate = round($v['Gy0_计划损耗'] / $v['Gy0_计划接货数'],5);
|
|
|
-// }else{
|
|
|
-// $rate = 0;
|
|
|
-// }
|
|
|
-// $arr[$k] = floor($rate * 10000) /10000;
|
|
|
-// $plan_loss[$k] = $v['Gy0_计划损耗']*$v['Gy0_ls']*$value['yj_ks'];
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if ((int)$value['yj_ls'] > 0){
|
|
|
-// $value['实际投料'] = number_format(((int)$value['实际投料']/10000)*$value['yj_ls']*$value['yj_ks'],4);
|
|
|
-// }else{
|
|
|
-// $value['实际投料'] = number_format($value['实际投料']/10000,4);
|
|
|
-// }
|
|
|
-// $data[$key]['实际投料'] = $value['实际投料'];
|
|
|
-// if ($value['实际投料'] >0 ){
|
|
|
-// $target_rate = (1-array_sum($arr))*100;
|
|
|
-// $data[$key]['target_rate'] =$target_rate.'%'; //目标合格率
|
|
|
-// $real_rate = $cp_data[0]['cp_sl'] / ((float)str_replace(',', '', $value['实际投料']) * 10000) *100;
|
|
|
-// $data[$key]['real_rate'] = number_format($real_rate,2) . '%';//实际合格率
|
|
|
-// }else{
|
|
|
-// $data[$key]['target_rate'] = ''; //目标合格率
|
|
|
-// $data[$key]['real_rate'] = '';//实际合格率
|
|
|
-// }
|
|
|
-//
|
|
|
-// //制程废品
|
|
|
-// $zzfp_data =db('设备_产量计酬')->where('sczl_gdbh',$value['Gd_gdbh'])->where('sczl_yjno',$value['jjcp_yjno'])->value('SUM(sczl_zcfp) as sczl_zcfp');
|
|
|
-// $data[$key]['zcfp'] = $zzfp_data * $value['yj_ls'];//制程废品
|
|
|
-// //废品合计
|
|
|
-// $wasteTotal = db('db_qczl')->where('qczl_gdbh',$value['Gd_gdbh'])->where('qczl_yjno',$value['jjcp_yjno'])->sum('qczl_fp');
|
|
|
-// if (empty($wasteTotal)){
|
|
|
-// $wasteTotal = 0;
|
|
|
-// }
|
|
|
-// $data[$key]['废品合计'] = $wasteTotal + $data[$key]['zcfp'];//废品合计
|
|
|
-// $data[$key]['工单无形损'] = (int)((float)str_replace(',', '', $value['实际投料']) *10000) - $cp_data[0]['cp_sl'] - $data[$key]['废品合计'];//工单无形损
|
|
|
-// $out_sql = "SELECT fp_sl1,fp_sl2,fp_sl3,fp_sl4,fp_sl5,fp_sl6,fp_sl7,fp_sl8,fp_sl9,fp_sl10,fp_sl11,fp_sl12,fp_sl13,
|
|
|
-// fp_lb1,fp_lb2,fp_lb3,fp_lb4,fp_lb5,fp_lb6,fp_lb7,fp_lb8,fp_lb9,fp_lb10,fp_lb11,fp_lb12,fp_lb13,
|
|
|
-// fp_bh1,fp_bh2,fp_bh3,fp_bh4,fp_bh5,fp_bh6,fp_bh7,fp_bh8,fp_bh9,fp_bh10,fp_bh11,fp_bh12,fp_bh13,
|
|
|
-// fp_gxmc1,fp_gxmc2,fp_gxmc3,fp_gxmc4,fp_gxmc5,fp_gxmc6,fp_gxmc7,fp_gxmc8,fp_gxmc9,fp_gxmc10,fp_gxmc11,fp_gxmc12,fp_gxmc13
|
|
|
-// FROM db_qczl WHERE qczl_gdbh = '{$value['Gd_gdbh']}' AND qczl_yjno = '{$value['jjcp_yjno']}'";
|
|
|
-// $waste_out = Db::query($out_sql);
|
|
|
-// $list = []; //外发废数组
|
|
|
-// $quality = [];//质检废数组
|
|
|
-// $material = [];//材料废数组
|
|
|
-// $change = [];//零头处理数组
|
|
|
-// $machine = [];//机检废品数组
|
|
|
-// $j = 0;
|
|
|
-// $m = 0;
|
|
|
-// $n = 0;
|
|
|
-// $l = 0;
|
|
|
-// $o = 0;
|
|
|
-// foreach ($waste_out as $entry) {
|
|
|
-// for ($i = 1; $i <= 13; $i++) {
|
|
|
-// $labelKey = "fp_lb" . $i;
|
|
|
-// $bhKey = "fp_bh" . $i;
|
|
|
-// $gxmcKey = "fp_gxmc" . $i;
|
|
|
-// $slKey = "fp_sl" . $i;
|
|
|
-// if (!empty($entry[$labelKey])) {
|
|
|
-// //外发加工废
|
|
|
-// if (substr($entry[$labelKey],0,3) == 'M04'){
|
|
|
-// $list[$j]= $entry[$slKey];
|
|
|
-// $j++;
|
|
|
-// }
|
|
|
-// //材料废
|
|
|
-// if (substr($entry[$labelKey],0,1) == 'L' ){
|
|
|
-// $material[$n]= $entry[$slKey];
|
|
|
-// $n++;
|
|
|
-// }
|
|
|
-// //零头处理
|
|
|
-// if (substr($entry[$labelKey],0,3) == 'M01' ){
|
|
|
-// $change[$l]= $entry[$slKey];
|
|
|
-// $l++;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //机检废品
|
|
|
-// if (substr($entry[$labelKey],0,1) == 'K' ){
|
|
|
-// $machine[$o]= $entry[$slKey];
|
|
|
-// $o++;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// $quality[$m]= $entry[$slKey];
|
|
|
-// $m++;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// $machine_waste = array_sum($machine);//机检废品
|
|
|
-// if ($data[$key]['Gd_gdbh'] == '2401746'){
|
|
|
-// halt($machine_waste);
|
|
|
-// }
|
|
|
-// $data[$key]['工单计划损耗'] = array_sum($plan_loss);//工单计划损耗
|
|
|
-// /**
|
|
|
-// * 奖惩系数及金额
|
|
|
-// * 奖惩金额 = 工单节损数 * 0.02(0.09)
|
|
|
-// * 工单节损数 = 工单计划损耗 - 废品总数 - 机检节损数
|
|
|
-// * 机检节损数 = 机检计划损耗 - 机检质检废品
|
|
|
-// */
|
|
|
-// $machine_loss = $machine_plan_loss - $machine_waste;
|
|
|
-// $order_loss = $data[$key]['工单计划损耗'] - ($data[$key]['废品合计'] - array_sum($list) - array_sum($material)+$data[$key]['工单无形损'] - $machine_waste);
|
|
|
-// $guige = \db('物料_存货编码')
|
|
|
-// ->where('物料代码',$data[$key]['成品编码'])
|
|
|
-// ->value('rtrim(规格)');
|
|
|
-// //工序超节损金额
|
|
|
-// if ($guige === '小盒'){
|
|
|
-// $moneyRate = 0.02;
|
|
|
-// }else{
|
|
|
-// $moneyRate = 0.09;
|
|
|
-// }
|
|
|
-// $reward = $order_loss * $moneyRate;
|
|
|
-// $data[$key]['reward_rate'] = '1';
|
|
|
-// if ($data[$key]['质量考核'] === 0){
|
|
|
-// $data[$key]['reward_money'] = number_format($reward,2);
|
|
|
-// $data[$key]['考核'] = '是';
|
|
|
-// }else{
|
|
|
-// $data[$key]['reward_money'] = '';
|
|
|
-// $data[$key]['考核'] = '否';
|
|
|
-// }
|
|
|
-// $data[$key]['材料废'] = array_sum($material); //材料废
|
|
|
-// $data[$key]['零头处理'] = array_sum($change); //零头处理
|
|
|
-// $data[$key]['外发废'] = array_sum($list);//外发废
|
|
|
-// $data[$key]['分摊废'] = '';//分摊废
|
|
|
-// $data[$key]['工单质检废'] = array_sum($quality); //质检废
|
|
|
-// $data[$key]['机检废'] = $machine_waste;
|
|
|
-// }
|
|
|
-// $res = [
|
|
|
-// 'data'=>$data,
|
|
|
-// 'total' => $total
|
|
|
-// ];
|
|
|
-//
|
|
|
-// }
|
|
|
-// $this->success('请求成功',$res);
|
|
|
-// }
|
|
|
+
|
|
|
/**
|
|
|
* 获取工单超节损工艺
|
|
|
* @ApiMethod GET
|
|
|
@@ -628,12 +347,8 @@ class OrderSuperLoss extends Api
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //报废合计
|
|
|
-// if ($gy_data[$k]['intangible_loss'] < 0){
|
|
|
-// $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['total_fp'];
|
|
|
-// }else{
|
|
|
- $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['intangible_loss'] + $gy_data[$k]['total_fp'];
|
|
|
-// }
|
|
|
+ //报废合计
|
|
|
+ $gy_data[$k]['total_waste'] = $gy_data[$k]['waste_quality'] + $gy_data[$k]['intangible_loss'] + $gy_data[$k]['total_fp'];
|
|
|
//工序节损数
|
|
|
$gy_data[$k]['loss'] = $item['Gy0_计划损耗']*$item['Gy0_ls']*$item['Gy0_ks'] - $gy_data[$k]['total_waste'];
|
|
|
//占投料报废率
|
|
|
@@ -783,10 +498,6 @@ class OrderSuperLoss extends Api
|
|
|
foreach ($gy_data as &$item) {
|
|
|
$sczl_bh1 = $item['sczl_bh1'];
|
|
|
$total_cl = $item['total_cl'];
|
|
|
-// $item['total'] = $totals[$sczl_bh1]['total'];
|
|
|
-// if ($totals[$sczl_bh1]['count'] > 1) {
|
|
|
-// $item['质检废'] = round($total_cl / $totals[$sczl_bh1]['total'] * $item['质检废']);
|
|
|
-// }
|
|
|
//节损数量
|
|
|
if ($item['无形损分摊'] > 0){
|
|
|
$total_waste = $item['质检废'] + $item['sczl_zcfp'] + $item['无形损分摊'];
|
|
|
@@ -1014,18 +725,6 @@ class OrderSuperLoss extends Api
|
|
|
if (!$tlRes){
|
|
|
$i++;
|
|
|
}
|
|
|
-// $logData = [
|
|
|
-// 'Gd_gdbh' => $list['st_gdbh'], // 使用原始工单编号
|
|
|
-// 'ModifyUser' => $value['sys_id'],
|
|
|
-// 'ModifyTime' => date('Y-m-d H:i:s'),
|
|
|
-// 'FieldName' => 'st_sl',
|
|
|
-// 'OldValue' => $value['old_number'],
|
|
|
-// 'NewValue' => $value['number'],
|
|
|
-// 'ModifySource' => '物料投料数修改'
|
|
|
-// ];
|
|
|
-// $logSql = \db('系统操作日志表')->fetchSql(true)->insert($logData);
|
|
|
-// $result = \db()->query($logSql);
|
|
|
-
|
|
|
}
|
|
|
$total_num = \db('物料_收发记录')
|
|
|
->alias('a')
|
|
|
@@ -1211,7 +910,6 @@ class OrderSuperLoss extends Api
|
|
|
];
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
$result = [];
|
|
|
@@ -2070,30 +1768,30 @@ class OrderSuperLoss extends Api
|
|
|
|
|
|
// 定义字段
|
|
|
$field = '
|
|
|
- b.sys_ny,
|
|
|
- a.jjcp_gdbh AS Gd_gdbh,
|
|
|
- a.jjcp_yjno AS jjcp_yjno,
|
|
|
- a.jjcp_yjno AS yj_Yjno,
|
|
|
- c.yj_Yjdh as yjdh,
|
|
|
- c.yj_ls AS yj_ls,
|
|
|
- c.yj_cpdh AS 成品编码,
|
|
|
- c.yj_yjmc AS 成品名称,
|
|
|
- b.`实际投料`,
|
|
|
- b.`计量单位`,
|
|
|
- DATE(a.jjcp_sj) AS warehousing_date,
|
|
|
- total_sl.warehousing_num,
|
|
|
- SUM(DISTINCT b.`计划损耗`) AS `工单计划损耗`,
|
|
|
- b.`废品合计`,
|
|
|
- SUM(b.`CjsJe`) AS reward_money,
|
|
|
- b.`印件无形损` AS 工单无形损,
|
|
|
- b.`材料废`,
|
|
|
- b.`零头处理`,
|
|
|
- b.`外发废`,
|
|
|
- SUM(b.`班组制程废品`) AS zcfp,
|
|
|
- `工单质检废` AS 工单质检废,
|
|
|
- c.质量考核,
|
|
|
- c.工单类型
|
|
|
- ';
|
|
|
+ b.sys_ny,
|
|
|
+ a.jjcp_gdbh AS Gd_gdbh,
|
|
|
+ a.jjcp_yjno AS jjcp_yjno,
|
|
|
+ a.jjcp_yjno AS yj_Yjno,
|
|
|
+ c.yj_Yjdh as yjdh,
|
|
|
+ c.yj_ls AS yj_ls,
|
|
|
+ c.yj_cpdh AS 成品编码,
|
|
|
+ c.yj_yjmc AS 成品名称,
|
|
|
+ b.`实际投料`,
|
|
|
+ b.`计量单位`,
|
|
|
+ DATE(a.jjcp_sj) AS warehousing_date,
|
|
|
+ total_sl.warehousing_num,
|
|
|
+ SUM(DISTINCT b.`计划损耗`) AS `工单计划损耗`,
|
|
|
+ b.`废品合计`,
|
|
|
+ SUM(b.`CjsJe`) AS reward_money,
|
|
|
+ b.`印件无形损` AS 工单无形损,
|
|
|
+ b.`材料废`,
|
|
|
+ b.`零头处理`,
|
|
|
+ b.`外发废`,
|
|
|
+ SUM(b.`班组制程废品`) AS zcfp,
|
|
|
+ `工单质检废` AS 工单质检废,
|
|
|
+ c.质量考核,
|
|
|
+ c.工单类型
|
|
|
+ ';
|
|
|
|
|
|
// 子查询:计算所有记录的 jjcp_sl 总和(入仓数量)
|
|
|
$subQuery = \db('成品入仓')
|
|
|
@@ -2156,7 +1854,7 @@ class OrderSuperLoss extends Api
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 计算合格率
|
|
|
+ // 计算合格率
|
|
|
private function calculateRate($actual, $loss)
|
|
|
{
|
|
|
if ($actual == 0) {
|
|
|
@@ -2265,9 +1963,9 @@ class OrderSuperLoss extends Api
|
|
|
//报废合计
|
|
|
$gy_data[$key]['total_waste'] = $value['Gy0_无形损'] + $value['total_fp'] + $value['waste_quality'];
|
|
|
//工序实际报废率
|
|
|
- $gy_data[$key]['actual_loss_rate'] = ((number_format($gy_data[$key]['total_waste']/$list['实际投料'],4))*100).'%';
|
|
|
+ $gy_data[$key]['actual_loss_rate'] = ((number_format($gy_data[$key]['total_waste']/$value['Gy0_计划接货数'],4))*100).'%';
|
|
|
//工序目标报废率
|
|
|
- $gy_data[$key]['target_loss_rate'] = ((number_format($value['Gy0_计划损耗']/$list['实际投料'],4))*100).'%';
|
|
|
+ $gy_data[$key]['target_loss_rate'] = ((number_format($value['Gy0_计划损耗']/$value['Gy0_计划接货数'],4))*100).'%';
|
|
|
//占投料报废率
|
|
|
$gy_data[$key]['loss_rate'] = ((number_format(($value['Gy0_计划损耗']-$gy_data[$key]['total_waste'])/$list['实际投料'],4))*100).'%';
|
|
|
}
|