|
|
@@ -13,99 +13,338 @@ class Index extends Controller{
|
|
|
public function index(){$this->success('成功');}
|
|
|
|
|
|
/**
|
|
|
- *近30天班组生产效率完成情况【缓存】
|
|
|
- * 查询近三十天车缝小组完成情况
|
|
|
- * 完成总数量
|
|
|
+ *当日班组报工产量【缓存】
|
|
|
*/
|
|
|
- public function bzDbToRedis(){
|
|
|
- //存缓存Redis
|
|
|
+ public function GroupProductionRedis(){
|
|
|
+ // 存缓存到 Redis
|
|
|
$redis = redis();
|
|
|
- $redis_key = md5('bzDbToRedis');
|
|
|
+ $redis_key = md5('GroupProductionRedis');
|
|
|
|
|
|
// 获取当天的日期
|
|
|
- $todays = date('Y-m-d');//30天前
|
|
|
- $today = date('Y-m-d');//当天日期
|
|
|
+ $todays = date('Y-m-d'); // 30天前
|
|
|
+// $today = date('Y-m-d'); // 当天日期
|
|
|
|
|
|
-// $where['c.sczl_bh'] = ['like','%'.'车缝'.'%'];
|
|
|
- $where['mod_rq'] = null;
|
|
|
- $where['工序名称'] = '车缝';
|
|
|
+ // 自定义需要显示的生产工序顺序
|
|
|
+ $customGroups = ['裁剪', '车缝', '手工', '大烫', '总检', '包装'];
|
|
|
|
|
|
+ // 获取所有设备资料,并按自定义工序顺序过滤
|
|
|
+ $Machine = db('设备_基本资料')
|
|
|
+ ->field('生产工序, 设备编组')
|
|
|
+ ->whereIn('生产工序', $customGroups)
|
|
|
+ ->select();
|
|
|
+ // 查询当天设备产量数据
|
|
|
$res = db('设备_产量计酬')->alias('c')
|
|
|
- ->where($where)
|
|
|
- ->field('c.sczl_bh, SUM(c.数量) as 数量')
|
|
|
+ ->field('c.sczl_bh, SUM(c.数量) as 数量, c.工序名称')
|
|
|
+// ->where('c.Sys_rq', $today)
|
|
|
->group('c.sczl_bh')
|
|
|
->select();
|
|
|
-// echo "<pre>";
|
|
|
-// print_r($res);
|
|
|
-// echo "<pre>";die;
|
|
|
|
|
|
+ // 将产量数据转换为以设备编组为键的数组,并去除空格,方便合并
|
|
|
+ $resIndexed = [];
|
|
|
+ foreach ($res as $item) {
|
|
|
+ $key = trim($item['sczl_bh']); // 去除空格
|
|
|
+ $resIndexed[$key] = $item['数量'];
|
|
|
+ }
|
|
|
+ // 初始化结果数组,确保所有设备编组都有数量数据
|
|
|
+ $mergedData = [];
|
|
|
+ foreach ($Machine as $machine) {
|
|
|
+ $groupName = trim($machine['设备编组']); // 去除空格
|
|
|
+ $mergedData[] = [
|
|
|
+ '工序名称' => $machine['生产工序'],
|
|
|
+ '组别' => $groupName,
|
|
|
+ '数量' => isset($resIndexed[$groupName]) ? $resIndexed[$groupName] : 0 // 更新数量
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ // 对 $mergedData 进行排序,先按生产工序的自定义顺序排序,再按设备编组的自然顺序排序
|
|
|
+ usort($mergedData, function ($a, $b) use ($customGroups) {
|
|
|
+ // 按生产工序自定义顺序排序
|
|
|
+ $groupOrderA = array_search($a['工序名称'], $customGroups);
|
|
|
+ $groupOrderB = array_search($b['工序名称'], $customGroups);
|
|
|
+
|
|
|
+ if ($groupOrderA === $groupOrderB) {
|
|
|
+ // 在同一生产工序内按设备编号自然排序
|
|
|
+ return strnatcmp($a['组别'], $b['组别']);
|
|
|
+ }
|
|
|
|
|
|
- $redis->set($redis_key, json_encode($res));
|
|
|
+ return $groupOrderA - $groupOrderB;
|
|
|
+ });
|
|
|
+ $redis->set($redis_key, json_encode($mergedData));
|
|
|
echo date("Y-m-d H:i:s").'存进去了';
|
|
|
- return $res;
|
|
|
+ return $mergedData;
|
|
|
}
|
|
|
+ //车缝
|
|
|
+ public function GroupMachineCFyi()
|
|
|
+ {
|
|
|
+ $redis = redis();
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
|
|
|
- /**
|
|
|
- *近30天班组生产效率完成情况【接口】
|
|
|
- */
|
|
|
- public function bzDbTo(){
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+ // 遍历数据,找到所有工序名称为“车缝”的小组,且不属于“大办组”、“小芬组”、“美英组”
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] === '车缝' && $data['组别'] != '大办组' && $data['组别'] != '小芬组' && $data['组别'] != '美英组') {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
+ }
|
|
|
+
|
|
|
+// 板房车缝
|
|
|
+ public function GroupMachinebfCFyi()
|
|
|
+ {
|
|
|
$redis = redis();
|
|
|
- $row = json_decode($redis->get(md5('bzDbToRedis')), true);
|
|
|
- echo "<pre>";
|
|
|
- print_r($row);
|
|
|
- echo "<pre>";
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
+
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+// 遍历数据,找到所有工序名称为“车缝”的小组,且只包含“大办组”、“小芬组”、“美英组”
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] === '车缝' && in_array($data['组别'], ['大办组', '小芬组', '美英组'])) {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
}
|
|
|
|
|
|
+ //裁剪
|
|
|
+ public function GroupMachineCJyi()
|
|
|
+ {
|
|
|
+ $redis = redis();
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
|
|
|
- /**
|
|
|
- *当日班组报工产量【缓存】
|
|
|
- */
|
|
|
- public function numDbToRedis(){
|
|
|
- //存缓存Redis
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+ // 遍历数据,找到所有工序名称为“车缝”的小组
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] !== '车缝') {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //手工
|
|
|
+ public function GroupMachineSGyi()
|
|
|
+ {
|
|
|
$redis = redis();
|
|
|
- $redis_key = md5('numDbToRedis');
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
|
|
|
- // 获取当天的日期
|
|
|
- $todays = date('Y-8-d');
|
|
|
- $today = date('Y-m-d');
|
|
|
- // 查询设备_产量计酬表,当日班组报工产量情况,排除车缝班组,按班组和日期分组并累计数量
|
|
|
- $res = db('设备_产量计酬')
|
|
|
- ->alias('c')
|
|
|
- ->where('c.sczl_bh', 'not like', '%车缝%') // 排除车缝班组
|
|
|
- ->where('c.sys_rq', '>=', $todays . ' 00:00:00') // 当日开始时间
|
|
|
- ->where('c.sys_rq', '<=', $today . ' 23:59:59') // 当日结束时间
|
|
|
- ->whereNull('c.mod_rq')
|
|
|
- ->field('c.sczl_bh, SUM(c.ci_num) as total_num, DATE(c.sys_rq) as date') // 班组编号,数量累计,日期
|
|
|
- ->group('c.sczl_bh, DATE(c.sys_rq)') // 按班组编号和日期分组
|
|
|
- ->select();
|
|
|
- echo "<pre>";
|
|
|
- print_r($res);
|
|
|
- echo "<pre>";die;
|
|
|
- $redis->set($redis_key, json_encode($res));
|
|
|
- echo date("Y-m-d H:i:s").'存进去了';
|
|
|
- return $res;
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+ // 遍历数据,找到所有工序名称为“车缝”的小组
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] === '手工') {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
}
|
|
|
+ //大烫
|
|
|
+ public function GroupMachineDTyi()
|
|
|
+ {
|
|
|
+ $redis = redis();
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
|
|
|
- /**
|
|
|
- *当日班组报工产量【接口】
|
|
|
- */
|
|
|
- public function getPczByRedis(){
|
|
|
-// $list=['categories'=>[$list2021['rq'],$list2022['rq'],$list2023['rq']],'series'=>[['name'=>'色令数',
|
|
|
-// 'data'=>[round($list2021['nyssl']/10000),round($list2022['nyssl']/10000),round($list2023['nyssl']/10000)]]]];
|
|
|
-// $res['status']=0;
|
|
|
-// $res['msg']='';
|
|
|
-// $res['data']=$list;
|
|
|
-// $redis->set($redis_key, json_encode($res));
|
|
|
-// return json_encode($res);
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+ // 遍历数据,找到所有工序名称为“车缝”的小组
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] === '大烫') {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
+ }
|
|
|
+ //总检
|
|
|
+ public function GroupMachineZJyi()
|
|
|
+ {
|
|
|
+ $redis = redis();
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
+
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+ // 遍历数据,找到所有工序名称为“车缝”的小组
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] === '总检') {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
+ }
|
|
|
+ //包装
|
|
|
+ public function GroupMachineBZyi()
|
|
|
+ {
|
|
|
$redis = redis();
|
|
|
- $row = json_decode($redis->get(md5('numDbToRedis')), true);
|
|
|
- echo "<pre>";
|
|
|
- print_r($row);
|
|
|
- echo "<pre>";
|
|
|
+ $row = json_decode($redis->get(md5('GroupProductionRedis')), true);
|
|
|
+
|
|
|
+ // 初始化小组名称和数量
|
|
|
+ $categories = [];
|
|
|
+ $dataSeries = [];
|
|
|
+
|
|
|
+ // 遍历数据,找到所有工序名称为“车缝”的小组
|
|
|
+ foreach ($row as $data) {
|
|
|
+ if ($data['工序名称'] === '包装') {
|
|
|
+ $categories[] = $data['组别']; // 添加组别到分类中
|
|
|
+ $dataSeries[$data['组别']] = $data['数量']; // 更新小组数量
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 构建输出数据格式
|
|
|
+ $list = [
|
|
|
+ 'categories' => $categories,
|
|
|
+ 'series' => [
|
|
|
+ [
|
|
|
+ 'name' => '完成',
|
|
|
+ 'data' => array_values($dataSeries) // 获取数量数组
|
|
|
+ ]
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $res = [
|
|
|
+ 'status' => 0,
|
|
|
+ 'msg' => '',
|
|
|
+ 'data' => $list
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 返回 JSON 格式的结果
|
|
|
+ return json($res);
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 在产订单工序完工详情【缓存】
|
|
|
*/
|
|
|
@@ -113,98 +352,139 @@ class Index extends Controller{
|
|
|
//存缓存Redis
|
|
|
$redis = redis();
|
|
|
$redis_key = md5('getJhzByRedis');
|
|
|
-
|
|
|
+// 定义固定工序名称
|
|
|
+ $processNames = ['裁剪', '车缝', '手工', '大烫', '总检', '包装'];
|
|
|
$startTime = date('Y-m-d', strtotime('-30 days'));
|
|
|
$endTime = date('Y-m-d');
|
|
|
- // 修改查询条件为近30天
|
|
|
- $where['b.Sys_rq'] = ['between', [$startTime, $endTime]];
|
|
|
- $list = \db('设备_产量计酬')
|
|
|
- ->alias('a')
|
|
|
- ->join('工单_基本资料 b','a.订单编号 = b.订单编号')
|
|
|
- ->join('工单_印件资料 c','a.订单编号 = c.订单编号 AND a.子订单编号 = c.子订单编号')
|
|
|
- ->field('c.订单编号,c.子订单编号,c.款号,c.颜色,c.zdtotal as 制单总数,c.sctotal as 裁切总数,c.ck_rq as 出库日期,
|
|
|
- SUM(a.数量) as 产量,a.工序名称,b.客户编号,b.单位')
|
|
|
+ $where['c.Sys_rq'] = ['between', [$startTime, $endTime]];
|
|
|
+ $where['j.出库日期'] = ['<>', 'NULL'];
|
|
|
+ $where['c.mod_rq'] = null;
|
|
|
+
|
|
|
+// 第一个查询:获取完工数量
|
|
|
+ $list = \db('工单_基本资料')->alias('j')
|
|
|
+ ->join('设备_产量计酬 c', 'j.订单编号 = c.订单编号', 'LEFT')
|
|
|
+ ->field('c.订单编号, j.工单入仓数量, j.客户编号, j.生产款号, j.款式, c.工序名称, sum(c.数量) as 完工数量, j.gd_statu as 订单状态')
|
|
|
->where($where)
|
|
|
- ->group('a.订单编号,a.工序名称')
|
|
|
- ->order('c.Uniqid')
|
|
|
+ ->group('c.订单编号, c.工序名称')
|
|
|
+ ->having('完工数量 > 0')
|
|
|
->select();
|
|
|
- $orderList = \db('设备_产量计酬')
|
|
|
- ->alias('a')
|
|
|
- ->join('工单_基本资料 b','a.订单编号 = b.订单编号')
|
|
|
- ->join('工单_印件资料 c','a.订单编号 = c.订单编号 AND a.子订单编号 = c.子订单编号')
|
|
|
- ->field('c.订单编号,c.子订单编号,c.款号,c.颜色,c.zdtotal as 制单总数,c.sctotal as 裁切总数,c.ck_rq as 出库日期,b.客户编号,b.单位')
|
|
|
- ->where($where)
|
|
|
- ->group('a.子订单编号')
|
|
|
- ->order('c.Uniqid')
|
|
|
+
|
|
|
+// 第二个查询:获取制单数
|
|
|
+ $yjwhere['y.Mod_rq'] = null;
|
|
|
+ $yjlist = \db('工单_基本资料')->alias('j')
|
|
|
+ ->join('工单_印件资料 y', 'j.订单编号 = y.订单编号', 'LEFT')
|
|
|
+ ->field('y.订单编号, SUM(y.zdtotal) as 制单数')
|
|
|
+ ->where($yjwhere)
|
|
|
+ ->group('y.订单编号')
|
|
|
->select();
|
|
|
- foreach ($orderList as $key=>$value){
|
|
|
- $data[$key] = $value;
|
|
|
- foreach ($list as $k=>$v){
|
|
|
- if ($value['子订单编号'] === $v['子订单编号']){
|
|
|
- if (isset($data[$key][$v['工序名称']]) === false){
|
|
|
- $data[$key][$v['工序名称']] = $v['产量'];
|
|
|
- }
|
|
|
+
|
|
|
+// 将制单数结果转换为以订单编号为键的数组,方便后续合并
|
|
|
+ $yjlistIndexed = [];
|
|
|
+ foreach ($yjlist as $yj) {
|
|
|
+ $yjlistIndexed[$yj['订单编号']] = $yj['制单数'];
|
|
|
+ }
|
|
|
+
|
|
|
+// 合并数据
|
|
|
+ $mergedData = [];
|
|
|
+ foreach ($list as $order) {
|
|
|
+ $orderId = $order['订单编号'];
|
|
|
+ // 初始化订单数据,如果还未存在
|
|
|
+ if (!isset($mergedData[$orderId])) {
|
|
|
+ // 获取制单数和已完工数量
|
|
|
+ $zdTotal = $yjlistIndexed[$orderId] ?? 0; // 制单数
|
|
|
+ $completedTotal = $order['工单入仓数量']; // 已完工数量
|
|
|
+
|
|
|
+ // 计算完成百分比
|
|
|
+ $completionPercentage = $zdTotal > 0 ? round(($completedTotal / $zdTotal) * 100, 2) . '%' : '0%';
|
|
|
+
|
|
|
+ // 初始化订单数据
|
|
|
+ $mergedData[$orderId] = [
|
|
|
+ '订单编号' => $orderId,
|
|
|
+ '客户编号' => $order['客户编号'],
|
|
|
+ '生产款号' => $order['生产款号'],
|
|
|
+ '款式' => $order['款式'],
|
|
|
+ '订单状态' => $order['订单状态'],
|
|
|
+ '已完工数量' => $completedTotal,
|
|
|
+ '制单数' => $zdTotal,
|
|
|
+ '完成百分比' => $completionPercentage, // 新增字段:完成百分比
|
|
|
+ ];
|
|
|
+
|
|
|
+ // 初始化所有工序的完工数量为空
|
|
|
+ foreach ($processNames as $process) {
|
|
|
+ $mergedData[$orderId][$process] = '';
|
|
|
}
|
|
|
}
|
|
|
+ // 更新对应的工序名称和完工数量
|
|
|
+ if (in_array($order['工序名称'], $processNames)) {
|
|
|
+ $mergedData[$orderId][$order['工序名称']] = $order['完工数量'];
|
|
|
+ }
|
|
|
}
|
|
|
- $redis->set($redis_key, json_encode($data));
|
|
|
+
|
|
|
+// 转换合并后的数组格式
|
|
|
+ $result = array_values($mergedData);
|
|
|
+ $redis->set($redis_key, json_encode($result));
|
|
|
echo date("Y-m-d H:i:s").'存进去了';
|
|
|
- return $data;
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 在产订单工序完工详情【接口】
|
|
|
*/
|
|
|
- public function getZczByRedis(){
|
|
|
+ public function getJhzBy(){
|
|
|
$redis = redis();
|
|
|
$row = json_decode($redis->get(md5('getJhzByRedis')), true);
|
|
|
|
|
|
// 列定义
|
|
|
$result['columns'] = [
|
|
|
- ['name' => '订单编号', 'id' => 'order', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
- ['name' => '客户', 'id' => 'kehu', 'width' => '16', 'textAlign' => 'left'],
|
|
|
- ['name' => '制单总数', 'id' => 'zdnum', 'width' => '20', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
- ['name' => '单位', 'id' => 'dw', 'width' => '16', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
- ['name' => '出库确认', 'id' => 'chuku', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
- ['name' => '裁切', 'id' => 'caiqie', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
|
|
|
- ['name' => '缝制小烫', 'id' => 'fegnzhi', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
|
|
|
- ['name' => '后道收样', 'id' => 'houdao', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
|
|
|
- ['name' => '大烫', 'id' => 'datang', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
|
|
|
- ['name' => '总检', 'id' => 'zongjian', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
|
|
|
- ['name' => '包装', 'id' => 'baozhaung', 'width' => '14', 'autoWrap' => "true", 'textAlign' => 'center'],
|
|
|
+ ['name' => '订单编号', 'id' => 'ddbh', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '客户编号', 'id' => 'khbh', 'width' => '6%', 'textAlign' => 'left'],
|
|
|
+ ['name' => '生产款号', 'id' => 'sckh', 'width' => '6%', 'textAlign' => 'left'],
|
|
|
+ ['name' => '款式', 'id' => 'ks', 'width' => '5%', 'textAlign' => 'left'],
|
|
|
+ ['name' => '订单状态', 'id' => 'ddzt', 'width' => '6%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '裁剪已完成', 'id' => 'cj', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '车缝已完成', 'id' => 'cf', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '手工已完成', 'id' => 'sg', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '大烫已完成', 'id' => 'dt', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '总检已完成', 'id' => 'zj', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '包装已完成', 'id' => 'bz', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '已完成数量', 'id' => 'ywgsl', 'width' => '7%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '制单总数', 'id' => 'zds', 'width' => '6%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
+ ['name' => '完成百分比', 'id' => 'bfb', 'width' => '9%', 'autoWrap' => "true", 'textAlign' => 'left'],
|
|
|
];
|
|
|
|
|
|
if ($row) {
|
|
|
foreach ($row as $k => $v) {
|
|
|
- $result['rows'][$k]['order'] = $v['订单编号'];
|
|
|
- $result['rows'][$k]['kehu'] = $v['客户编号'];
|
|
|
- $result['rows'][$k]['zdnum'] = $v['制单总数'];
|
|
|
- $result['rows'][$k]['dw'] = $v['单位'];
|
|
|
-
|
|
|
- // 判断出库日期,设置出库确认
|
|
|
- $result['rows'][$k]['chuku'] = isset($v['出库日期']) && !empty($v['出库日期']) ? '已出库' : '未出库';
|
|
|
-
|
|
|
- $result['rows'][$k]['caiqie'] = $v['裁切'] ?? '';
|
|
|
- $result['rows'][$k]['fegnzhi'] = $v['缝制小烫'] ?? '';
|
|
|
- $result['rows'][$k]['houdao'] = $v['后道收样'] ?? '';
|
|
|
- $result['rows'][$k]['datang'] = $v['大烫'] ?? '';
|
|
|
- $result['rows'][$k]['zongjian'] = $v['总检'] ?? '';
|
|
|
- $result['rows'][$k]['baozhaung'] = $v['包装'] ?? '';
|
|
|
+ $result['rows'][$k]['ddbh'] = $v['订单编号'];
|
|
|
+ $result['rows'][$k]['khbh'] = $v['客户编号'];
|
|
|
+ $result['rows'][$k]['sckh'] = $v['生产款号'];
|
|
|
+ $result['rows'][$k]['ks'] = $v['款式'];
|
|
|
+ $result['rows'][$k]['ddzt'] = $v['订单状态'];
|
|
|
+
|
|
|
+ // 工序数量字段,根据之前的定义调整字段名
|
|
|
+ $result['rows'][$k]['cj'] = $v['裁剪'] ?? '';
|
|
|
+ $result['rows'][$k]['cf'] = $v['车缝'] ?? '';
|
|
|
+ $result['rows'][$k]['sg'] = $v['手工'] ?? '';
|
|
|
+ $result['rows'][$k]['dt'] = $v['大烫'] ?? '';
|
|
|
+ $result['rows'][$k]['zj'] = $v['总检'] ?? '';
|
|
|
+ $result['rows'][$k]['bz'] = $v['包装'] ?? '';
|
|
|
+
|
|
|
+ // 其他数量字段
|
|
|
+ $result['rows'][$k]['ywgsl'] = $v['已完工数量'] ?? ''; // 示例字段,需确保与数据一致
|
|
|
+ $result['rows'][$k]['zds'] = $v['制单数'] ?? ''; // 对应制单数
|
|
|
+ $result['rows'][$k]['bfb'] = $v['完成百分比'] ?? ''; // 对应制单数
|
|
|
}
|
|
|
} else {
|
|
|
// 如果没有数据,初始化空行
|
|
|
$result['rows'][0] = [
|
|
|
- 'order' => '', 'kehu' => '', 'zdnum' => '', 'dw' => '', 'chuku' => '',
|
|
|
- 'caiqie' => '', 'fegnzhi' => '', 'houdao' => '', 'datang' => '', 'zongjian' => '', 'baozhaung' => ''
|
|
|
+ 'ddbh' => '', 'khbh' => '', 'sckh' => '', 'ks' => '', 'ddzt' => '',
|
|
|
+ 'cj' => '', 'cf' => '', 'sg' => '', 'dt' => '', 'zj' => '', 'bz' => '',
|
|
|
+ 'ywgsl' => '', 'zds' => ''
|
|
|
];
|
|
|
}
|
|
|
// echo "<pre>";print_r($result);echo "<pre>";die;
|
|
|
-
|
|
|
- // 构造最终的返回数据
|
|
|
$res['status'] = 0;
|
|
|
$res['msg'] = '';
|
|
|
$res['data'] = $result;
|
|
|
-
|
|
|
return json($res);
|
|
|
}
|
|
|
|