success('湖州油墨api接口成功访问');} //车间列表表头字段 function generateColumns() { return [ ['name' => '批次号', 'id' => 'bach', 'width' => '10', 'autoWrap' => "true", 'textAlign' => 'left'], ['name' => '配方名称', 'id' => 'name', 'width' => '20', 'textAlign' => 'left'], ['name' => '机台', 'id' => 'machine', 'width' => '10', 'autoWrap' => "true", 'textAlign' => 'left'], ['name' => '生产量(kg)', 'id' => 'number', 'width' => '10', 'autoWrap' => "true", 'textAlign' => 'left'], ['name' => '扩单重量', 'id' => 'kuodan', 'width' => '13', 'autoWrap' => "true", 'textAlign' => 'left'], ['name' => '创建时间', 'id' => 'create', 'width' => '17', 'autoWrap' => "true", 'textAlign' => 'left'], ['name' => '是否投料', 'id' => 'fedding_status', 'width' => '10', 'autoWrap' => "true",'textAlign' => 'left'], ]; } // 通用的作业票列表方法 public function generateWorkshopList($machineType) { // 获取当前日期 $today = date('Y-m-d 23:59:59'); // 计算五天前的日期 $fiveDaysAgo = date('Y-m-d 00:00:00'); $result = Db::connect('minnongyun')->table('mn_task')->alias('t') ->field(' t.name, t.bach, t.machine, t.number, t.create, t.kuodan, CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status ') ->join('mn_feeding f','t.bach = f.bach','LEFT') ->where('t.machine', 'like', '%' . $machineType . '%') ->where('t.create', '>=', $fiveDaysAgo) ->where('t.create', '<=', $today) ->group('t.create') ->order('t.create', 'desc') ->select(); //echo "
";print_r($result);echo "";
$new_result = [];
$new_result['columns'] = $this->generateColumns();
if (empty($result)) {
$res['status'] = 0;
$res['msg'] = '';
// 手动创建一个空的行数据
$new_result['rows'][] = [
'name' => '-',
'bach' => '-',
'machine' => '-',
'number' => '-',
'kuodan' => '-',
'create' => '-',
'fedding_status' => '-',
];
$res['data'] = $new_result;
return json($res);
}
$color = 'rgb(91, 197, 106)';
foreach ($result as $key => $value) {
$new_result['rows'][$key]['name'] = $value['name'];
$new_result['rows'][$key]['bach'] = '24-'.$value['bach'];
$new_result['rows'][$key]['machine'] = mb_substr($value['machine'], 3);
$new_result['rows'][$key]['number'] = $value['number'];
$new_result['rows'][$key]['kuodan'] = $value['kuodan'];
$new_result['rows'][$key]['create'] = $value['create'];
$new_result['rows'][$key]['fedding_status'] = $value['fedding_status'];
if($value['fedding_status'] == '已投料'){
$new_result['rows'][$key]['name_color'] = $color;
$new_result['rows'][$key]['bach_color'] = $color;
$new_result['rows'][$key]['machine_color'] = $color;
$new_result['rows'][$key]['number_color'] = $color;
$new_result['rows'][$key]['kuodan_color'] = $color;
$new_result['rows'][$key]['create_color'] = $color;
$new_result['rows'][$key]['fedding_status_color'] = $color;
}
}
$res['status'] = 0;
$res['msg'] = '';
$res['data'] = $new_result;
return json($res);
}
// 甲类车间作业票列表->接口
public function jl_workshops() {
return $this->generateWorkshopList('甲类');
}
//甲类作业票数量->接口
public function jl_zypsl(){
// 获取当前日期
$today = date('Y-m-d 23:59:59');
// 计算五天前的日期
$fiveDaysAgo = date('Y-m-d 00:00:00');
$result = Db::connect('minnongyun')->table('mn_task')->alias('t')
->field('
t.name,
t.bach,
t.machine,
t.number,
t.create,
t.kuodan,
CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status
')
->join('mn_feeding f','t.bach = f.bach','LEFT')
->where('t.machine', 'like', '%' . '甲类' . '%')
->where('t.create', '>=', $fiveDaysAgo)
->where('t.create', '<=', $today)
->group('t.create')
->order('t.create', 'desc')
->count('t.bach');
if($result==[]){
$res['data']=[['name'=>'作业票','value'=>0]];
}else{
$res['data']=[['name'=>'作业票','value'=>$result]];
}
$res['status']=0;
$res['msg']='';
return json($res);
}
//甲类未投料数量->接口
public function jl_weitsl(){
// 获取当前日期
$today = date('Y-m-d 23:59:59');
// 计算五天前的日期
$fiveDaysAgo = date('Y-m-d 00:00:00');
$result = Db::connect('minnongyun')->table('mn_task')->alias('t')
->field('
t.name,
t.bach,
t.machine,
t.number,
t.create,
t.kuodan,
CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status
')
->join('mn_feeding f','t.bach = f.bach','LEFT')
->where('t.machine', 'like', '%' . '甲类' . '%')
->where('t.create', '>=', $fiveDaysAgo)
->where('t.create', '<=', $today)
->group('t.create')
->order('t.create', 'desc')
->select();
$Count = 0;
foreach ($result as $item) {
if ($item['fedding_status'] === '未投料') {
$Count++;
}
}
if($result==[]){
$res['data']=[['name'=>'未投料','value'=>0]];
}else{
$res['data']=[['name'=>'未投料','value'=>$Count]];
}
$res['status']=0;
$res['msg']='';
return json($res);
}
//甲类已投料数量->接口
public function jl_yitsl(){
// 获取当前日期
$today = date('Y-m-d 23:59:59');
// 计算五天前的日期
$fiveDaysAgo = date('Y-m-d 00:00:00');
$result = Db::connect('minnongyun')->table('mn_task')->alias('t')
->field('
t.name,
t.bach,
t.machine,
t.number,
t.create,
t.kuodan,
CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status
')
->join('mn_feeding f','t.bach = f.bach','LEFT')
->where('t.machine', 'like', '%' . '甲类' . '%')
->where('t.create', '>=', $fiveDaysAgo)
->where('t.create', '<=', $today)
->group('t.create')
->order('t.create', 'desc')
->select();
$Count = 0;
foreach ($result as $item) {
if ($item['fedding_status'] === '已投料') {
$Count++;
}
}
if($result==[]){
$res['data']=[['name'=>'已投料','value'=>0]];
}else{
$res['data']=[['name'=>'已投料','value'=>$Count]];
}
$res['status']=0;
$res['msg']='';
return json($res);
}
// 丙类车间作业票列表->接口
public function bl_workshops() {
return $this->generateWorkshopList('丙类');
}
//丙类作业票数量->接口
public function bl_zypsl(){
// 获取当前日期
$today = date('Y-m-d 23:59:59');
// 计算五天前的日期
$fiveDaysAgo = date('Y-m-d 00:00:00');
$result = Db::connect('minnongyun')->table('mn_task')->alias('t')
->field('
t.name,
t.bach,
t.machine,
t.number,
t.create,
t.kuodan,
CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status
')
->join('mn_feeding f','t.bach = f.bach','LEFT')
->where('t.machine', 'like', '%' . '丙类' . '%')
->where('t.create', '>=', $fiveDaysAgo)
->where('t.create', '<=', $today)
->group('t.create')
->order('t.create', 'desc')
->count('t.bach');
if($result==[]){
$res['data']=[['name'=>'作业票','value'=>0]];
}else{
$res['data']=[['name'=>'作业票','value'=>$result]];
}
$res['status']=0;
$res['msg']='';
return json($res);
}
//丙类未投料数量->接口
public function bl_weitsl(){
// 获取当前日期
$today = date('Y-m-d 23:59:59');
// 计算五天前的日期
$fiveDaysAgo = date('Y-m-d 00:00:00');
$result = Db::connect('minnongyun')->table('mn_task')->alias('t')
->field('
t.name,
t.bach,
t.machine,
t.number,
t.create,
t.kuodan,
CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status
')
->join('mn_feeding f','t.bach = f.bach','LEFT')
->where('t.machine', 'like', '%' . '丙类' . '%')
->where('t.create', '>=', $fiveDaysAgo)
->where('t.create', '<=', $today)
->group('t.create')
->order('t.create', 'desc')
->select();
$Count = 0;
foreach ($result as $item) {
if ($item['fedding_status'] === '未投料') {
$Count++;
}
}
if($result==[]){
$res['data']=[['name'=>'未投料','value'=>0]];
}else{
$res['data']=[['name'=>'未投料','value'=>$Count]];
}
$res['status']=0;
$res['msg']='';
return json($res);
}
//丙类已投料数量->接口
public function bl_yitsl(){
// 获取当前日期
$today = date('Y-m-d 23:59:59');
// 计算五天前的日期
$fiveDaysAgo = date('Y-m-d 00:00:00');
$result = Db::connect('minnongyun')->table('mn_task')->alias('t')
->field('
t.name,
t.bach,
t.machine,
t.number,
t.create,
t.kuodan,
CASE WHEN f.bach IS NULL THEN \'未投料\' ELSE \'已投料\' END AS fedding_status
')
->join('mn_feeding f','t.bach = f.bach','LEFT')
->where('t.machine', 'like', '%' . '丙类' . '%')
->where('t.create', '>=', $fiveDaysAgo)
->where('t.create', '<=', $today)
->group('t.create')
->order('t.create', 'desc')
->select();
$Count = 0;
foreach ($result as $item) {
if ($item['fedding_status'] === '已投料') {
$Count++;
}
}
if($result==[]){
$res['data']=[['name'=>'已投料','value'=>0]];
}else{
$res['data']=[['name'=>'已投料','value'=>$Count]];
}
$res['status']=0;
$res['msg']='';
return json($res);
}
}