| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\Db;
- /**
- * 工单资料管理
- */
- class WorkOrder extends Api
- {
- protected $noNeedLogin = ['*'];
- protected $noNeedRight = ['*'];
- /**
- * 工单资料菜单列表
- *
- * @ApiMethod (GET)
- * @return false|string
- * @throws \think\Exception
- */
- public function DataList()
- {
- if ($this->request->isGet() === false){
- $this->error('请求错误');
- }
- //客户列表
- $ClientList = Db::table('erp_客户供应商')->where('类型','客户')->column('简称','编号');
- //获取总计划中数量和总生产中数量
- $productingAll = Db::table('工单_基本资料')->where('gd_statu','2-生产中')->count();
- $progressAll = Db::table('工单_基本资料')->where('gd_statu','3-计划中')->count();
- $data = [
- 'productingAll' => $productingAll,
- 'progressAll' => $progressAll
- ];
- //按客户编号查询生产中,计划中数量
- foreach ($ClientList as $key=>$value){
- $order = Db::table('工单_基本资料')->where('Gd_客户代号',$key)->count();
- if ($order !== 0){
- $productIng = Db::table('工单_基本资料')->where('Gd_客户代号',$key)->where('gd_statu','2-生产中')->count();
- $proGress = Db::table('工单_基本资料')->where('Gd_客户代号',$key)->where('gd_statu','3-计划中')->count();
- $Detail = [
- 'Gd_khdh' => rtrim($key),
- 'Gd_khmc' => rtrim($value),
- 'producting' => rtrim($productIng),
- 'progress' => rtrim($proGress),
- ];
- array_push($data,$Detail);
- }
- }
- $this->success('成功',$data);
- }
- /**
- * 工单基本资料列表
- * @ApiMethod (GET)
- * @param string $limit 查询长度
- * @param string $Gd_khdh 客户代号
- * @param string $startTime 接单日期开始时间
- * @param string $endTime 接单日期结束时间
- * @return \think\response\Json
- * @throws \think\exception\DbException
- */
- public function WorkList()
- {
- if ($this->request->isGet() === false){
- $this->error('请求错误');
- }
- $limit = input('limit');
- $clientNumber = input('Gd_khdh');
- $startTime = input('start');
- $endTime = input('end');
- $where = [
- 'Gd_khdh' => $clientNumber
- ];
- if (isset($startTime) && isset($endTime)){
- $where['接单日期'] = ['between',[$startTime,$endTime]];
- }
- $list = Db::table('工单_基本资料')
- ->where($where)
- ->order('接单日期 desc')
- ->paginate($limit);
- //工单基本资料数据整理
- $data = [];
- foreach ($list->items() as $key=>$value){
- $data[$key] = [
- '工单编号' => rtrim($value['Gd_gdbh']),
- '生产分类' => rtrim($value['Gd_生产分类']),
- '销售订单号' => rtrim($value['销售订单号']),
- '产品代号' => rtrim($value['Gd_cpdh']),
- '产品名称' => rtrim($value['Gd_cpmc']),
- '订单数量' => rtrim($value['订单数量']),
- '单位' => rtrim($value['计量单位']),
- '折合大箱' => rtrim((int)$value['投料大箱']),
- '投料率' => rtrim($value['投料率']),
- '平均合格率' => '',
- '开单日期' => date('Y-m-d',strtotime(rtrim($value['接单日期']))),
- '交货日期' => date('Y-m-d',strtotime(rtrim($value['交货日期']))),
- '工单类型' => rtrim($value['Gd_lx']),
- '工单状态' => rtrim($value['gd_statu']),
- '当前生产工序' => '',
- '产量提交时间' => '',
- '建档用户' => rtrim($value['Sys_id']),
- '建档时间' => rtrim($value['Sys_rq']),
- '更新时间' => rtrim($value['Mod_rq']),
- ];
- }
- $this->success('成功',$data);
- }
- /**
- * 印件资料
- * @ApiMethod (GET)
- * @param string $Gd_gdbh 工单编号
- * @return \think\response\Json
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function Printed()
- {
- if ($this->request->isGet() === false){
- $this->error('请求错误');
- }
- $Gd_gdbh = input('Gd_gdbh');
- if (empty($Gd_gdbh)){
- $this->error('参数错误');
- }
- $list = Db::table('工单_印件资料')->where('Yj_Gdbh',$Gd_gdbh)->select();
- $data = [];
- if ($list){
- foreach ($list as $key=>$value){
- $data[$key] = [
- '印件号' => rtrim($value['yj_Yjno']),
- '印件代号' => rtrim($value['yj_Yjdh']),
- '印件名称' => rtrim($value['yj_yjmc']),
- '纸张代号' => rtrim($value['yj_zzdh']),
- '纸张名称' => rtrim($value['yj_zzmc']),
- '投料规格' => rtrim($value['yj_tlgg']),
- '平张投料' => rtrim($value['yj_平张投料']),
- '开料规格' => rtrim($value['yj_klgg']),
- '开数*联数' => rtrim($value['yj_ks']).'*'.rtrim($value['yj_ls']),
- '建档用户' => rtrim($value['Sys_id']),
- '建档时间' => rtrim($value['Sys_rq']),
- '更新时间' => rtrim($value['Mod_rq']),
- ];
- }
- }
- $this->success('成功',$data);
- }
- /**
- * 工艺资料
- * @ApiMethod (GET)
- * @param string $Gd_gdbh 工单编号
- * @return \think\response\Json
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function Craft()
- {
- if ($this->request->isGet() === false){
- $this->error('请求错误');
- }
- $Gd_gdbh = input('Gd_gdbh');
- if (empty($Gd_gdbh)){
- $this->error('参数错误');
- }
- $list = Db::table('工单_工艺资料')
- ->where('Gy0_gdbh',$Gd_gdbh)
- ->select();
- $Gd_cpdh = Db::table('工单_基本资料')->where('Gd_gdbh',$Gd_gdbh)->field('Gd_cpdh')->find();
- $data = [];
- if ($list){
- foreach ($list as $key=>$value){
- if ($value['Gy0_yjno']<10){
- $value['Gy0_yjno'] = '0'.$value['Gy0_yjno'];
- }
- if ($value['Gy0_gxh']<10){
- $value['Gy0_gxh'] = '0'.$value['Gy0_gxh'];
- }
- $where = [
- 'Gy0_cpdh' => $Gd_cpdh['Gd_cpdh'],
- 'Gy0_yjno' => $value['Gy0_yjno'],
- 'Gy0_gxh' => $value['Gy0_gxh'],
- ];
- $product = Db::table('产品_工艺资料')->where($where)->field('工价系数,损耗系数')->find();
- $data[$key] = [
- '重点工序' => rtrim($value['重点工序']),
- '印件-工序' => rtrim($value['Gy0_yjno']).'-'.rtrim($value['Gy0_gxh']),
- '备选工序' => '',
- '工序名称' => rtrim($value['Gy0_gxmc']).'【'.rtrim($value['Add_gxmc']).'】',
- '计划产量' => '',
- '基础损耗' => rtrim($value['Gy0_Rate0']),
- '损耗率' => rtrim($value['Gy0_Rate1']),
- '报废定额' => '',
- '允损比例' => '',
- '难度系数' => rtrim($product['工价系数']),
- '损耗系数' => rtrim($product['损耗系数']),
- '人工检_次品板' => (int)$value['人工检_次品板']=0?'':$value['人工检_次品板'],
- '人工检_废检' => (int)$value['人工检_废检']=0?'':$value['人工检_废检'],
- '机检_正品板' => (int)$value['机检_正品板']=0?'':$value['机检_正品板'],
- '机检_次品板' => (int)$value['机检_次品板']=0?'':$value['机检_次品板'],
- '机检_废检' => (int)$value['机检_废检']=0?'':$value['机检_废检'],
- '开数*联数' => rtrim($value['Gy0_ks']).'*'.rtrim($value['Gy0_ls']),
- '备注' => rtrim($value['工序备注']),
- '印刷方式' => rtrim($value['印刷方式']),
- '版距' => rtrim($value['版距']),
- '建档用户' => rtrim($value['Sys_id']),
- '建档日期' => rtrim($value['Sys_rq']),
- '更新时间' => rtrim($value['Mod_rq']),
- ];
- }
- }
- $this->success('成功',$data);
- }
- /**
- * BOM资料
- * @ApiMethod (GET)
- * @param string $Gd_gdbh 工单编号
- * @return \think\response\Json
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function Bom()
- {
- if ($this->request->isGet() === false){
- $this->error('请求错误');
- }
- $Gd_gdbh = input('Gd_gdbh');
- if (empty($Gd_gdbh)){
- $this->error('参数错误');
- }
- $field = 'rtrim(BOM_方案) as 方案,rtrim(BOM_物料编码) as 物料编号,rtrim(BOM_物料名称) as 物料名称,BOM_投料单位,
- BOM_投入数,BOM_产出数,BOM_产出单位,rtrim(BOM_计划用量) as 计划用量,rtrim(Sys_ID) as 建档用户,rtrim(Sys_rq) as 建档时间,rtrim(Mod_rq) as 更新时间';
- $list = Db::table('工单_bom资料')
- ->where('BOM_工单编号',$Gd_gdbh)
- ->field($field)
- ->select();
- foreach ($list as $key=>$value){
- $list[$key]['消耗定量'] = rtrim($value['BOM_投入数']).rtrim($value['BOM_投料单位']).'/'.rtrim($value['BOM_产出数']).rtrim($value['BOM_产出单位']);
- unset($list[$key]['BOM_投料单位'],$list[$key]['BOM_投入数'],$list[$key]['BOM_产出数'],$list[$key]['BOM_产出单位']);
- $list[$key]['计划用量'] = rtrim((float)$value['计划用量']);
- }
- $this->success('成功',$list);
- }
- }
|